{"openapi":"3.1.0","info":{"title":"PageWire — web pages for AI agents","version":"1.0.0","description":"Pay-per-call web reading for AI agents: any public page as clean Markdown, page metadata, and small same-site crawls. Pay per call with USDC — x402 (Base or Solana) or MPP (USDC.e on Tempo, USDC on Base); no account, no API key. Docs: https://pagewire.dev/#api","contact":{"name":"PageWire","url":"https://pagewire.dev/#api","email":"starplayr@icloud.com"},"x-guidance":"Call any /x402/* endpoint with GET; a 402 answer carries the exact USDC amount and payTo in the PAYMENT-REQUIRED header (x402 v2 — pay with e.g. @x402/fetch) and the same price as MPP challenges in WWW-Authenticate: Payment (method tempo, USDC.e on Tempo; method evm, USDC on Base — pay with mppx). 4xx answers are never charged."},"x-service-info":{"categories":["web-extraction","scraping","markdown","tools"],"docs":{"homepage":"https://pagewire.dev/","apiReference":"https://pagewire.dev/#api","llms":"https://pagewire.dev/llms.txt"}},"servers":[{"url":"https://pagewire.dev"}],"paths":{"/x402":{"get":{"summary":"List the paid x402 endpoints and prices","description":"Free JSON list of the paid endpoints with their x402 payment requirements and Bazaar schemas.","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/x402/extract":{"get":{"summary":"Extract a web page as clean Markdown with links","description":"Fetch a public web page and return its title, description, clean Markdown (scripts, styles, nav chrome removed) and the list of links. No model call, deterministic.","security":[],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) page to fetch","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com/","status":200,"title":"Example Domain","description":null,"markdown":"This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.","words":25,"links":[],"truncated":false}}}}},"400":{"description":"Bad input (never charged)"},"402":{"description":"Payment Required — x402 v2 PAYMENT-REQUIRED header (base64 JSON, also in the body; retry with PAYMENT-SIGNATURE) and MPP WWW-Authenticate: Payment challenges (retry with Authorization: Payment)"},"422":{"description":"Page could not be fetched or is not text (never charged)"}},"x-payment-info":{"offers":[{"amount":"10000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Extract a web page as clean Markdown with links — USDC.e on Tempo","intent":"charge","method":"tempo"},{"amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Extract a web page as clean Markdown with links — USDC on Base","intent":"charge","method":"evm"}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"3XEdBXYGqqxPsa1E4p5JtuzburkXG47XPw79nc576Hcz"}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","chainId":4217,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"mpp":{"method":"evm","intent":"charge","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chainId":8453,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}}]}}},"/x402/meta":{"get":{"summary":"Fetch web page metadata (OpenGraph, Twitter, icons, JSON-LD)","description":"Fetch a public web page and return its metadata: title, description, canonical URL, language, OpenGraph and Twitter card tags, icons and parsed JSON-LD blocks.","security":[],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) page to fetch","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","example":{"url":"https://example.com/","status":200,"title":"Example Domain","description":null,"canonical":null,"lang":null,"og":{},"twitter":{},"icons":[],"jsonld":[]}}}}},"400":{"description":"Bad input (never charged)"},"402":{"description":"Payment Required — x402 v2 PAYMENT-REQUIRED header (base64 JSON, also in the body; retry with PAYMENT-SIGNATURE) and MPP WWW-Authenticate: Payment challenges (retry with Authorization: Payment)"},"422":{"description":"Page could not be fetched or is not text (never charged)"}},"x-payment-info":{"offers":[{"amount":"5000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch web page metadata (OpenGraph, Twitter, icons, JSON-LD) — USDC.e on Tempo","intent":"charge","method":"tempo"},{"amount":"5000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch web page metadata (OpenGraph, Twitter, icons, JSON-LD) — USDC on Base","intent":"charge","method":"evm"}],"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"3XEdBXYGqqxPsa1E4p5JtuzburkXG47XPw79nc576Hcz"}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","chainId":4217,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"mpp":{"method":"evm","intent":"charge","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chainId":8453,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}}]}}},"/x402/crawl":{"get":{"summary":"Read a page plus up to 4 same-site linked pages as Markdown","description":"Fetch a public web page plus up to 4 pages on the same host that it links to (in link order, or only those whose path starts with `prefix`), and return each one as title + clean Markdown. Good for reading a docs section or a small site in one call. No model call, deterministic.","security":[],"parameters":[{"name":"url","in":"query","required":true,"description":"Public http(s) page to fetch","schema":{"type":"string"}},{"name":"prefix","in":"query","required":false,"description":"Optional path prefix the linked pages must start with, e.g. /docs/","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Linked pages to read, 0-4 (default 4)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","example":{"start":"https://example.com/","pages":[{"url":"https://example.com/","status":200,"title":"Example Domain","markdown":"This domain is for use in documentation examples.","words":8,"truncated":false}],"skipped":[]}}}}},"400":{"description":"Bad input (never charged)"},"402":{"description":"Payment Required — x402 v2 PAYMENT-REQUIRED header (base64 JSON, also in the body; retry with PAYMENT-SIGNATURE) and MPP WWW-Authenticate: Payment challenges (retry with Authorization: Payment)"},"422":{"description":"Page could not be fetched or is not text (never charged)"}},"x-payment-info":{"offers":[{"amount":"30000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Read a page plus up to 4 same-site linked pages as Markdown — USDC.e on Tempo","intent":"charge","method":"tempo"},{"amount":"30000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Read a page plus up to 4 same-site linked pages as Markdown — USDC on Base","intent":"charge","method":"evm"}],"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"3XEdBXYGqqxPsa1E4p5JtuzburkXG47XPw79nc576Hcz"}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","chainId":4217,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}},{"mpp":{"method":"evm","intent":"charge","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chainId":8453,"recipient":"0x6205c44F9eb2fAeC14292f565B2338C6376Ca78D"}}]}}}}}