{"uid":"cap_5gn92D0QhMrqtNRIIr765","slug":"readfetch-bounded-async-web-crawl-100d7aff","name":"ReadFetch Bounded Async Web Crawl","description":"Start a bounded async crawl from one seed URL. Returns job_id, status (queued), pages_quoted, and price_usd — then poll readfetch_crawl_status with that id until status is completed or failed. Completed jobs include per-page url and Markdown in the status payload. Cap scope with max_pages (default 20, max 100) and max_depth (default 2, max 3); include/exclude filter paths by prefix (* suffix on include). Prefer readfetch_batch for a fixed URL list; readfetch_map to list URLs ","url":"https://readfetch.com/v1/crawl?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Seed URL; crawl stays on the same registrable domain."},"exclude":{"type":"array","items":{"type":"string"},"description":"Path prefixes to skip during the crawl."},"include":{"type":"array","items":{"type":"string"},"description":"Path prefixes to allow; * suffix wildcard."},"max_depth":{"type":"number","default":2,"maximum":3,"minimum":1,"description":"Link depth from the seed URL (default 2)."},"max_pages":{"type":"number","default":20,"maximum":100,"minimum":1,"description":"Maximum pages to fetch in this job (quoted up front for payment)."}}},"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_ca_ajh9ylzUvnmYZP6-AJ","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":"Initiates a bounded asynchronous crawl of a website up to a declared page cap, returning a job ID and per-page Markdown content for each crawled page.","exampleAgentPrompt":"Crawl the documentation site at https://docs.example.com asynchronously, cap it at 20 pages, and give me each page's content as Markdown so I can index them.","exampleUseCases":[{"title":"Documentation site indexing for RAG","prompt":"Crawl https://docs.myproduct.com up to 30 pages asynchronously and return each page as Markdown — I want to build a retrieval index from all the docs."},{"title":"Competitor content audit","prompt":"Start an async crawl of https://competitor.io/blog, cap it at 50 pages, and send me the Markdown for each article so I can analyze their content strategy."},{"title":"Knowledge base migration","prompt":"Crawl our legacy wiki at https://wiki.internal.com with a 100-page cap and give me Markdown for every page so we can migrate it to our new system."}],"resultDescription":"Returns a job ID immediately upon submission, then provides per-page Markdown for each crawled URL up to the declared page cap. Results are bounded and predictable — the page limit is quoted upfront so cost is known before crawling begins.","failureModes":["Target site blocks crawlers (robots.txt disallowed) returning an error or empty results","Page cap exceeded — crawl stops at declared limit even if more pages exist","Job ID not found if polling too early before crawl initializes","Network timeouts on slow or unresponsive target sites","Dynamic JavaScript-heavy pages may render as incomplete Markdown without a JS-rendering option","Invalid starting URL format returns a validation error"],"whenToPreferThis":"Choose this endpoint when you need to crawl multiple pages of a website asynchronously with a known, bounded page budget — ideal for documentation indexing, content audits, or knowledge base extraction where you want predictable cost and a job ID to track progress. Prefer this over the single-page scrape endpoint when you need many pages at once, and over the batch URL endpoint when you want the crawler to discover links automatically rather than supplying explicit URLs.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:35:56.214Z","isFirstParty":false,"canonicalSlug":"readfetch-bounded-async-web-crawl-100d7aff"}