{"data":{"endpoints":[{"method":"GET","path":"/v1/fetch","params":[{"name":"url","required":true,"description":"Absolute http or https URL to fetch."},{"name":"fresh","required":false,"description":"1 or true bypasses the cache and fetches now. Same price."},{"name":"max_bytes","required":false,"description":"Cap on the downloaded body size. The server enforces its own maximum regardless."},{"name":"timeout_ms","required":false,"description":"Hint. The server enforces its own upper bound."}],"price":{"amount":"0.005","asset":"USDC","network":"base","payTo":"0xB3b5Fb04B2Aef15baf18b121F49fF1DfD100Dd2E"},"example_success":{"data":{"url":"https://example.com/page","final_url":"https://example.com/page","title":"Page title","description":null,"content_type":"text/html; charset=utf-8","markdown":"# Page title\n\nExample body.","word_count":5,"truncated":false,"fetched_at":"2026-09-19T12:00:00.000Z"},"error":null,"meta":{"request_id":"00000000-0000-4000-8000-000000000001","cost_usdc":"0.005","cached":false,"cached_at":null,"upstream_status":200,"payment":{"network":"base","asset":"USDC","payer":"0x1111111111111111111111111111111111111111","settlement_ref":"0x1111111111111111111111111111111111111111111111111111111111111111"}}},"example_error":{"data":null,"error":{"code":"blocked_target","message":"Private, link-local and metadata addresses are not fetchable."},"meta":{"request_id":"00000000-0000-4000-8000-000000000002","cost_usdc":"0","cached":false,"cached_at":null,"upstream_status":null,"payment":null}},"errors":[{"code":"payment_required","status":402,"when":"No payment proof was sent.","message":"Payment is required."},{"code":"payment_invalid","status":402,"when":"A proof was sent but verification failed.","message":"The payment proof could not be verified."},{"code":"invalid_url","status":400,"when":"Missing, relative, or malformed url.","message":"The url parameter must be an absolute http or https URL."},{"code":"blocked_target","status":400,"when":"Non-http(s) scheme, a private, link-local, or metadata address, or a host on the deny list, at any redirect hop.","message":"Private, link-local and metadata addresses are not fetchable."},{"code":"blocked_by_robots","status":403,"when":"robots.txt disallows the get402 user agent for the path.","message":"The target's robots.txt disallows this user agent for that path."},{"code":"rate_limited","status":429,"when":"Per-caller, per-target-host, or per-payer limit hit. Retry-After gives the seconds to wait. Never charged.","message":"Rate limit exceeded."},{"code":"upstream_failed","status":502,"when":"DNS, connect, TLS, or read failure. A timeout uses the same code with HTTP 504.","message":"The upstream request failed before a response."},{"code":"upstream_error","status":502,"when":"The target answered with 4xx or 5xx. meta.upstream_status carries that status.","message":"The target returned an error."},{"code":"too_large","status":422,"when":"The hard cap was hit before extraction could succeed.","message":"The body exceeded the size cap before enough content was read to extract."},{"code":"unsupported_content","status":422,"when":"The body is not HTML or plain text.","message":"Only HTML and plain text can be extracted."},{"code":"extraction_empty","status":422,"when":"The fetch succeeded but extraction found no article body.","message":"The page had no usable main content."},{"code":"not_found","status":404,"when":"Unknown request_id on the receipts route.","message":"No request exists with that id."},{"code":"unavailable","status":503,"when":"Health check failed. error.message names the dependency.","message":"A dependency is unavailable."},{"code":"internal","status":500,"when":"Unexpected failure in this service.","message":"get402 failed while handling the request."}]}]},"error":null,"meta":{"request_id":"181868f0-a417-44be-9df9-cda22969b526","cost_usdc":"0","cached":false,"cached_at":null,"upstream_status":null,"payment":null}}