{"demo":true,"note":"Free fixed-input sample of real output. The paid route accepts your own input: /api/pdf ($0.02 per call, x402 USDC on Base, no signup or API key).","paid_endpoint":"https://horizonpulse.dev/api/pdf","price":"$0.02","fixed_input":"url=https://horizonpulse.dev/sample.pdf (fixed, 1 page)","sample_status":200,"sample":{"source":"pdf","priced":{"amountUsd":"$0.02","amountAtomic":"20000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"base","payTo":"0x5b32c973596078a967562ca652761404f19be0e9"},"asOf":"2026-10-01T02:35:06.199Z","ok":true,"requestedUrl":"https://horizonpulse.dev/sample.pdf","finalUrl":"https://horizonpulse.dev/sample.pdf","bytes":858,"totalPages":1,"pagesReturned":1,"truncated":false,"meta":{"title":"Horizon Pulse sample PDF","author":"Horizon Pulse","subject":null,"creator":null,"producer":null,"creationDate":null},"pages":[{"page":1,"text":"Horizon Pulse sample PDF\nPay-per-call APIs for AI agents over x402 (USDC on Base).\nThis file is the fixed input for the free /api/demo/pdf sample."}],"methodology":{"download":"SSRF-safe GET (private/localhost blocked at every redirect hop, 3 redirects), 10MB cap (larger files are rejected, not truncated), 12s download budget. The file must start with %PDF-.","parse":"Text layer via pdf.js, pages 1-50 at most (use pages=N to limit), 100K characters total. No OCR: scanned image-only PDFs return no_text_layer. 10s parse budget: partial text is returned as truncated; no text by then returns parse_timeout (504, not billed).","billing":"Billed only when text is returned. Not billed: missing/bad URL, blocked host, not a PDF, too large, download failure or timeout, encrypted or corrupt PDF, no text layer, or parse timeout with no text; those return 400/413/415/422/502/504 and settlement is skipped."}}}