{"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://agent-reader.agent-reader.workers.dev"}},"servers":[{"url":"https://agent-reader.agent-reader.workers.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."}}}},"/screen":{"get":{"operationId":"sanctionsScreen","summary":"OFAC sanctions screening: fuzzy name or crypto address ($0.05)","description":"Screens a person/entity/vessel name (transliteration-aware fuzzy matching over primary names and aliases) or a crypto address against the official OFAC SDN and Consolidated (non-SDN) lists. Responses include a verdict (match | possible_match | clear), scored matches with sanctions programs, and provenance (list publication + ingestion timestamps). Lists re-ingested every 6 hours. Screening signal only - not legal advice.","parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string"},"description":"Name to screen (one of name/address is required)"},{"name":"address","in":"query","required":false,"schema":{"type":"string"},"description":"Crypto address to look up against OFAC-listed digital currency addresses"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["individual","entity","vessel","aircraft","all"]},"description":"Restrict matches to an entry type (default all)"}],"responses":{"200":{"description":"Screening verdict with scored matches and provenance","content":{"application/json":{"example":{"query":{"name":"Usama bin Ladin","normalized":"usama bin ladin","type":"all"},"verdict":"match","matches":[{"uid":6365,"list":"OFAC-SDN","name":"BIN LADIN, Usama","type":"individual","programs":["SDGT"],"matchedName":"BIN LADIN, Usama","matchedNameKind":"primary","score":1}],"provenance":{"lists":["OFAC-SDN","OFAC-CONS"],"listPublished":"Fri, 07 Aug 2026 18:36:51 GMT","ingestedAt":"2026-08-10T02:00:00.000Z","matcher":"agentreader-screen/1.0"}}}}},"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."}}}},"/trust":{"get":{"operationId":"x402TrustLookup","summary":"Verified-delivery trust history for an x402 service ($0.05)","description":"Full history of real paid test purchases against an x402 resource: delivery rate, per-check status/latency/price, response validity. Unlike free 402 probes, every data point is a settled (or verifiably failed) payment. Free aggregate across all tracked services: GET /leaderboard.","parameters":[{"name":"resource","in":"query","required":true,"schema":{"type":"string","format":"uri"},"description":"x402 resource URL or origin"}],"responses":{"200":{"description":"Trust summary + per-check history","content":{"application/json":{"example":{"query":{"resource":"https://api.example-x402-service.com/endpoint"},"found":true,"summary":{"checks":12,"delivered":11,"deliveryRate":0.917,"avgLatencyMs":840},"history":[{"checkedAt":"2026-08-17T03:00:00.000Z","status":200,"delivered":true,"priceUsd":0.01}]}}}},"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."},"404":{"description":"Resource not yet tracked - no payment settles (x402 charges only on 2xx)"}}}},"/leaderboard":{"get":{"operationId":"x402TrustLeaderboard","summary":"Free aggregate verified-delivery leaderboard for tracked x402 services","responses":{"200":{"description":"Per-service delivery rates from real paid checks","content":{"application/json":{}}}}}}}}