Documentation

Overview

Use the service

Billing

Reference

Use the service

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.

ScriptWhat it doesPublished filesPrice
fetchA plain HTTP GET, no browser. For downloads and APIs.body, meta€0.12 per 1,000
browser-fetchA 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-fetchRenders 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.

ScriptParameterRangeDefault
capturetimeoutMs1,000–120,00030,000
capturesettleMs (quiet time after load)0–30,000500
fetchtimeoutMs (the whole transfer)1,000–300,00060,000
fetchmaxBytes1 or more; capped at 200,000,000200,000,000
browser-fetchallowedHosts (required, exact host names)1–20 hostsnone
browser-fetchtimeoutMs100–30,00010,000
browser-fetchmaxBytes1–2,000,0001,000,000
render-fetchallowedHosts (required)1–20 hostsnone
render-fetchresourceHosts0–20 hostsnone
render-fetchtimeoutMs1,000–60,00030,000
render-fetchsettleMs0–10,0001,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

  1. POST /batches admits the batch and answers 201 with a batchId.
  2. Each URL becomes one item with its own jobId. An item is tried up to three times.
  3. GET /batches/{batchId} shows the counts and every item's state. The batch is done when completed + failed equals total.
  4. 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}.