Bulk fetch URLs
Enqueues multiple URLs for HTTP fetching. Results delivered via webhook. Does not support options that require page rendering (cookies, wait_for_selector, etc.). **Limits:** request bodies are guarded in a two-tier shape. A streamed body with no `Content-Length` header is capped at 2 MB before your API key is checked; a body that declares `Content-Length` is instead bounded there by a 20 MB fail-safe (not the real limit — see below), since that branch reads nothing until your key is verified. Once your key is verified, a second check re-gates the body against your account's own `max_bulk_size` (at this endpoint's per-item override budget), which reaches 16.8 MB for the largest documented account. A standard-plan account's effective ceiling is 2 MB; either tier's overrun returns a `400` with error code `request_too_large`.
Authorization
AuthorizationRequiredBearer <token>API key. Manage keys from the dashboard at app.bytekit.com.
In: header
Request Body
application/jsonRequiredurlsRequiredarray<string | object>defaultsobjectwebhook_urlRequiredstringWebhook endpoint URL (HTTPS only; http:// rejected with 400 invalid_url, reason scheme_unsupported)
"^https://"Format: "uri"webhook_secretstringmetadataobjectArbitrary key-value metadata. Max 4096 bytes when JSON-serialized.
Fetch bulk job accepted.
Fetch Bulk
Fetch Bulk API — endpoints, requests, and responses.
GET /v1/fetch/bulk/{id}Get fetch bulk job status
Returns the job envelope plus its per-URL items. **Downloading item content.** Each completed item's `content_url` is a **pre-signed** URL, minted fresh on every read of this endpoint and valid for **600 seconds (10 minutes)** — the same signing lifetime as the `image_url` returned by `GET /v1/bulk/{id}/screenshots`. The underlying objects are private, so an unsigned URL returns `401`: download the content inside that window, or re-poll this endpoint for a fresh signature. Items that are not `completed`, and completed items with no stored object, carry `null` or the unsigned stored URL instead.