Queue up to 50 URLs for parallel scraping in a single request
batchId immediately. Each URL is processed in parallel by independent workers.
batchId in the response.GET /api/batch/scrape/{batchId} every 2–5 seconds until status is terminal.202 Accepted:
Location response header is also set to /api/batch/scrape/{batchId} for convenience.
schema to receive a consistent JSON shape for every item:
schema is provided, output is automatically forced to "json". Non-fatal schema issues are returned as schema_warnings in the submission response.
screenshotUrl field once processing is complete.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | string[] | Yes | — | URLs to scrape. 1–50 URLs per request. Must be http:// or https://. Private/internal IPs are rejected. |
prompt | string | No | — | AI extraction instruction applied to every URL in the batch |
output | "json" | "markdown" | No | "json" | Output format for extracted content. Automatically "json" when schema is set |
schema | object | No | — | JSON Schema object that constrains the AI output. Validated before queuing — returns 422 if invalid |
useProxy | boolean | No | false | Route each URL through residential stealth proxies |
proxyCountry | string | No | — | ISO country code ("us", "de", "gb") or region ("eu", "global"). Requires useProxy: true |
extractContentOnly | boolean | No | false | Strip navigation, headers, and sidebars — keeps only the main content |
cookies | string | No | — | Session cookies for authenticated pages. Never persisted to the database — passed ephemerally to the worker only |
screenshot | boolean | No | false | Capture a viewport screenshot of each page |
fullPageScreenshot | boolean | No | false | Capture the full scrollable page. Requires screenshot: true |
| Field | Type | Description |
|---|---|---|
status | "queued" | Always "queued" on a successful submission |
batchId | string | UUID — use this to poll status and manage the batch |
total | number | Number of URLs accepted into the batch |
schema_warnings | string[] | Non-fatal schema issues (e.g., unsupported keywords). Only present if there are warnings |
| Code | Reason |
|---|---|
400 | urls is missing, not an array, empty, or exceeds 50 items |
401 | Missing x-api-key header |
402 | Payment overdue — update your payment method |
403 | Monthly credit limit reached |
422 | One or more URLs are invalid, or schema is malformed. An errors array is returned with per-URL details |
429 | More than 20 batch submissions per minute |
URLs to scrape. 1–50 per request. Must be http:// or https://. Private/internal IPs are rejected.
1 - 50 elementsAI extraction instruction applied to every URL in the batch
Output format. Automatically set to 'json' when schema is provided
json, markdown JSON Schema that constrains AI output shape. Validated before queuing — returns 422 if invalid
Route each URL through residential stealth proxies. Usage is billed from your bandwidth quota.
ISO country code (e.g. 'us', 'de', 'gb') or region ('eu', 'global'). Requires useProxy: true
Browser rendering mode: 'default', 'fast', or 'ai'
Strip navigation, headers, and sidebars — keep only the main content
Session cookies for authenticated pages. Never persisted — passed ephemerally to the worker
Capture a viewport screenshot of each page
Capture the full scrollable page. Requires screenshot: true