{"uid":"cap_8qqOFV__j3PN7pjXHSxZg","slug":"readfetch-http-proxy-5e071d06","name":"ReadFetch HTTP Proxy","description":"Send an HTTP request (GET, POST, PUT, PATCH, DELETE, HEAD) through egress and return status_code, response headers, and body as text or base64 (`binary: true`). `max_bytes` caps the stored body; `follow_redirects` (default true) and `timeout_s` (95 s ceiling) apply to the full redirect chain. Use `json_body` for JSON POST/PUT payloads; use `body` for raw bytes or strings. Prefer readfetch_text for readable HTML articles; readfetch_pdf to extract PDF text (not raw bytes alone)","url":"https://readfetch.com/v1/fetch?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","title":"Url","format":"uri","maxLength":2083,"minLength":1,"description":"Request URL (http or https)."},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body","default":null,"description":"Raw request body string for POST/PUT/PATCH (mutually exclusive with json_body)."},"binary":{"type":"boolean","title":"Binary","default":false,"description":"When true, return body as base64 instead of UTF-8 text."},"method":{"enum":["GET","POST","PUT","PATCH","DELETE","HEAD"],"type":"string","title":"Method","default":"GET","description":"HTTP method (GET default)."},"headers":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}],"title":"Headers","default":null,"description":"Optional request headers, e.g. Authorization or Accept."},"json_body":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Json Body","default":null,"description":"JSON object serialized as the request body (Content-Type application/json)."},"max_bytes":{"type":"integer","title":"Max Bytes","default":10000000,"maximum":50000000,"minimum":1024,"description":"Stop reading and truncate once the response body exceeds this size (bytes)."},"timeout_s":{"type":"number","title":"Timeout S","default":95,"maximum":95,"minimum":1,"description":"Total budget for the whole call in seconds, redirect hops included."},"follow_redirects":{"type":"boolean","title":"Follow Redirects","default":true,"description":"Follow 3xx redirects (default true)."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_PIXoI2LR0a7TV6GptZEfc","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Sends an arbitrary HTTP request (GET, POST, PUT, PATCH, DELETE, HEAD) to any URL and returns the response status, headers, and body as text or base64.","exampleAgentPrompt":"Fetch the JSON response from https://api.example.com/data/users using a GET request with the header Authorization: Bearer mytoken123 and return the full response body.","exampleUseCases":[{"title":"Calling a third-party REST API","prompt":"Make a POST request to https://api.stripe.com/v1/charges with the headers Authorization: Bearer sk_live_abc123 and Content-Type: application/x-www-form-urlencoded, and body amount=2000&currency=usd&source=tok_visa, then return the full response."},{"title":"Fetching a PDF document as binary","prompt":"Fetch the PDF at https://example.com/reports/annual-2024.pdf as binary and return the base64-encoded content so I can save it."},{"title":"Querying a GraphQL endpoint","prompt":"Send a POST request to https://api.github.com/graphql with header Authorization: Bearer ghp_mytoken and JSON body {\"query\": \"{ viewer { login } }\"} and return the response."}],"resultDescription":"Returns the HTTP response status code, response headers as key-value pairs, and the response body as either a UTF-8 text string or a base64-encoded string for binary content. Includes the full response from the upstream server including error codes.","failureModes":["Upstream server returns 4xx or 5xx — status and body are returned but reflect the upstream error","Timeout exceeded (max 95s) — request fails with a timeout error","URL is unreachable or DNS fails — connection error returned","Max bytes limit hit — body truncated at the configured max_bytes threshold","Bot detection / IP block on target — retry via residential egress may help","Malformed URL or unsupported scheme — validation error before request is sent"],"whenToPreferThis":"Use this endpoint when you need to make raw HTTP requests to external APIs, GraphQL endpoints, or file URLs where full control over method, headers, and body is required — especially for binary content, large payloads, PDFs, or APIs that require specific auth headers. Prefer this over browser-based scraping endpoints when the target is a machine-readable API, not a JavaScript-rendered webpage. Choose the residential egress option when the target blocks datacenter IPs.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:39:49.054Z","isFirstParty":false,"canonicalSlug":"readfetch-http-proxy-5e071d06"}