Use when an agent needs run python
Use when an agent needs run python. Returns Runs a short Python program in an isolated sandbox and returns its output: exit code, stdout/stderr (64 KB each), duration, up to 3 artifact files in ./out/, and a receipt. Python 3.12 with the standard library plus numpy, pandas and requests; no network; 512 MB; up to 30 s. Input: code (32 KB), optional stdin, args and up to 4 input files. Free syntax check: POST /api/v1/run-python/validate; worked example: GET /api/v1/run-python/example. $0.05.
50000 (raw units)
price
4
calls / 30d
2
unique payers
2026-09-14
updated
Provider
api.oblique.markets · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x970007590aCC5C938cd51345B17AF51B1B40D3Ab",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "GYyTRmt317JafPHXPnM54Fsvsma5GnS9wm6qGMqaykdS",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "50000",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"code": "Python 3 program source, at most 32 KB.…"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"artifacts": [
{
"content_base64": "eyJuIjogNCwgIm1lYW4iOiA3LjI1fQ==",
"name": "result.json",
"size_bytes": 22
}
],
"duration_ms": 168,
"exit_code": 0,
"generated_at": "2026-09-09T00:31:12.000Z",
"receipt": {
"amount_atomic": "50000",
"network": "eip155:8453",
"payer": "0x1111111111111111111111111111111111111…",
"payment_nonce": "0x7d1b2c3d4e5f60718293a4b5c6d7e8f90a1b2…",
"payment_tx": "settled after this response; the transa…",
"run_id": "run_5f0c2a9d7b3e1c4d8a6f0b21",
"scheme": "exact"
},
"run_id": "run_5f0c2a9d7b3e1c4d8a6f0b21",
"sandbox": {
"memory_mb": 512,
"network": false,
"python_version": "3.12.10",
"runtime": "isolated",
"timeout_s": 10
},
"stderr": "",
"stderr_truncated": false,
"stdout": "mean 7.25\nargv ['--fast']\nnet blocked: …",
"stdout_truncated": false,
"timed_out": false
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"args": {
"items": {
"type": "string"
},
"type": "array"
},
"code": {
"type": "string"
},
"files": {
"items": {
"properties": {
"content_base64": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"content_base64"
],
"type": "object"
},
"type": "array"
},
"stdin": {
"type": "string"
},
"timeout_s": {
"type": "number"
}
},
"required": [
"code"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"artifacts": {
"items": {
"properties": {
"content_base64": {
"type": "string"
},
"name": {
"type": "string"
},
"size_bytes": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"duration_ms": {
"type": "integer"
},
"exit_code": {
"type": "integer"
},
"generated_at": {
"type": "string"
},
"receipt": {
"properties": {
"amount_atomic": {
"type": "string"
},
"network": {
"type": "string"
},
"payer": {
"type": "string"
},
"payment_nonce": {
"type": "string"
},
"payment_tx": {
"type": "string"
},
"run_id": {
"type": "string"
},
"scheme": {
"type": "string"
}
},
"type": "object"
},
"run_id": {
"type": "string"
},
"sandbox": {
"properties": {
"memory_mb": {
"type": "integer"
},
"network": {
"type": "boolean"
},
"python_version": {
"type": "string"
},
"runtime": {
"type": "string"
},
"timeout_s": {
"type": "integer"
}
},
"type": "object"
},
"stderr": {
"type": "string"
},
"stderr_truncated": {
"type": "boolean"
},
"stdout": {
"type": "string"
},
"stdout_truncated": {
"type": "boolean"
},
"timed_out": {
"type": "boolean"
}
},
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://api.oblique.markets/api/v1/paid/run-python" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.oblique.markets/api/v1/paid/run-python");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.oblique.markets/api/v1/paid/run-python")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/558.json, and this resource appears in /discovery/resources and /discovery/search.