← oblique.markets · all endpoints

POST /api/v1/paid/run-python — $0.05 per call

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 written to ./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 compile-only check at POST /api/v1/run-python/validate; worked example at GET /api/v1/run-python/exa

Price$0.05 per call (50000 atomic USDC, scheme exact)
Categoryai-tools
Railsx402 · USDC on Base (eip155:8453) and Solana · MPP pathUSD on Tempo
Canonical URLhttps://api.oblique.markets/api/v1/paid/run-python

Try it

curl -i https://api.oblique.markets/api/v1/paid/run-python
# → HTTP 402 with the exact payment requirements; pay, then retry with PAYMENT-SIGNATURE (x402) or Authorization: Payment (MPP)

Input schema

{
 "type": "object",
 "required": [
  "code"
 ],
 "properties": {
  "code": {
   "type": "string",
   "minLength": 1,
   "maxLength": 32768,
   "description": "Python 3 program source, at most 32 KB. Runs as main.py in an empty working directory."
  },
  "stdin": {
   "type": "string",
   "maxLength": 32768,
   "description": "Text piped to the program on standard input (at most 32 KB)."
  },
  "args": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 1024
   },
   "maxItems": 16,
   "description": "Command-line arguments (sys.argv[1:]), at most 16."
  },
  "files": {
   "type": "array",
   "maxItems": 4,
   "items": {
    "type": "object",
    "required": [
     "name",
     "content_base64"
    ],
    "properties": {
     "name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._-]{1,128}$",
      "description": "File name written into the working directory (no paths)."
     },
     "content_base64": {
      "type": "string",
      "description": "File content, base64, at most 256 KB decoded."
     }
    }
   },
   "description": "Up to 4 input files written into the working directory before the run."
  },
  "timeout_s": {
   "type": "number",
   "minimum": 1,
   "maximum": 30,
   "default": 15,
   "description": "Wall-clock limit for the program in seconds (default 15, max 30)."
  }
 },
 "additionalProperties": false
}

Example output

{
 "run_id": "run_5f0c2a9d7b3e1c4d8a6f0b21",
 "exit_code": 0,
 "stdout": "mean 7.25\nargv ['--fast']\nnet blocked: URLError\n",
 "stdout_truncated": false,
 "stderr": "",
 "stderr_truncated": false,
 "duration_ms": 168,
 "timed_out": false,
 "artifacts": [
  {
   "name": "result.json",
   "size_bytes": 22,
   "content_base64": "eyJuIjogNCwgIm1lYW4iOiA3LjI1fQ=="
  }
 ],
 "sandbox": {
  "runtime": "isolated",
  "python_version": "3.12.10",
  "network": false,
  "memory_mb": 512,
  "timeout_s": 10
 },
 "receipt": {
  "payer": "0x1111111111111111111111111111111111111111",
  "network": "eip155:8453",
  "scheme": "exact",
  "amount_atomic": "50000",
  "payment_nonce": "0x7d1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9",
  "payment_tx": "settled after this response; the transaction hash is in the PAYMENT-RESPONSE header",
  "run_id": "run_5f0c2a9d7b3e1c4d8a6f0b21"
 },
 "generated_at": "2026-09-09T00:31:12.000Z"
}

Clients

Worked TypeScript/Python clients and MCP configs: oblique-markets/oblique-examples · Agent Skills: oblique-markets/skills

Pay per call with x402 (USDC on Base or Solana) or MPP (pathUSD on Tempo). No accounts. Machine doors: /.well-known/x402.json · /openapi.json · /llms-full.txt · MCP · humans: remote.observer