Captures
Send up to 1,000 URLs per batch; each is fetched or rendered once and published as an immutable set of files you download with a short-lived URL.
Choose a script
Every batch runs one script for all its URLs. The script decides what is published and what it costs.
| Script | What it does | Published files | Price |
|---|---|---|---|
fetch | A plain HTTP GET, no browser. For downloads and APIs. | body, meta | €0.12 per 1,000 |
browser-fetch | A GET through Chromium's own network stack, so the request carries a real browser's network identity. Redirects must stay on allowedHosts. | body, meta | €0.80 per 1,000 |
render-fetch | Renders the page in Chromium with scripts running. The page may load documents from allowedHosts and subresources from resourceHosts; anything else is aborted and counted, not fetched. | html, meta | €0.80 per 1,000 |
capture (default) | Renders the page in Chromium and takes a screenshot. The page must stay inside the requested site. | screenshot, html, meta | €1.00 per 1,000 |
html is the rendered document, not the raw response. meta is a JSON record of what happened: status, timings, the final URL, the browser profile's attestation and the network evidence.
Script parameters
Pass them as params. They are checked when an item runs: a value the script refuses fails that item, and a failed item is free.
| Script | Parameter | Range | Default |
|---|---|---|---|
capture | timeoutMs | 1,000–120,000 | 30,000 |
capture | settleMs (quiet time after load) | 0–30,000 | 500 |
fetch | timeoutMs (the whole transfer) | 1,000–300,000 | 60,000 |
fetch | maxBytes | 1 or more; capped at 200,000,000 | 200,000,000 |
browser-fetch | allowedHosts (required, exact host names) | 1–20 hosts | none |
browser-fetch | timeoutMs | 100–30,000 | 10,000 |
browser-fetch | maxBytes | 1–2,000,000 | 1,000,000 |
render-fetch | allowedHosts (required) | 1–20 hosts | none |
render-fetch | resourceHosts | 0–20 hosts | none |
render-fetch | timeoutMs | 1,000–60,000 | 30,000 |
render-fetch | settleMs | 0–10,000 | 1,500 |
Every host a browser script contacts must resolve to a public address; private and internal addresses are refused.
Browser profiles
Browser scripts run under one of two reviewed profiles, chosen with profileId: desktop-chrome-nl/v2 (the default) or native-headless-chromium/v2. A profile fixes the browser, locale (nl-NL), time zone (Europe/Amsterdam) and window; you cannot override the user agent or launch flags. meta carries the profile's attestation, so you can check what actually ran.
The life of a batch
POST /batchesadmits the batch and answers201with abatchId.- Each URL becomes one item with its own
jobId. An item is tried up to three times. GET /batches/{batchId}shows the counts and every item's state. The batch is done whencompleted + failedequalstotal.GET /artifacts/{jobId}/{kind}gives a read-only download URL for one published file, valid for 15 minutes. Ask again for a fresh one rather than storing it.
A completed item with httpStatus 404 is a successful capture of an error page. A failed item publishes meta only, with outcome: "failure".
What it costs
At submission the batch reserves its item count times the script's price. Each item is charged once, when its files are published. An item that fails after its last attempt is released and costs nothing, and our own retries are free. Charges appear up to one settlement interval (30 seconds) after an item finishes. See Credit and billing.
Reference
POST /batches, GET /batches/{batchId}, GET /jobs/{jobId}, POST /jobs/{jobId}/retry, GET /artifacts/{jobId}/{kind}.