openapi: 3.2.0 info: title: MERCURY x402 storefront Cited Readability API version: '1' x-spec: mercury-storefront/1 description: Agent-payable resources over HTTP 402 (x402). LIVE — Base mainnet, real USDC, no token. Only currently-deliverable routes are listed (web-fetch is the live paid SKU; mints are gated off). Free discovery at /.well-known/x402, /x402/discovery, /catalog, and /manifest. servers: - url: https://network.mercury-hq.com tags: - name: cited-readability paths: /buy/readability: get: summary: MERCURY Cited Readability description: 'URL → a clean ARTICLE record { title, byline, publishedAt, article text } with boilerplate (nav/header/footer/sidebar/ads/share-bars/comment-forms) stripped via deterministic DOM density heuristics, plus a signed provenance receipt pinning the cleaned article to its source — the clean-citation primitive distinct from raw markdown. Deterministic (no LLM): same URL + same source bytes ⇒ byte-identical output.' operationId: buy_cited_readability tags: - cited-readability responses: '200': description: Delivered after the x402 payment settles on Base mainnet. content: application/json: schema: type: object properties: ok: type: boolean description: true on success; false on an honest failure (503-before-charge — you are NOT billed) url: type: string description: final URL after redirects status: type: integer description: upstream HTTP status text: type: string description: 'the canonical signed string: JSON.stringify(data, sortedKeys). The EIP-191 attestation signs THIS, so the buyer can prove the WHOLE article record (title+byline+date+body) is exactly what MERCURY extracted from this url at this time.' fetchedAt: type: string description: ISO-8601 fetch time (also folded into the signed receipt) data: type: object description: the structured article record the buyer consumes properties: title: type: - string - 'null' description: article headline (JSON-LD headline/name → og:title → ) byline: type: - string - 'null' description: author/byline (JSON-LD author → article:author/author meta), 'By ' prefix stripped publishedAt: type: - string - 'null' description: publish date, ISO-8601 when parseable (JSON-LD datePublished → article:published_time); raw string if present but un-parseable; null if absent siteName: type: - string - 'null' description: publication / site name (og:site_name) when present excerpt: type: - string - 'null' description: page description (meta/og) or the first ~280 chars of the body — a citation card articleText: type: string description: the cleaned article body prose, boilerplate stripped wordCount: type: integer description: word count of the cleaned article body (for chunk/cost budgeting) extractedBy: type: string enum: - landmark - density - fallback description: which deterministic strategy isolated the body (article/main landmark, density scorer, or whole-body fallback) contentType: type: string bytes: type: integer description: raw upstream body size truncated: type: boolean description: true if the cleaned article hit the text cap redirects: type: array items: type: string description: redirect chain followed additionalProperties: false error: type: string description: present only when ok:false attestation: type: object description: EIP-191 provenance receipt over sha256(text)+url+status+time, verifiable OFFLINE by anyone (key pinned at /.well-known/mercury-attestation). Proves THIS article record is exactly what MERCURY extracted from THIS url at THIS time — the wedge a free reader cannot emit. required: - ok - url additionalProperties: false '402': description: Payment Required — retry with an x402-signed payment (e.g. x402-fetch). Terms are in the challenge body (x402 v1). parameters: - name: url in: query required: true schema: type: string maxLength: 2048 description: the article page to extract (http/https) description: the article page to extract (http/https) x-payment-info: protocols: - x402 scheme: exact price: $0.005 currency: USDC network: base networkCaip2: eip155:8453 testnet: false asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' payTo: '0xe10B9d44e72A29B9c19da02981FFCd875308e3C1' facilitator: https://api.cdp.coinbase.com/platform/v2/x402 x402Version: 1 x-x402: scheme: exact price: $0.005 currency: USDC network: base networkCaip2: eip155:8453 asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' payTo: '0xe10B9d44e72A29B9c19da02981FFCd875308e3C1' facilitator: https://api.cdp.coinbase.com/platform/v2/x402 testnet: false maxTimeoutSeconds: 60 x-payment-info: protocols: - x402 network: base currency: USDC payTo: '0xe10B9d44e72A29B9c19da02981FFCd875308e3C1' facilitator: https://api.cdp.coinbase.com/platform/v2/x402 testnet: false spec: mercury-storefront/1