{"openapi":"3.1.0","info":{"title":"AgentReader","version":"1.0.0","description":"Pay-per-call content extraction and web intelligence for AI agents. Payments via the x402 protocol: unpaid requests return HTTP 402 with payment requirements; pay USDC on Base per call (no API keys, no accounts). Failed requests are never charged. Discovery: /.well-known/x402 and /llms.txt.","contact":{"url":"https://agentreader.dev"}},"servers":[{"url":"https://agentreader.dev"}],"paths":{"/read":{"get":{"operationId":"readPage","summary":"Web page to clean LLM-ready markdown ($0.005)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Page to extract"}],"responses":{"200":{"description":"Extracted article","content":{"application/json":{"example":{"url":"https://example.com/post","title":"Post title","byline":null,"siteName":"Example","publishedTime":null,"excerpt":"…","lang":"en","markdown":"# Post title\n\n…","wordCount":812}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/meta":{"get":{"operationId":"pageMetadata","summary":"Page metadata: OpenGraph, Twitter cards, JSON-LD, headings ($0.002)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Page to inspect"}],"responses":{"200":{"description":"Structured metadata","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/clean":{"post":{"operationId":"cleanHtml","summary":"Raw HTML to markdown ($0.003)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"type":"string"}},"required":["html"]}}}},"responses":{"200":{"description":"Markdown","content":{"application/json":{"example":{"markdown":"# Hello","wordCount":1}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/pdf":{"get":{"operationId":"pdfText","summary":"PDF URL to full text ($0.01)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"PDF to extract (max 25 MB)"}],"responses":{"200":{"description":"PDF text","content":{"application/json":{"example":{"url":"…","pages":12,"text":"…","wordCount":5400}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/feed":{"get":{"operationId":"parseFeed","summary":"RSS/Atom/RDF feed to normalized JSON ($0.003)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Feed URL"}],"responses":{"200":{"description":"Normalized feed with up to 100 items","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/sitemap":{"get":{"operationId":"parseSitemap","summary":"XML sitemap to URL list ($0.003)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Sitemap URL"}],"responses":{"200":{"description":"URL list (up to 5000) or child sitemaps","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/links":{"get":{"operationId":"extractLinks","summary":"Page link graph with anchor text ($0.002)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Page to crawl links from"}],"responses":{"200":{"description":"Up to 2000 unique links, internal/external classified","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/dns":{"get":{"operationId":"dnsLookup","summary":"DNS lookup over DoH ($0.001)","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string"},"description":"Domain name"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["A","AAAA","CNAME","MX","NS","TXT","SOA","SRV","CAA","PTR"]},"description":"Record type (default A)"}],"responses":{"200":{"description":"Structured DNS answers with TTLs","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/screenshot":{"get":{"operationId":"screenshot","summary":"Real-browser PNG screenshot ($0.02)","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"Page to render"},{"name":"width","in":"query","required":false,"schema":{"type":"integer","minimum":320,"maximum":1920}},{"name":"height","in":"query","required":false,"schema":{"type":"integer","minimum":240,"maximum":1920}},{"name":"fullPage","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"PNG image","content":{"image/png":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/summarize":{"post":{"operationId":"summarize","summary":"AI summarization of url/text/html ($0.02)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Exactly one of url/text/html"},"text":{"type":"string"},"html":{"type":"string"},"style":{"type":"string","enum":["bullets","paragraph","tldr"]},"maxWords":{"type":"integer","minimum":20,"maximum":1000}}}}}},"responses":{"200":{"description":"Dense factual summary","content":{"application/json":{}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}},"/extract":{"post":{"operationId":"extractStructured","summary":"AI structured extraction matching your JSON Schema ($0.03)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Exactly one of url/text/html"},"text":{"type":"string"},"html":{"type":"string"},"schema":{"type":"object","description":"JSON Schema (root type object) for the output"},"instructions":{"type":"string"}},"required":["schema"]}}}},"responses":{"200":{"description":"JSON matching the supplied schema","content":{"application/json":{"example":{"sourceUrl":"…","data":{"productName":"Widget Pro","price":29.99}}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries base64 x402 v2 payment requirements (USDC on Base). Retry with a PAYMENT-SIGNATURE header; any x402 client SDK handles this automatically."}}}}}}