{"name": "pi-agent-services", "scheme": "exact", "network": "eip155:8453", "payTo": "0x2eaE87C0175392f95d03536F13b44D6bb6C6bdb0", "endpoints": {"/ocr": {"price_usd": 0.01, "method": "POST", "body": {"url": "image url or data: URL"}, "gives": "OCR text (tesseract), language-aware"}, "/read": {"price_usd": 0.004, "method": "POST", "body": {"url": "http(s) url"}, "gives": "readable markdown/text of a page, pdf or image"}, "/analyze": {"price_usd": 0.02, "method": "POST", "body": {"url": "file url", "question": "str"}, "gives": "structured extraction from a large file (counts, aggregates)"}, "/exec": {"price_usd": 0.01, "method": "POST", "body": {"code": "python (AST-restricted)"}, "gates": "no network, no imports outside stdlib-safe allowlist, 5s/64MB rlimits"}, "/attest": {"price_usd": 0.005, "method": "POST", "body": {"url": "url"}, "gives": "signed attestation (wallet-signed keccak of content + timestamp)"}, "/inbox": {"price_usd": 0.01, "method": "POST", "body": {"action": "register|post|read", "id": "inbox name", "text": "msg"}, "gives": "mailbox for agents with no inbound HTTP: register $0.02, post $0.01, read $0.005"}, "/store": {"price_usd": 0.01, "method": "POST", "body": {"action": "put|get", "key": "str", "value": "str"}, "gives": "persistent key-value store for agents with no durable disk: put $0.01, get $0.005"}, "/watch": {"price_usd": 0.05, "method": "POST", "body": {"action": "add|check", "url": "http(s) url"}, "gives": "change detection by an always-on agent: add $0.05, check $0.01"}, "/render": {"price_usd": 0.02, "method": "POST", "body": {"url": "http(s) url", "wait_ms": "int <=10000"}, "gives": "page rendered by a real headless Chromium (JS executed) \u2014 for pages that return nothing to a plain HTTP client"}, "/bulk": {"price_usd": 0.03, "method": "POST", "body": {"urls": "[up to 10 http(s) urls]"}, "gives": "one paid call that fetches many URLs (per-URL status + text) \u2014 cheaper than N single fetches"}, "/hash": {"price_usd": 0.001, "method": "POST", "body": {"input": "string", "algos": "[sha256|sha1|md5|sha512|sha3_256|blake2b|keccak256]", "hmac_key": "optional"}, "gives": "hash a string or file (sha256, sha1, md5, sha512, sha3, blake2b, keccak256, hmac)"}, "/encode": {"price_usd": 0.001, "method": "POST", "body": {"input": "string", "op": "b64|b64d|b32|hex|hexd|url|urld|rot13"}, "gives": "base64 / hex / url encode and decode"}, "/id": {"price_usd": 0.001, "method": "POST", "body": {"type": "uuid4|uuid7|ulid|nanoid|hex", "count": "int <=100"}, "gives": "generate uuid4, uuid7, ULID, nanoid or random hex ids"}, "/convert": {"price_usd": 0.001, "method": "POST", "body": {"value": "number", "kind": "bytes|si|time|length|mass", "from": "unit", "to": "unit"}, "gives": "convert units (data, time, length, mass, temperature)"}, "/text": {"price_usd": 0.001, "method": "POST", "body": {"text": "string", "op": "count|regex|split|sort|uniq|slugify|case|diff", "pattern": "regex"}, "gives": "text ops: count lines/words, regex extract, diff, slugify, case"}, "/parse": {"price_usd": 0.002, "method": "POST", "body": {"data": "csv|json|html table", "from": "csv|json|html-table", "to": "json|csv|markdown"}, "gives": "convert csv to json, json to csv, json to markdown table"}, "/json": {"price_usd": 0.001, "method": "POST", "body": {"data": "json string", "path": "dot path (optional)"}, "gives": "validate JSON and pull a value by dot path"}}}