The endpoint path is
/web/enrich/live (not /web/fetch/live) because it
follows the Crustdata convention where “enrich” means adding data to a known
identifier — in this case, enriching a URL with its page content.Pricing:
1 credit per page.Default
rate-limit is 10 requests per minute. Send an email to
gtm@crustdata.co to discuss higher limits if
needed for your use case.Request body
Response body
The response is an array (not an object) — one entry per URL in your request.Timestamps: Fetch timestamps are in seconds. Search timestamps are
in milliseconds. Account for this when comparing timestamps across
endpoints.
Fetch a single URL
The simplest request fetches one URL and returns its HTML content.The
content field is trimmed here. It contains the full HTML of the
fetched page.content using an HTML parser (BeautifulSoup for
Python, Cheerio for Node.js) to extract specific elements like text,
links, or metadata.
Examples
Ready-to-copy patterns for Web Fetch. Each example shows a real request, the response, and what to extract.Fetch multiple URLs
Fetch multiple URLs
Pass up to 10 URLs to fetch their content in parallel.
The response array order may differ from the
request order. Match successful results by their
url field, not by array
index.Handle partial failures
Handle partial failures
When some URLs succeed and others fail, the request still returns
200.
Failed URLs have success: false with all other fields as null.Correlating failures to input URLs
Failed entries haveurl: null, so you cannot directly identify which
input URL failed. To correlate failures:- Track the URLs you sent.
- Collect the
urlvalues from all successful entries. - Any input URL not in the successful set is the one that failed.
Bypass Cloudflare protection with human mode
Bypass Cloudflare protection with human mode
Some websites use Cloudflare to block automated requests. Set
human_mode: true to attempt a browser-like fetch path for these pages.Cloudflare bypass is not guaranteed. Some
sites have additional protections that may still block the request.
Processing fetched content
Processing fetched content
The
content field returns raw HTML. Here are common next steps:Request parameter reference
Response fields reference
The response is a top-level array. Each item corresponds to one URL in your request.Timestamps: Fetch timestamps are in seconds. Search timestamps are
in milliseconds. Account for this when comparing timestamps across
endpoints.
Two kinds of failure, two places to check:
- Request-level errors (
400,401) — the entire request failed. You get an error object, not an array. Caused by missing fields, empty arrays, or bad auth. - Per-URL failures within a
200— individual entries withsuccess: falseandnullfields. Caused by unreachable URLs, timeouts, or bot protection.
success for each entry
in the array.Error handling
Fetch returns request-level errors for invalid input or auth failures. These are separate from per-URLsuccess: false entries within a 200
response.
Common gotchas
API reference summary
See the full API reference for
the complete OpenAPI schema.
What to do next
- Search then fetch — see Web Search examples for search-then-fetch workflow patterns.
- Find URLs to fetch — use Web Search to find URLs for downstream fetching.

