{"service":"x402 micropaid APIs: UK VAT calculator + GPU/cloud price feed + Page Reader (URL -> markdown) + Verify (URL value vs claim) + x402 conformance runs (x402 pay-per-call)","price":"VAT and GPU: 0.005 USDC per successful call. Page Reader: 0.001 USDC per URL (/v1/read), 0.005 USDC per URL deep read with OCR up to 10 pages (/v1/read/deep), 0.008 USDC per batch of up to 10 (/v1/read/batch). Verify (/v1/verify): 0.005 USDC. x402 conformance run (/v1/conformance): 0.03 USDC. Base mainnet, x402 v2 exact scheme. Failed calls (status >= 400) are never charged.","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xc1d2A86AeC4c63f9eFb0BaF5410C560B652291CE","facilitator":"https://facilitator.payai.network","endpoints":{"POST /v1/vat-calc":"JSON body: {net|gross, rate?, description?, kind?} or {lines:[...]} or {monthly_taxable_turnover:[...], threshold?}; markdown?: true","GET /v1/vat-calc":"Query: ?net=1500&rate=standard  or  ?gross=126&rate=reduced  (rate: standard|reduced|zero|exempt|outside-scope|<percent>)","POST /v1/gpu-prices":"GPU cloud price feed. JSON body (all optional): {query, provider: aws|azure|oci|all, offer_type: on_demand|spot|any, region, min_gpus, max_price_per_hour, max_price_per_gpu_hour, include_fractional, sort: price_per_gpu_hour|price_per_hour, limit: 1-100}. On-demand on AWS/Azure/OCI; Spot is Azure-only (no L40S Spot in this snapshot). Spot rows with price identical to on-demand for the same instance are dropped as non-discount. Cached snapshot of official public price lists (see as_of/freshness) — NOT live, not a quote. Vast.ai excluded (ToS). Data-centre GPUs only, no consumer GPUs.","POST /v1/read":"Page Reader, 0.001 USDC: JSON {url, format?: markdown|text|html, max_chars?: 1000-200000, include_links?: bool, ocr?: auto|1|0, render?: auto|1|0, ocr_lang?} -> clean markdown + title/lang/dir/word_count/sha256. OCR fallback for scanned PDFs and PDFs with a missing or garbled text layer (first 3 pages), headless-Chrome fallback for JS-rendered pages. Not charged on 4xx/5xx.","POST /v1/read/deep":"Page Reader deep, 0.005 USDC: same body as /v1/read; one 45 s budget for download (<= 30 s, <= 25 MB) + OCR of up to 10 PDF pages.","GET /v1/read/deep":"Same as POST /v1/read/deep via query string: ?url=https://...","GET /v1/read":"Same as POST /v1/read via query string: ?url=https://...&format=markdown","POST /v1/read/batch":"Page Reader batch, 0.008 USDC flat: JSON {urls: [1-10 URLs], format?, max_chars?, include_links?}; per-item ok/error; charged only if >= 1 URL succeeds.","GET /v1/read/batch":"Same as POST via query string: ?url=...&url=... (repeat up to 10)","GET /v1/verify":"Verify, 0.005 USDC: ?url=https://...&path=$.data.amount&claimed=2393.69[&tolerance=5][&mode=auto|json|css|regex][&render=auto|always|never] -> extracted_value, match, diff, http_status, content_type, fetched_at, source_sha256. Not charged on 4xx (bad input 400, robots 403, path not found 422, upstream failure 424).","POST /v1/verify":"Same as GET /v1/verify with a JSON body {url, path, claimed, tolerance?, mode?, render?} (claimed may be any JSON type).","GET /v1/conformance":"x402 conformance run, 0.03 USDC: ?url=<x402 endpoint>[&method=GET|POST] -> score 0-100, checks[] (pass/warn/fail/info + evidence), summary, fetched_at. Unpaid probes only. Not charged on 400 (bad input/private URL/DNS) or 424 (unreachable).","POST /v1/conformance":"Same with a JSON body {url, method?: GET|POST, body?} (body is sent on POST probes).","GET /.well-known/agent-anchor.json":"free: signed statement binding front/origin/payTo/paid routes to our SwarmMemo key","GET /health":"free","GET /":"free (this page)","GET /v1/gpu-prices":"Same GPU price feed via query string, e.g. ?query=h100&limit=5 (same filters as POST; same 402/x402 payment).","GET /v1/gpu-row-digests":"free: every (id, row_sha256) pair + snapshot_root_sha256 and the exact hash spec, to verify paid GPU rows","GET /v1/receipts/{request_id}":"free: settlement receipt (Base tx hash, payer, network) for a paid call; request_id is in every paid response body and the X-Request-Id header. The PAYMENT-RESPONSE header on the paid response also carries tx + payer.","GET /openapi.json":"free (OpenAPI 3.1)","GET /.well-known/x402":"free (x402 discovery)","POST /mcp":"MCP streamable-HTTP. Discovery is free (initialize, tools/list, ping, notifications). tools/call read_url costs 0.001 USDC; tools/call (get_gpu_prices, uk_vat_calc, verify_value 0.005; x402_conformance 0.03) requires the same x402 payment: 0.005 USDC on Base — unpaid calls get HTTP 402 + PAYMENT-REQUIRED; retry with PAYMENT-SIGNATURE (or X-PAYMENT).","GET /.well-known/mcp-registry-auth":"free (MCP registry domain proof)"},"example_request":{"net":1500,"rate":"standard","description":"Consulting fee"},"example_requests":{"POST /v1/vat-calc":{"net":1500,"rate":"standard","description":"Consulting fee"},"POST /v1/gpu-prices":{"query":"h100","limit":5},"POST /v1/read":{"url":"https://en.wikipedia.org/wiki/Graphics_processing_unit","format":"markdown","max_chars":20000},"POST /v1/read/batch":{"urls":["https://example.com/","https://nl.wikipedia.org/wiki/Grafische_processor"]},"POST /v1/verify":{"url":"https://api.coinbase.com/v2/prices/ETH-USD/spot","path":"$.data.amount","claimed":"2393.69","tolerance":5},"POST /v1/conformance":{"url":"https://gpu-front.kestrel-ops-351.workers.dev/v1/read?url=https://example.com/","method":"GET"}},"disclaimer":"VAT: arithmetic and UK VAT rules summary only, not tax, legal or accounting advice. GPU prices: indicative list prices from a cached snapshot, not live, not a quote, not financial advice.","connectivity":{"ipv4":"ok","ipv6":"ok","front":"https://gpu-front.kestrel-ops-351.workers.dev (Cloudflare, dual-stack)","advice":"Use the front host; IPv4 and IPv6 both verified 2026-10-17.","user_agent":"Send any User-Agent that does not start with 'Python-urllib' (e.g. 'my-agent/1.0'). Cloudflare's edge answers Python's urllib default UA with 403 'error code: 1010' on *.workers.dev before our proxy runs; python-requests, httpx, aiohttp, node, Go, axios, curl and an empty UA all pass. IPv4-only fallback with no UA rule: https://gpu0a49b9444d66-s-org.runlocal.eu"}}