{"openapi":"3.0.3","info":{"title":"AgentShelf","version":"s8.0.0","description":"Paid APIs for AI agents over HTTP 402 (x402 v2 exact USDC on Base). Mentions $0.02, URL→MD $0.005, HTML→MD $0.002, Page audit $0.01, plus S6 and S8 catalog SKUs (see GET /v1/catalog). Default network Base Sepolia (eip155:84532)."},"paths":{"/healthz":{"get":{"summary":"Liveness","responses":{"200":{"description":"Gateway is up"}}}},"/openapi.json":{"get":{"summary":"OpenAPI document generated from Zod","responses":{"200":{"description":"OpenAPI 3 document"}}}},"/.well-known/llms.txt":{"get":{"summary":"LLM discovery (markdown)","responses":{"200":{"description":"llms.txt"}}}},"/llms.txt":{"get":{"summary":"LLM discovery (markdown, same as /.well-known/llms.txt)","responses":{"200":{"description":"llms.txt"}}}},"/agents.txt":{"get":{"summary":"Agent discovery","responses":{"200":{"description":"agents.txt"}}}},"/v1/catalog":{"get":{"summary":"Free product catalog","description":"JSON list of paid products with path, price_usdc, description, sandbox_path. No payment.","responses":{"200":{"description":"Catalog","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"products":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1},"price_usdc":{"type":"string","minLength":1},"description":{"type":"string","minLength":1},"sandbox_path":{"type":"string","minLength":1}},"required":["path","price_usdc","description","sandbox_path"],"additionalProperties":false},"minItems":1}},"required":["ok","products"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}}}}},"/v1/mentions":{"post":{"summary":"Paid Mentions","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.02 USDC. maxTimeoutSeconds=60.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":80},"lookback_days":{"type":"integer","minimum":1,"maximum":90,"default":30},"sources":{"type":"array","items":{"type":"string","enum":["reddit","web","reviews","x"]},"minItems":1,"default":["web","reviews"]},"limit":{"type":"integer","minimum":10,"maximum":100,"default":40},"geo":{"type":"string","minLength":2,"maxLength":32},"lang":{"type":"string","minLength":2,"maxLength":16,"default":"en"}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Mentions result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"totals":{"type":"object","properties":{"mentions":{"type":"integer","minimum":0},"sources_ok":{"type":"integer","minimum":0}},"required":["mentions","sources_ok"],"additionalProperties":false},"themes":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1},"count":{"type":"integer","minimum":0},"sentiment":{"type":"string","enum":["positive","neutral","negative"]}},"required":["label","count","sentiment"],"additionalProperties":false}},"samples":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["reddit","web","reviews","x"]},"text":{"type":"string","maxLength":280},"url":{"type":"string","format":"uri"},"license":{"type":"string","minLength":1}},"required":["source","text","license"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","totals","themes","samples"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/mentions":{"post":{"summary":"Sandbox Mentions (unpaid)","description":"Same schema, billed=false, watermarked/reduced data. Daily IP quota. Also accepted as POST /v1/mentions with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":80},"lookback_days":{"type":"integer","minimum":1,"maximum":90,"default":30},"sources":{"type":"array","items":{"type":"string","enum":["reddit","web","reviews","x"]},"minItems":1,"default":["web","reviews"]},"limit":{"type":"integer","minimum":10,"maximum":100,"default":40},"geo":{"type":"string","minLength":2,"maxLength":32},"lang":{"type":"string","minLength":2,"maxLength":16,"default":"en"}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"totals":{"type":"object","properties":{"mentions":{"type":"integer","minimum":0},"sources_ok":{"type":"integer","minimum":0}},"required":["mentions","sources_ok"],"additionalProperties":false},"themes":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1},"count":{"type":"integer","minimum":0},"sentiment":{"type":"string","enum":["positive","neutral","negative"]}},"required":["label","count","sentiment"],"additionalProperties":false}},"samples":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["reddit","web","reviews","x"]},"text":{"type":"string","maxLength":280},"url":{"type":"string","format":"uri"},"license":{"type":"string","minLength":1}},"required":["source","text","license"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","totals","themes","samples"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/url-to-md":{"post":{"summary":"Paid URL to Markdown","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.005 USDC. maxTimeoutSeconds=60.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Markdown + title + final_url (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"markdown":{"type":"string"},"final_url":{"type":"string","format":"uri"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","markdown","final_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/url-to-md":{"post":{"summary":"Sandbox URL to Markdown (unpaid)","description":"Same schema, billed=false, watermarked markdown. Daily IP quota. Also accepted as POST /v1/url-to-md with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"markdown":{"type":"string"},"final_url":{"type":"string","format":"uri"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","markdown","final_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/html-to-md":{"post":{"summary":"Paid HTML to Markdown","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. No network. maxTimeoutSeconds=60.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000},"url":{"type":"string","format":"uri","maxLength":2048}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Clean markdown (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"markdown":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/html-to-md":{"post":{"summary":"Sandbox HTML to Markdown (unpaid)","description":"Same schema, billed=false, watermarked markdown. Daily IP quota. Also accepted as POST /v1/html-to-md with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000},"url":{"type":"string","format":"uri","maxLength":2048}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"markdown":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/page-audit":{"post":{"summary":"Paid page audit","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.01 USDC. maxTimeoutSeconds=60.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Structured page audit (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"final_url":{"type":"string","format":"uri"},"https":{"type":"boolean"},"status":{"type":"integer"},"title":{"type":["string","null"]},"meta_description":{"type":["string","null"]},"robots":{"type":["string","null"]},"x_robots":{"type":["string","null"]},"canonical":{"type":["string","null"]},"json_ld":{"type":"boolean"},"h1_count":{"type":"integer","minimum":0},"load_hints":{"type":"object","properties":{"html_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"integer","minimum":0}},"required":["html_bytes","elapsed_ms"],"additionalProperties":false},"score":{"type":"integer","minimum":0,"maximum":100},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","minLength":1},"severity":{"type":"string","enum":["info","warn","error"]},"message":{"type":"string","minLength":1}},"required":["code","severity","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]},"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"}},"required":["url","final_url","https","status","title","meta_description","robots","x_robots","canonical","json_ld","h1_count","load_hints","score","issues","ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/page-audit":{"post":{"summary":"Sandbox page audit (unpaid)","description":"Same schema, billed=false, watermarked. Daily IP quota. Also accepted as POST /v1/page-audit with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"final_url":{"type":"string","format":"uri"},"https":{"type":"boolean"},"status":{"type":"integer"},"title":{"type":["string","null"]},"meta_description":{"type":["string","null"]},"robots":{"type":["string","null"]},"x_robots":{"type":["string","null"]},"canonical":{"type":["string","null"]},"json_ld":{"type":"boolean"},"h1_count":{"type":"integer","minimum":0},"load_hints":{"type":"object","properties":{"html_bytes":{"type":"integer","minimum":0},"elapsed_ms":{"type":"integer","minimum":0}},"required":["html_bytes","elapsed_ms"],"additionalProperties":false},"score":{"type":"integer","minimum":0,"maximum":100},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","minLength":1},"severity":{"type":"string","enum":["info","warn","error"]},"message":{"type":"string","minLength":1}},"required":["code","severity","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]},"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"}},"required":["url","final_url","https","status","title","meta_description","robots","x_robots","canonical","json_ld","h1_count","load_hints","score","issues","ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/pdf-to-md":{"post":{"summary":"Paid PDF to Markdown","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.01 USDC. maxTimeoutSeconds=60. Extract text from a public PDF URL (SSRF-safe) or pdf_base64 (cap 8MB) as markdown.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"pdf_base64":{"type":"string","minLength":1,"maxLength":11184843}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"PDF to Markdown result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"title":{"type":["string","null"]},"pages":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"final_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/pdf-to-md":{"post":{"summary":"Sandbox PDF to Markdown (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/pdf-to-md with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"pdf_base64":{"type":"string","minLength":1,"maxLength":11184843}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"title":{"type":["string","null"]},"pages":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"final_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/readability":{"post":{"summary":"Paid readability article extract","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.005 USDC. maxTimeoutSeconds=60. Fetch a public URL (SSRF-safe) and return Mozilla Readability article markdown, title, byline, excerpt, final_url.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Readability result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"title":{"type":"string"},"byline":{"type":["string","null"]},"excerpt":{"type":["string","null"]},"final_url":{"type":"string","format":"uri"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown","title","final_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/readability":{"post":{"summary":"Sandbox Readability (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/readability with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"title":{"type":"string"},"byline":{"type":["string","null"]},"excerpt":{"type":["string","null"]},"final_url":{"type":"string","format":"uri"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown","title","final_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-links":{"post":{"summary":"Paid link extraction","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Collect absolute, de-duplicated links (cap 500) from a public URL or provided HTML.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract links result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"links":{"type":"array","items":{"type":"object","properties":{"href":{"type":"string","minLength":1},"text":{"type":"string"},"rel":{"type":"string"}},"required":["href","text"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","links"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-links":{"post":{"summary":"Sandbox Extract links (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-links with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"links":{"type":"array","items":{"type":"object","properties":{"href":{"type":"string","minLength":1},"text":{"type":"string"},"rel":{"type":"string"}},"required":["href","text"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","links"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-meta":{"post":{"summary":"Paid HTML metadata extract","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Fetch a public URL (SSRF-safe) and return title, description, canonical, robots, og:*, twitter:*, icons[].","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract meta result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"canonical":{"type":["string","null"]},"robots":{"type":["string","null"]},"og":{"type":"object","additionalProperties":{"type":"string"}},"twitter":{"type":"object","additionalProperties":{"type":"string"}},"icons":{"type":"array","items":{"type":"string"}},"final_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","description","canonical","robots","og","twitter","icons"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-meta":{"post":{"summary":"Sandbox Extract meta (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-meta with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"canonical":{"type":["string","null"]},"robots":{"type":["string","null"]},"og":{"type":"object","additionalProperties":{"type":"string"}},"twitter":{"type":"object","additionalProperties":{"type":"string"}},"icons":{"type":"array","items":{"type":"string"}},"final_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","title","description","canonical","robots","og","twitter","icons"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/heading-outline":{"post":{"summary":"Paid heading outline","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Return h1–h6 outline from a public URL or provided HTML.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Heading outline result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"outline":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"}},"required":["level","text"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","outline"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/heading-outline":{"post":{"summary":"Sandbox Heading outline (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/heading-outline with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"outline":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"}},"required":["level","text"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","outline"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/sitemap-urls":{"post":{"summary":"Paid sitemap URL list","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.005 USDC. maxTimeoutSeconds=60. Fetch a sitemap or sitemap index (SSRF-safe, one index level) and return up to 1000 URLs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sitemap URLs result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"urls":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","urls"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/sitemap-urls":{"post":{"summary":"Sandbox Sitemap URLs (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/sitemap-urls with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"urls":{"type":"array","items":{"type":"string"}},"truncated":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","urls"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/robots-summary":{"post":{"summary":"Paid robots.txt summary","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Fetch and parse robots.txt for a site origin or robots.txt URL (SSRF-safe).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Robots summary result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"sitemaps":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"user_agent":{"type":"string"},"allow":{"type":"array","items":{"type":"string"}},"disallow":{"type":"array","items":{"type":"string"}}},"required":["user_agent","allow","disallow"],"additionalProperties":false}},"raw_bytes":{"type":"integer","minimum":0},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","sitemaps","groups"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/robots-summary":{"post":{"summary":"Sandbox Robots summary (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/robots-summary with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"sitemaps":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"object","properties":{"user_agent":{"type":"string"},"allow":{"type":"array","items":{"type":"string"}},"disallow":{"type":"array","items":{"type":"string"}}},"required":["user_agent","allow","disallow"],"additionalProperties":false}},"raw_bytes":{"type":"integer","minimum":0},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","sitemaps","groups"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/feed-parse":{"post":{"summary":"Paid RSS/Atom parse","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.004 USDC. maxTimeoutSeconds=60. Parse an RSS/Atom feed URL (SSRF-safe) into title + up to 50 items.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Feed parse result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":["string","null"]},"link":{"type":["string","null"]},"published":{"type":["string","null"]},"summary":{"type":["string","null"]}},"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","items"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/feed-parse":{"post":{"summary":"Sandbox Feed parse (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/feed-parse with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"title":{"type":["string","null"]},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":["string","null"]},"link":{"type":["string","null"]},"published":{"type":["string","null"]},"summary":{"type":["string","null"]}},"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","items"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/url-expand":{"post":{"summary":"Paid URL redirect expand","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Follow redirects (max 5, SSRF-safe) and return final_url, status, and redirect_chain.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"URL expand result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"final_url":{"type":"string","format":"uri"},"status":{"type":"integer"},"redirect_chain":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","final_url","status","redirect_chain"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/url-expand":{"post":{"summary":"Sandbox URL expand (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/url-expand with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"final_url":{"type":"string","format":"uri"},"status":{"type":"integer"},"redirect_chain":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","final_url","status","redirect_chain"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/table-to-json":{"post":{"summary":"Paid HTML tables to JSON","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Extract HTML tables from a public URL or HTML into headers + rows.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Table to JSON result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"tables":{"type":"array","items":{"type":"object","properties":{"headers":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["rows"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","tables"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/table-to-json":{"post":{"summary":"Sandbox Table to JSON (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/table-to-json with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"tables":{"type":"array","items":{"type":"object","properties":{"headers":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["rows"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","tables"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-emails":{"post":{"summary":"Paid public email extract","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Extract public emails from a page URL or HTML (de-duped, cap 100). No guessing.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract emails result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"emails":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","emails"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-emails":{"post":{"summary":"Sandbox Extract emails (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-emails with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"emails":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","emails"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/tech-hints":{"post":{"summary":"Paid tech stack hints","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.008 USDC. maxTimeoutSeconds=60. Lightweight stack hints from response headers + HTML (generator, x-powered-by, fingerprints, analytics booleans). No browser.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Tech hints result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"final_url":{"type":"string","format":"uri"},"status":{"type":"integer"},"generator":{"type":["string","null"]},"x_powered_by":{"type":["string","null"]},"server":{"type":["string","null"]},"frameworks":{"type":"object","properties":{"wordpress":{"type":"boolean"},"nextjs":{"type":"boolean"},"react":{"type":"boolean"},"shopify":{"type":"boolean"},"cloudflare":{"type":"boolean"},"vercel":{"type":"boolean"}},"required":["wordpress","nextjs","react","shopify","cloudflare","vercel"],"additionalProperties":false},"analytics":{"type":"object","properties":{"google_analytics":{"type":"boolean"},"google_tag_manager":{"type":"boolean"},"meta_pixel":{"type":"boolean"}},"required":["google_analytics","google_tag_manager","meta_pixel"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","final_url","status","generator","x_powered_by","server","frameworks","analytics"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/tech-hints":{"post":{"summary":"Sandbox Tech hints (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/tech-hints with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"final_url":{"type":"string","format":"uri"},"status":{"type":"integer"},"generator":{"type":["string","null"]},"x_powered_by":{"type":["string","null"]},"server":{"type":["string","null"]},"frameworks":{"type":"object","properties":{"wordpress":{"type":"boolean"},"nextjs":{"type":"boolean"},"react":{"type":"boolean"},"shopify":{"type":"boolean"},"cloudflare":{"type":"boolean"},"vercel":{"type":"boolean"}},"required":["wordpress","nextjs","react","shopify","cloudflare","vercel"],"additionalProperties":false},"analytics":{"type":"object","properties":{"google_analytics":{"type":"boolean"},"google_tag_manager":{"type":"boolean"},"meta_pixel":{"type":"boolean"}},"required":["google_analytics","google_tag_manager","meta_pixel"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","final_url","status","generator","x_powered_by","server","frameworks","analytics"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/ssl-check":{"post":{"summary":"Paid TLS certificate check","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.004 USDC. maxTimeoutSeconds=60. TLS certificate summary for a public host or URL (private IPs blocked).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"host":{"type":"string","minLength":1,"maxLength":253},"url":{"type":"string","format":"uri","maxLength":2048}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"SSL check result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"expires_at":{"type":["string","null"]},"issuer":{"type":["string","null"]},"subject":{"type":["string","null"]},"sans":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","expires_at","issuer","subject","sans"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/ssl-check":{"post":{"summary":"Sandbox SSL check (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/ssl-check with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"host":{"type":"string","minLength":1,"maxLength":253},"url":{"type":"string","format":"uri","maxLength":2048}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"expires_at":{"type":["string","null"]},"issuer":{"type":["string","null"]},"subject":{"type":["string","null"]},"sans":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","expires_at","issuer","subject","sans"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/json-to-md":{"post":{"summary":"Paid JSON to Markdown","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Convert a JSON object/array to markdown (tables for array-of-objects). No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"array","items":{}}]}},"required":["json"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"JSON to Markdown result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/json-to-md":{"post":{"summary":"Sandbox JSON to Markdown (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/json-to-md with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"array","items":{}}]}},"required":["json"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/text-stats":{"post":{"summary":"Paid text statistics","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Heuristic text stats: chars, words, sentences, reading_time_min, lang_hint. No LLM.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":0,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Text stats result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"chars":{"type":"integer","minimum":0},"words":{"type":"integer","minimum":0},"sentences":{"type":"integer","minimum":0},"reading_time_min":{"type":"number","minimum":0},"lang_hint":{"type":["string","null"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","chars","words","reading_time_min"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/text-stats":{"post":{"summary":"Sandbox Text stats (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/text-stats with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":0,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"chars":{"type":"integer","minimum":0},"words":{"type":"integer","minimum":0},"sentences":{"type":"integer","minimum":0},"reading_time_min":{"type":"number","minimum":0},"lang_hint":{"type":["string","null"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","chars","words","reading_time_min"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/diff-text":{"post":{"summary":"Paid text diff","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Unified diff of two strings. No network. Cap input size.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"string","maxLength":100000},"b":{"type":"string","maxLength":100000}},"required":["a","b"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Diff text result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"diff":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","diff"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/diff-text":{"post":{"summary":"Sandbox Diff text (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/diff-text with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"string","maxLength":100000},"b":{"type":"string","maxLength":100000}},"required":["a","b"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"diff":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","diff"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/html-to-text":{"post":{"summary":"Paid HTML to text","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Convert HTML to plain text. Scripts and styles are dropped. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"HTML to text result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"text":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/html-to-text":{"post":{"summary":"Sandbox HTML to text (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/html-to-text with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"text":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/md-to-html":{"post":{"summary":"Paid Markdown to HTML","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Convert Markdown to HTML (headings, lists, links, code, emphasis). No tables or raw HTML. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","minLength":1,"maxLength":100000}},"required":["markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Markdown to HTML result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"html":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/md-to-html":{"post":{"summary":"Sandbox Markdown to HTML (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/md-to-html with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","minLength":1,"maxLength":100000}},"required":["markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"html":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/csv-to-json":{"post":{"summary":"Paid CSV to JSON","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Parse CSV (header row) into a JSON array of objects. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":100000},"delimiter":{"type":"string","minLength":1,"maxLength":1}},"required":["csv"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"CSV to JSON result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"rows":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","rows"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/csv-to-json":{"post":{"summary":"Sandbox CSV to JSON (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/csv-to-json with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":100000},"delimiter":{"type":"string","minLength":1,"maxLength":1}},"required":["csv"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"rows":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","rows"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/json-to-csv":{"post":{"summary":"Paid JSON to CSV","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Convert a JSON array of objects to CSV. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","additionalProperties":{}},"minItems":1,"maxItems":5000},"delimiter":{"type":"string","minLength":1,"maxLength":1}},"required":["rows"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"JSON to CSV result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"csv":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","csv"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/json-to-csv":{"post":{"summary":"Sandbox JSON to CSV (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/json-to-csv with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","additionalProperties":{}},"minItems":1,"maxItems":5000},"delimiter":{"type":"string","minLength":1,"maxLength":1}},"required":["rows"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"csv":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","csv"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/yaml-to-json":{"post":{"summary":"Paid YAML to JSON","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Parse YAML into JSON. Alias expansion is capped. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"yaml":{"type":"string","minLength":1,"maxLength":100000}},"required":["yaml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"YAML to JSON result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"json":{},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/yaml-to-json":{"post":{"summary":"Sandbox YAML to JSON (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/yaml-to-json with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"yaml":{"type":"string","minLength":1,"maxLength":100000}},"required":["yaml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"json":{},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/json-to-yaml":{"post":{"summary":"Paid JSON to YAML","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Convert JSON to YAML. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"JSON to YAML result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"yaml":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","yaml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/json-to-yaml":{"post":{"summary":"Sandbox JSON to YAML (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/json-to-yaml with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"yaml":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","yaml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/xml-to-json":{"post":{"summary":"Paid XML to JSON","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Convert XML to JSON. DOCTYPE and entity declarations are rejected. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"xml":{"type":"string","minLength":1,"maxLength":200000}},"required":["xml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"XML to JSON result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"json":{},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/xml-to-json":{"post":{"summary":"Sandbox XML to JSON (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/xml-to-json with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"xml":{"type":"string","minLength":1,"maxLength":200000}},"required":["xml"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"json":{},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/json-schema-check":{"post":{"summary":"Paid JSON Schema check","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Validate JSON against a JSON Schema (draft-07 subset via Ajv). No remote $ref. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"schema":{"type":"object","additionalProperties":{}}},"required":["schema"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"JSON Schema check result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","errors"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/json-schema-check":{"post":{"summary":"Sandbox JSON Schema check (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/json-schema-check with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"schema":{"type":"object","additionalProperties":{}}},"required":["schema"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","errors"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/json-path":{"post":{"summary":"Paid JSONPath","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Evaluate a JSONPath query ($, .key, [index], [*], slices, recursive descent). No filter scripts. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{},"path":{"type":"string","minLength":1,"maxLength":500}},"required":["path"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"JSONPath result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"matches":{"type":"array","items":{}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","matches"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/json-path":{"post":{"summary":"Sandbox JSONPath (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/json-path with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{},"path":{"type":"string","minLength":1,"maxLength":500}},"required":["path"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"matches":{"type":"array","items":{}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","matches"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-phones":{"post":{"summary":"Paid Extract phones","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Extract phone numbers from a public URL or HTML (de-duped, cap 50). SSRF-safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract phones result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"phones":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","phones"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-phones":{"post":{"summary":"Sandbox Extract phones (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-phones with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"phones":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","phones"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-images":{"post":{"summary":"Paid Extract images","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Extract image URLs from a public URL or HTML (img, srcset, og:image). SSRF-safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract images result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"}},"required":["src"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","images"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-images":{"post":{"summary":"Sandbox Extract images (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-images with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"}},"required":["src"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","images"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/extract-jsonld":{"post":{"summary":"Paid Extract JSON-LD","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.004 USDC. maxTimeoutSeconds=60. Extract JSON-LD blocks from a public URL or HTML. SSRF-safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Extract JSON-LD result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"blocks":{"type":"array","items":{}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","blocks"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/extract-jsonld":{"post":{"summary":"Sandbox Extract JSON-LD (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/extract-jsonld with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"blocks":{"type":"array","items":{}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","blocks"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/dns-lookup":{"post":{"summary":"Paid DNS lookup","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Look up A, AAAA, MX, TXT, and CNAME for a public hostname. Private and metadata names are blocked. Answers that are private IPs are omitted.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string","minLength":1,"maxLength":253},"types":{"type":"array","items":{"type":"string","enum":["A","AAAA","MX","TXT","CNAME"]},"minItems":1,"maxItems":5}},"required":["hostname"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"DNS lookup result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"hostname":{"type":"string"},"records":{"type":"object","properties":{"A":{"type":"array","items":{"type":"string"}},"AAAA":{"type":"array","items":{"type":"string"}},"MX":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"priority":{"type":"integer"}},"required":["exchange","priority"],"additionalProperties":false}},"TXT":{"type":"array","items":{"type":"string"}},"CNAME":{"type":"array","items":{"type":"string"}}},"required":["A","AAAA","MX","TXT","CNAME"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","hostname","records"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/dns-lookup":{"post":{"summary":"Sandbox DNS lookup (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/dns-lookup with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string","minLength":1,"maxLength":253},"types":{"type":"array","items":{"type":"string","enum":["A","AAAA","MX","TXT","CNAME"]},"minItems":1,"maxItems":5}},"required":["hostname"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"hostname":{"type":"string"},"records":{"type":"object","properties":{"A":{"type":"array","items":{"type":"string"}},"AAAA":{"type":"array","items":{"type":"string"}},"MX":{"type":"array","items":{"type":"object","properties":{"exchange":{"type":"string"},"priority":{"type":"integer"}},"required":["exchange","priority"],"additionalProperties":false}},"TXT":{"type":"array","items":{"type":"string"}},"CNAME":{"type":"array","items":{"type":"string"}}},"required":["A","AAAA","MX","TXT","CNAME"],"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","hostname","records"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/http-headers":{"post":{"summary":"Paid HTTP headers","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Return status and response headers for a public URL via SSRF-safe HEAD (GET fallback).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"method":{"type":"string","enum":["HEAD","GET"]}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"HTTP headers result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"status":{"type":"integer"},"final_url":{"type":"string","format":"uri"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","status","final_url","headers"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/http-headers":{"post":{"summary":"Sandbox HTTP headers (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/http-headers with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"method":{"type":"string","enum":["HEAD","GET"]}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"status":{"type":"integer"},"final_url":{"type":"string","format":"uri"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","status","final_url","headers"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/content-hash":{"post":{"summary":"Paid Content hash","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. SHA-256 or MD5 hex digest of provided text. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"algorithm":{"type":"string","enum":["sha256","md5"]}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Content hash result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"algorithm":{"type":"string","enum":["sha256","md5"]},"hex":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","algorithm","hex"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/content-hash":{"post":{"summary":"Sandbox Content hash (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/content-hash with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"algorithm":{"type":"string","enum":["sha256","md5"]}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"algorithm":{"type":"string","enum":["sha256","md5"]},"hex":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","algorithm","hex"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/lang-detect":{"post":{"summary":"Paid Language detect","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Heuristic language detection (script + stopwords). No LLM. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Language detect result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"lang":{"type":"string"},"confidence":{"type":"number"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","lang","confidence"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/lang-detect":{"post":{"summary":"Sandbox Language detect (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/lang-detect with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"lang":{"type":"string"},"confidence":{"type":"number"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","lang","confidence"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/keyword-density":{"post":{"summary":"Paid Keyword density","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Top keyword counts and density for text, stopwords removed. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Keyword density result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"keywords":{"type":"array","items":{"type":"object","properties":{"term":{"type":"string"},"count":{"type":"integer"},"density":{"type":"number"}},"required":["term","count","density"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","keywords"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/keyword-density":{"post":{"summary":"Sandbox Keyword density (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/keyword-density with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"limit":{"type":"integer","minimum":1,"maximum":50}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"keywords":{"type":"array","items":{"type":"object","properties":{"term":{"type":"string"},"count":{"type":"integer"},"density":{"type":"number"}},"required":["term","count","density"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","keywords"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/flesch-score":{"post":{"summary":"Paid Flesch score","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Flesch reading-ease score plus word, sentence, and syllable counts. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Flesch score result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"flesch_reading_ease":{"type":"number"},"words":{"type":"integer"},"sentences":{"type":"integer"},"syllables":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","flesch_reading_ease","words","sentences","syllables"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/flesch-score":{"post":{"summary":"Sandbox Flesch score (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/flesch-score with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"flesch_reading_ease":{"type":"number"},"words":{"type":"integer"},"sentences":{"type":"integer"},"syllables":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","flesch_reading_ease","words","sentences","syllables"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/html-sanitize":{"post":{"summary":"Paid HTML sanitize","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Sanitize HTML to an allowlist of tags and safe href/src values. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"HTML sanitize result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"html":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/html-sanitize":{"post":{"summary":"Sandbox HTML sanitize (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/html-sanitize with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string","minLength":1,"maxLength":200000}},"required":["html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"html":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","html"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/strip-utm":{"post":{"summary":"Paid Strip UTM","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Strip utm_* and common click-id tracking query parameters from a URL. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Strip UTM result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"url":{"type":"string"},"removed":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","url","removed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/strip-utm":{"post":{"summary":"Sandbox Strip UTM (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/strip-utm with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"url":{"type":"string"},"removed":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","url","removed"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/url-parts":{"post":{"summary":"Paid URL parts","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Parse a URL into scheme, host, path, query, and hash. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"URL parts result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"scheme":{"type":"string"},"host":{"type":"string"},"path":{"type":"string"},"query":{"type":"string"},"hash":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","scheme","host","path","query","hash"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/url-parts":{"post":{"summary":"Sandbox URL parts (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/url-parts with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"scheme":{"type":"string"},"host":{"type":"string"},"path":{"type":"string"},"query":{"type":"string"},"hash":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","scheme","host","path","query","hash"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/chunk-text":{"post":{"summary":"Paid Chunk text","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Split text into chunks by characters or whitespace tokens with overlap. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"size":{"type":"integer","minimum":1,"maximum":20000},"overlap":{"type":"integer","minimum":0,"maximum":5000},"unit":{"type":"string","enum":["chars","tokens"]}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Chunk text result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"chunks":{"type":"array","items":{"type":"string"}},"unit":{"type":"string","enum":["chars","tokens"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","chunks","unit"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/chunk-text":{"post":{"summary":"Sandbox Chunk text (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/chunk-text with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":100000},"size":{"type":"integer","minimum":1,"maximum":20000},"overlap":{"type":"integer","minimum":0,"maximum":5000},"unit":{"type":"string","enum":["chars","tokens"]}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"chunks":{"type":"array","items":{"type":"string"}},"unit":{"type":"string","enum":["chars","tokens"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","chunks","unit"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/toc-md":{"post":{"summary":"Paid Markdown TOC","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Build a markdown table of contents from ATX headings. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","minLength":1,"maxLength":100000}},"required":["markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Markdown TOC result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"headings":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"},"anchor":{"type":"string"}},"required":["level","text","anchor"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown","headings"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/toc-md":{"post":{"summary":"Sandbox Markdown TOC (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/toc-md with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"markdown":{"type":"string","minLength":1,"maxLength":100000}},"required":["markdown"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"markdown":{"type":"string"},"headings":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"},"anchor":{"type":"string"}},"required":["level","text","anchor"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","markdown","headings"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/article-dates":{"post":{"summary":"Paid Article dates","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.004 USDC. maxTimeoutSeconds=60. Extract published and modified dates from meta tags, <time>, and JSON-LD. SSRF-safe URL or HTML.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Article dates result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"published":{"type":["string","null"]},"modified":{"type":["string","null"]},"dates":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"value":{"type":"string"}},"required":["source","value"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","published","modified","dates"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/article-dates":{"post":{"summary":"Sandbox Article dates (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/article-dates with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"published":{"type":["string","null"]},"modified":{"type":["string","null"]},"dates":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"value":{"type":"string"}},"required":["source","value"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","published","modified","dates"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/hreflang-list":{"post":{"summary":"Paid Hreflang list","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Extract hreflang alternate links from a public URL or HTML. SSRF-safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Hreflang list result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"alternates":{"type":"array","items":{"type":"object","properties":{"hreflang":{"type":"string"},"href":{"type":"string"}},"required":["hreflang","href"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","alternates"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/hreflang-list":{"post":{"summary":"Sandbox Hreflang list (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/hreflang-list with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"alternates":{"type":"array","items":{"type":"object","properties":{"hreflang":{"type":"string"},"href":{"type":"string"}},"required":["hreflang","href"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","alternates"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/favicon-meta":{"post":{"summary":"Paid Favicon meta","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Extract favicon and apple-touch icon links from a public URL or HTML. SSRF-safe.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Favicon meta result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"icons":{"type":"array","items":{"type":"object","properties":{"rel":{"type":"string"},"href":{"type":"string"},"sizes":{"type":"string"}},"required":["rel","href"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","icons"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/favicon-meta":{"post":{"summary":"Sandbox Favicon meta (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/favicon-meta with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"html":{"type":"string","minLength":1,"maxLength":200000}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"icons":{"type":"array","items":{"type":"object","properties":{"rel":{"type":"string"},"href":{"type":"string"},"sizes":{"type":"string"}},"required":["rel","href"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","icons"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/email-syntax":{"post":{"summary":"Paid Email syntax","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Check email address syntax and normalize case. No SMTP and no network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":1,"maxLength":320}},"required":["email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Email syntax result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"email":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/email-syntax":{"post":{"summary":"Sandbox Email syntax (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/email-syntax with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":1,"maxLength":320}},"required":["email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"email":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","email"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/phone-e164":{"post":{"summary":"Paid Phone E.164","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Normalize a phone number to E.164. Leading + is accepted globally; national numbers need a supported region. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phone":{"type":"string","minLength":1,"maxLength":64},"region":{"type":"string","pattern":"^[A-Za-z]{2}$"}},"required":["phone"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Phone E.164 result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"e164":{"type":["string","null"]},"valid":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","e164","valid"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/phone-e164":{"post":{"summary":"Sandbox Phone E.164 (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/phone-e164 with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phone":{"type":"string","minLength":1,"maxLength":64},"region":{"type":"string","pattern":"^[A-Za-z]{2}$"}},"required":["phone"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"e164":{"type":["string","null"]},"valid":{"type":"boolean"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","e164","valid"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/cron-describe":{"post":{"summary":"Paid Cron describe","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.002 USDC. maxTimeoutSeconds=60. Explain a 5-field cron expression in English (optional seconds and @hourly/@daily/@weekly/@monthly/@yearly). No Quartz year field. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"maxLength":120}},"required":["expression"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Cron describe result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"description":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","description","fields"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/cron-describe":{"post":{"summary":"Sandbox Cron describe (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/cron-describe with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string","minLength":1,"maxLength":120}},"required":["expression"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"valid":{"type":"boolean"},"description":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","valid","description","fields"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/ua-parse":{"post":{"summary":"Paid User-Agent parse","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.001 USDC. maxTimeoutSeconds=60. Parse a User-Agent into browser, OS, and device class. Heuristic, not a full device database. No network.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_agent":{"type":"string","minLength":1,"maxLength":512}},"required":["user_agent"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"User-Agent parse result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"browser":{"type":"string"},"browser_version":{"type":["string","null"]},"os":{"type":"string"},"os_version":{"type":["string","null"]},"device":{"type":"string","enum":["desktop","mobile","tablet","bot","unknown"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","browser","browser_version","os","os_version","device"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/ua-parse":{"post":{"summary":"Sandbox User-Agent parse (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/ua-parse with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_agent":{"type":"string","minLength":1,"maxLength":512}},"required":["user_agent"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"browser":{"type":"string"},"browser_version":{"type":["string","null"]},"os":{"type":"string"},"os_version":{"type":["string","null"]},"device":{"type":"string","enum":["desktop","mobile","tablet","bot","unknown"]},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","browser","browser_version","os","os_version","device"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/robots-allowed":{"post":{"summary":"Paid Robots allowed","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.003 USDC. maxTimeoutSeconds=60. Fetch robots.txt for a public origin (SSRF-safe) and report whether a path is allowed for a user-agent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"path":{"type":"string","minLength":1,"maxLength":2048},"user_agent":{"type":"string","minLength":1,"maxLength":200}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Robots allowed result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"allowed":{"type":"boolean"},"user_agent":{"type":"string"},"matched":{"type":["string","null"]},"robots_url":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","allowed","user_agent","matched","robots_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/robots-allowed":{"post":{"summary":"Sandbox Robots allowed (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/robots-allowed with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"path":{"type":"string","minLength":1,"maxLength":2048},"user_agent":{"type":"string","minLength":1,"maxLength":200}},"required":["url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"allowed":{"type":"boolean"},"user_agent":{"type":"string"},"matched":{"type":["string","null"]},"robots_url":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","allowed","user_agent","matched","robots_url"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}},"/v1/link-status":{"post":{"summary":"Paid Link status","description":"x402 v2 PAYMENT-SIGNATURE required. exact $0.01 USDC. maxTimeoutSeconds=60. HEAD (GET fallback) status for up to 20 public URLs. SSRF-safe. Private targets are rejected.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"minItems":1,"maxItems":20}},"required":["urls"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Link status result (billed=true after settle)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"status":{"anyOf":[{"type":"integer"},{"type":"null"}]},"ok":{"type":"boolean"},"error":{"type":"string"}},"required":["url","status","ok"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","results"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"402":{"description":"Payment Required (x402)"},"409":{"description":"Idempotency-Key reused with a different body"}}}},"/v1/sandbox/link-status":{"post":{"summary":"Sandbox Link status (unpaid)","description":"Same schema, billed=false, watermarked/reduced. Daily IP quota. Also accepted as POST /v1/link-status with X-AgentShelf-Mode: sandbox.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri","minLength":8,"maxLength":2048},"minItems":1,"maxItems":20}},"required":["urls"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"responses":{"200":{"description":"Sandbox result (billed=false, watermarked)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true},"receipt_id":{"type":"string"},"billed":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"status":{"anyOf":[{"type":"integer"},{"type":"null"}]},"ok":{"type":"boolean"},"error":{"type":"string"}},"required":["url","status","ok"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"string"},"default":[]}},"required":["ok","receipt_id","billed","results"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}},"429":{"description":"Sandbox daily IP quota exceeded"}}}}}}