{"openapi":"3.1.0","info":{"title":"AgentPage402","version":"0.3.0","description":"Twelve public HTML tools: AEO evidence, SEO, readability, extraction and page/site audit reports. External content is untrusted. Empty collections are valid inspection results. Free hosting may sleep; the shared pilot cap and cutoff are at /pilot.","contact":{"url":"https://agentpage402-demo.onrender.com/support"},"x-guidance":"Twelve static HTML tools, paid in USDC via x402 on eip155:8453. Individual tools 0.01; page-audit 0.25; site-audit 1.00 for one to five same-origin URLs. POST JSON url for single-page tools; urls array for site-audit. Inspect the per-route quote before signing. Unsigned empty POST returns a quote. Output schemas and fixed examples: /catalog.json and /examples/{tool}. Empty inspection results are billable. Any failed page in a pack prevents settlement. Retry the original signed proof, endpoint and exact input to recover; never authorize a new payment for a pending result. No ranking/citation predictions. No JavaScript or authentication. /pilot shows the shared cutoff and quota."},"servers":[{"url":"https://agentpage402-demo.onrender.com"}],"paths":{"/v1/extract":{"post":{"operationId":"extractPublicPage","summary":"Page extraction for 0.01 USDC.","description":"Extract readable text, metadata, headings, links and JSON-LD from one public static HTML page for research and retrieval. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"canonical":{"type":["string","null"]},"language":{"type":["string","null"]},"headings":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"}},"required":["level","text"],"additionalProperties":false}},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"}},"required":["url","text"],"additionalProperties":false}},"structuredData":{"type":"array","items":{}},"text":{"type":"string"},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","description","canonical","language","headings","links","structuredData","text","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/markdown":{"post":{"operationId":"pageToMarkdown","summary":"Page to Markdown for 0.01 USDC.","description":"Convert one public static HTML page to bounded Markdown with headings, lists and source links for agent context and document ingestion. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"markdown":{"type":"string"},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","markdown","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/metadata":{"post":{"operationId":"pageMetadata","summary":"Metadata & previews for 0.01 USDC.","description":"Read title, description, canonical URL, language, robots directives, Open Graph and Twitter card metadata for link previews and content catalogs. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"canonical":{"type":["string","null"]},"language":{"type":["string","null"]},"robots":{"type":"string"},"openGraph":{"type":"object","additionalProperties":{"type":"string"}},"twitter":{"type":"object","additionalProperties":{"type":"string"}},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","description","canonical","language","robots","openGraph","twitter","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/links":{"post":{"operationId":"pageLinks","summary":"Link inventory for 0.01 USDC.","description":"Inventory up to 200 unique HTTP links on one public page, including anchor text, rel attributes and internal or external classification. No linked pages are fetched. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"},"rel":{"type":"array","items":{"type":"string"}},"scope":{"enum":["internal","external"]}},"required":["url","text","rel","scope"],"additionalProperties":false}},"counts":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"internal":{"type":"integer","minimum":0},"external":{"type":"integer","minimum":0}},"required":["total","internal","external"],"additionalProperties":false},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","links","counts","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/structured-data":{"post":{"operationId":"pageStructuredData","summary":"Structured data for 0.01 USDC.","description":"Extract bounded publisher JSON-LD blocks and Schema.org type names from one public HTML page for product, article and organization data ingestion. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"structuredData":{"type":"array","items":{}},"types":{"type":"array","items":{"type":"string"}},"invalidBlocks":{"type":"integer","minimum":0},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","structuredData","types","invalidBlocks","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/tables":{"post":{"operationId":"pageTables","summary":"HTML tables to JSON for 0.01 USDC.","description":"Convert up to 10 HTML tables into captions and row arrays for spreadsheet ingestion. Reports header rows, spans and truncation; does not expand merged cells. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"tables":{"type":"array","items":{"type":"object","properties":{"caption":{"type":"string"},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"headerRowIndexes":{"type":"array","items":{"type":"integer","minimum":0}},"hasSpans":{"type":"boolean"},"truncated":{"type":"boolean"}},"required":["caption","rows","headerRowIndexes","hasSpans","truncated"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","tables","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/outline":{"post":{"operationId":"pageOutline","summary":"Document outline for 0.01 USDC.","description":"Extract up to 200 headings from a public static HTML page, preserving levels and parent indexes to build a document outline or table of contents. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"headings":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":1,"maximum":6},"text":{"type":"string"},"parentIndex":{"type":["integer","null"]},"skippedLevel":{"type":"boolean"}},"required":["level","text","parentIndex","skippedLevel"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["url","fetchedAt","title","contentTrust","limitations","headings","truncated"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/seo":{"post":{"operationId":"pageSeoChecks","summary":"HTML SEO checks for 0.01 USDC.","description":"Run deterministic HTML checks for title, description, canonical, language, headings, image alt attributes, indexing directives and social previews. No ranking or traffic predictions. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["pass","warning"]},"detail":{"type":"string"}},"required":["id","status","detail"],"additionalProperties":false}},"counts":{"type":"object","properties":{"passed":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0}},"required":["passed","warnings"],"additionalProperties":false}},"required":["url","fetchedAt","title","contentTrust","limitations","checks","counts"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/aeo":{"post":{"operationId":"pageAeoChecks","summary":"AEO evidence checks for 0.01 USDC.","description":"Inspect answer-engine readiness evidence: snippet directives, readable answers, headings, attribution, dates, source links and JSON-LD syntax. Returns evidence and review actions, never a ranking score or citation guarantee. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["observed","review"]},"evidence":{"type":"string"},"action":{"type":"string"},"priority":{"enum":["high","medium","low"]}},"required":["id","status","evidence","action","priority"],"additionalProperties":false}},"counts":{"type":"object","properties":{"observed":{"type":"integer","minimum":0},"review":{"type":"integer","minimum":0}},"required":["observed","review"],"additionalProperties":false},"answerCandidates":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"excerpt":{"type":"string"}},"required":["question","excerpt"],"additionalProperties":false}},"authorNames":{"type":"array","items":{"type":"string"}},"declaredDates":{"type":"array","items":{"type":"string"}},"sourceLinks":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"}},"required":["url","text"],"additionalProperties":false}},"methodology":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}},"required":["url","fetchedAt","title","contentTrust","limitations","checks","counts","answerCandidates","authorNames","declaredDates","sourceLinks","methodology","references"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/readability":{"post":{"operationId":"pageReadability","summary":"Content readability for 0.01 USDC.","description":"Measure bounded visible text, word and sentence estimates, reading time and long paragraphs. Language-dependent editorial heuristics; no ranking claims or LLM generation. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"wordCount":{"type":"integer","minimum":0},"sentenceCount":{"type":"integer","minimum":0},"paragraphCount":{"type":"integer","minimum":0},"averageWordsPerSentence":{"type":"number"},"readingMinutes":{"type":"number"},"longParagraphs":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"words":{"type":"integer","minimum":0},"excerpt":{"type":"string"}},"required":["index","words","excerpt"],"additionalProperties":false}},"truncated":{"type":"boolean"},"method":{"type":"string"}},"required":["url","fetchedAt","title","contentTrust","limitations","wordCount","sentenceCount","paragraphCount","averageWordsPerSentence","readingMinutes","longParagraphs","truncated","method"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.01","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/page-audit":{"post":{"operationId":"pageEvidenceAudit","summary":"AEO + SEO page audit for 0.25 USDC.","description":"Combine AEO evidence, SEO checks and readability into a prioritized action list and downloadable Markdown report for one public page. Static HTML only; does not measure actual rankings or AI citations. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."}}},"example":{"url":"https://example.com/"}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"aeo":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["observed","review"]},"evidence":{"type":"string"},"action":{"type":"string"},"priority":{"enum":["high","medium","low"]}},"required":["id","status","evidence","action","priority"],"additionalProperties":false}},"counts":{"type":"object","properties":{"observed":{"type":"integer","minimum":0},"review":{"type":"integer","minimum":0}},"required":["observed","review"],"additionalProperties":false},"answerCandidates":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"excerpt":{"type":"string"}},"required":["question","excerpt"],"additionalProperties":false}},"authorNames":{"type":"array","items":{"type":"string"}},"declaredDates":{"type":"array","items":{"type":"string"}},"sourceLinks":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"}},"required":["url","text"],"additionalProperties":false}},"methodology":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}},"required":["checks","counts","answerCandidates","authorNames","declaredDates","sourceLinks","methodology","references"],"additionalProperties":false},"seo":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["pass","warning"]},"detail":{"type":"string"}},"required":["id","status","detail"],"additionalProperties":false}},"counts":{"type":"object","properties":{"passed":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0}},"required":["passed","warnings"],"additionalProperties":false}},"required":["checks","counts"],"additionalProperties":false},"readability":{"type":"object","properties":{"wordCount":{"type":"integer","minimum":0},"sentenceCount":{"type":"integer","minimum":0},"paragraphCount":{"type":"integer","minimum":0},"averageWordsPerSentence":{"type":"number"},"readingMinutes":{"type":"number"},"longParagraphs":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"words":{"type":"integer","minimum":0},"excerpt":{"type":"string"}},"required":["index","words","excerpt"],"additionalProperties":false}},"truncated":{"type":"boolean"},"method":{"type":"string"}},"required":["wordCount","sentenceCount","paragraphCount","averageWordsPerSentence","readingMinutes","longParagraphs","truncated","method"],"additionalProperties":false},"priorities":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"id":{"type":"string"},"priority":{"enum":["high","medium","low"]},"evidence":{"type":"string"},"action":{"type":"string"}},"required":["category","id","priority","evidence","action"],"additionalProperties":false}},"reportMarkdown":{"type":"string"}},"required":["url","fetchedAt","title","contentTrust","limitations","aeo","seo","readability","priorities","reportMarkdown"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"0.25","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.25"},"protocols":[{"x402":{}}]}}},"/v1/site-audit":{"post":{"operationId":"siteEvidenceAudit","summary":"Five-page audit pack for 1.00 USDC.","description":"Audit one to five explicit public URLs from the same origin in one payment. Includes individual AEO/SEO/readability reports, recurring issues and a combined Markdown report. All requested pages must succeed; no automatic crawl or partial charge. Send the initial request, inspect PAYMENT-REQUIRED, then retry using an x402 client with PAYMENT-SIGNATURE. Save the exact signed proof, endpoint and input URL to recover a paid result. A 409 pending outcome must not trigger a new payment. Failed work is not settled. No login, private pages, PDF, or JavaScript execution.","tags":["Web data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["urls"],"additionalProperties":false,"properties":{"urls":{"type":"array","minItems":1,"maxItems":5,"uniqueItems":true,"items":{"type":"string","maxLength":2048,"description":"Absolute public HTTP or HTTPS URL on a standard port, without credentials."},"description":"One to five distinct public URLs on the same origin. All must succeed. Price is fixed for the pack."}}},"example":{"urls":["https://example.com/"]}}}},"responses":{"200":{"description":"Result and PAYMENT-RESPONSE settlement receipt. Recovered results also include X-Payment-Recovered: true.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"pages":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"fetchedAt":{"type":"string"},"title":{"type":"string"},"contentTrust":{"const":"untrusted_external_content"},"limitations":{"type":"array","items":{"type":"string"}},"aeo":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["observed","review"]},"evidence":{"type":"string"},"action":{"type":"string"},"priority":{"enum":["high","medium","low"]}},"required":["id","status","evidence","action","priority"],"additionalProperties":false}},"counts":{"type":"object","properties":{"observed":{"type":"integer","minimum":0},"review":{"type":"integer","minimum":0}},"required":["observed","review"],"additionalProperties":false},"answerCandidates":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"excerpt":{"type":"string"}},"required":["question","excerpt"],"additionalProperties":false}},"authorNames":{"type":"array","items":{"type":"string"}},"declaredDates":{"type":"array","items":{"type":"string"}},"sourceLinks":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"text":{"type":"string"}},"required":["url","text"],"additionalProperties":false}},"methodology":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}},"required":["checks","counts","answerCandidates","authorNames","declaredDates","sourceLinks","methodology","references"],"additionalProperties":false},"seo":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["pass","warning"]},"detail":{"type":"string"}},"required":["id","status","detail"],"additionalProperties":false}},"counts":{"type":"object","properties":{"passed":{"type":"integer","minimum":0},"warnings":{"type":"integer","minimum":0}},"required":["passed","warnings"],"additionalProperties":false}},"required":["checks","counts"],"additionalProperties":false},"readability":{"type":"object","properties":{"wordCount":{"type":"integer","minimum":0},"sentenceCount":{"type":"integer","minimum":0},"paragraphCount":{"type":"integer","minimum":0},"averageWordsPerSentence":{"type":"number"},"readingMinutes":{"type":"number"},"longParagraphs":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"words":{"type":"integer","minimum":0},"excerpt":{"type":"string"}},"required":["index","words","excerpt"],"additionalProperties":false}},"truncated":{"type":"boolean"},"method":{"type":"string"}},"required":["wordCount","sentenceCount","paragraphCount","averageWordsPerSentence","readingMinutes","longParagraphs","truncated","method"],"additionalProperties":false},"priorities":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"id":{"type":"string"},"priority":{"enum":["high","medium","low"]},"evidence":{"type":"string"},"action":{"type":"string"}},"required":["category","id","priority","evidence","action"],"additionalProperties":false}},"reportMarkdown":{"type":"string"}},"required":["url","fetchedAt","title","contentTrust","limitations","aeo","seo","readability","priorities","reportMarkdown"],"additionalProperties":false}},"pageCount":{"type":"integer","minimum":0},"recurringIssues":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"id":{"type":"string"},"pageCount":{"type":"integer","minimum":0},"urls":{"type":"array","items":{"type":"string"}},"action":{"type":"string"}},"required":["category","id","pageCount","urls","action"],"additionalProperties":false}},"reportMarkdown":{"type":"string"}},"required":["url","fetchedAt","title","contentTrust","limitations","pages","pageCount","recurringIssues","reportMarkdown"],"additionalProperties":false}}}},"400":{"description":"Invalid request; no settlement."},"402":{"description":"Payment required or rejected. See PAYMENT-REQUIRED header."},"409":{"description":"Payment already processing, uncertain, failed, or bound to another request. Retry the original signed proof and URL; use /support before authorizing another payment."},"422":{"description":"Page unsupported, private, unavailable, too large or redirects invalid; no settlement."},"429":{"description":"Capacity or rate limit reached; no settlement."},"502":{"description":"Upstream or facilitator failure."},"503":{"description":"Payment service unavailable, pilot expired, or pilot request cap reached."},"504":{"description":"Page fetch timed out; no settlement."}},"x-x402":{"network":"eip155:8453","price":"1.00","asset":"USDC"},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.00"},"protocols":[{"x402":{}}]}}},"/catalog.json":{"get":{"security":[],"summary":"Free catalog, input and output schemas.","responses":{"200":{"description":"Service catalog."}}}},"/demo":{"get":{"security":[],"summary":"Free fixed example; does not fetch a caller-supplied URL.","responses":{"200":{"description":"Fixed sample result."}}}},"/pilot":{"get":{"security":[],"summary":"Pilot cutoff and paid-attempt quota, when receipt storage is configured.","responses":{"200":{"description":"Pilot status."}}}},"/support":{"get":{"security":[],"summary":"Customer support form and private ticket inbox, when storage is configured.","responses":{"200":{"description":"HTML support page."}}}}}}