{"slug":"api-avedaris-com-v1-paid-web-read-batch-159a39","title":"Read up to 5 public web pages in one call","host":"api.avedaris.com","method":"POST","resource":"https://api.avedaris.com/v1/paid/web-read-batch","category":"code","description":"Read up to 5 public web pages in one call. Per URL: status, final URL, title, main content as Markdown, truncated flag, byte/char counts and an error code. Charged only if a page is read. $0.015 USDC per call on Base.","price_listed":0.015,"price_asked":0.015,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":590,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"urls":["https://example.com/","https://www.example.com/"]},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"additionalProperties":false,"properties":{"maxCharsPerUrl":{"description":"Optional cap on Markdown length per URL, 500 to 20,000 characters. Defaults to 8,000; longer content is cut and truncated is set to true.","maximum":20000,"minimum":500,"type":"integer"},"urls":{"description":"1 to 5 public http(s) URLs to read, each 8 to 8,192 characters. Results come back in the same order; a repeated URL is fetched once.","items":{"maxLength":8192,"minLength":8,"type":"string"},"maxItems":5,"minItems":1,"type":"array"}},"required":["urls"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"result":{"description":"Output of web.read_batch. The fields below are the documented core; some responses add further detail fields.","properties":{"failedCount":{"description":"URLs that could not be read; see the errorCode on each item.","type":"integer"},"items":{"description":"One entry per input URL, in input order.","items":{"description":"One entry per input URL, in input order.","properties":{"bytes":{"description":"UTF-8 bytes in the returned Markdown.","type":"integer"},"chars":{"description":"Characters in the returned Markdown.","type":"integer"},"contentType":{"description":"Content-Type header of the final response, or null.","type":"string"},"elapsedMs":{"description":"Time spent on this URL in milliseconds.","type":"integer"},"errorCode":{"description":"null on success; otherwise a stable code such as http_404, url_timeout, upstream_unreachable, unsupported_content_type, private_network_target_blocked or invalid_url.","type":["string","null"]},"errorDetail":{"description":"Plain-language explanation of errorCode, or null.","type":["string","null"]},"finalUrl":{"description":"URL reached after up to 3 redirects, or null.","type":"string"},"index":{"description":"Position of the URL in the input list, starting at 0.","type":"integer"},"markdown":{"description":"Main page content as Markdown (navigation, header, footer and scripts removed), cut at maxCharsPerUrl. Empty when ok is false.","type":"string"},"ok":{"description":"true when the page answered below HTTP 400 with readable HTML or text.","type":"boolean"},"redirects":{"description":"Redirects followed for this URL.","type":"integer"},"sourceBytes":{"description":"Bytes of page source read (capped at 512,000).","type":"integer"},"sourceTruncated":{"description":"true when the page source was larger than the per-URL byte limit.","type":"boolean"},"status":{"description":"HTTP status of the final response, or null when no response arrived.","type":"integer"},"title":{"description":"Page title from <title>, og:title or the first h1, or null.","type":["string","null"]},"truncated":{"description":"true when the Markdown was cut to maxCharsPerUrl or the source passed the per-URL byte limit.","type":"boolean"},"url":{"description":"The URL as sent.","type":"string"}},"required":["index","url","ok","status","finalUrl","contentType","title","markdown","truncated","sourceBytes","sourceTruncated","chars","bytes","redirects","elapsedMs","errorCode","errorDetail"],"type":"object"},"type":"array"},"limits":{"description":"Limits applied to this call.","properties":{"maxCharsPerUrl":{"description":"Markdown character cap applied to each URL.","type":"integer"},"maxSourceBytesPerUrl":{"description":"Source bytes read per URL before cutting.","type":"integer"},"maxUrls":{"description":"Most URLs accepted per call (5).","type":"integer"},"perUrlTimeoutMs":{"description":"Time budget per URL in milliseconds.","type":"integer"}},"required":["maxUrls","perUrlTimeoutMs","maxSourceBytesPerUrl","maxCharsPerUrl"],"type":"object"},"okCount":{"description":"URLs whose main content was read.","type":"integer"},"requested":{"description":"Number of URLs sent.","type":"integer"}},"required":["requested","okCount","failedCount","items","limits"],"type":"object"}},"required":["result"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-10-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.015,"price_match":true,"latency_ms":590,"error":null}],"description_full":"Read up to 5 public web pages in one call. Per URL: status, final URL, title, main content as Markdown, truncated flag, byte/char counts and an error code. Charged only if a page is read. $0.015 USDC per call on Base.","last_updated":"2026-10-23T00:36:04.513Z","schemes":["exact"]}