API Reference
On this page
Quick Start Authentication Core Endpoints Extraction Parameters Delivery Configuration Response Format Error Handling Webhooks SDKs Postman CollectionQuick Start
Get your first extraction running in under 2 minutes.
Authentication
All requests require an API key passed via the Authorization header. Keys are generated from the control panel and come in two types:
- Live keys (
crw_sk_live_...) — production requests, billed against your plan. - Test keys (
crw_sk_test_...) — sandbox environment, no billing, limited to 100 requests/day.
Security: Never expose API keys in client-side code. Use environment variables or a secrets manager. Keys can be rotated from the dashboard at any time.
Core Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /v3/extract | Single URL extraction |
| POST | /v3/batch | Batch extraction (up to 1,000 URLs) |
| GET | /v3/jobs/{id} | Get job status and metadata |
| GET | /v3/jobs/{id}/data | Download extracted data |
| GET | /v3/jobs | List recent jobs (paginated) |
| GET | /v3/usage | Current plan usage and quotas |
| POST | /v3/webhooks | Register a delivery webhook |
| GET | /v3/webhooks | List configured webhooks |
| DELETE | /v3/webhooks/{id} | Remove a webhook |
Extraction Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url required | string | — | Target URL to extract |
format optional | string | json | Output format: json, csv, xml |
render_js optional | boolean | false | Enable Chromium headless rendering |
proxy_type optional | string | datacenter | Proxy pool: residential, datacenter |
geo optional | string | auto | Proxy geolocation (ISO 3166-1) |
timeout_ms optional | integer | 30000 | Request timeout in milliseconds |
wait_for optional | string | — | CSS selector to wait for (requires render_js) |
headers optional | object | — | Custom HTTP headers for the request |
delivery optional | object | api | Delivery method and target |
Delivery Configuration
API (default)
Data is available for download via GET /v3/jobs/{id}/data for 72 hours after extraction.
Amazon S3
Google Cloud Storage
Webhook
Response Format
Job created (202 Accepted)
Job completed
Possible status values: queued, processing, completed, failed, expired.
Error Handling
| Code | Meaning | Action |
|---|---|---|
400 | Bad Request — invalid parameters | Check request body |
401 | Unauthorized — invalid or missing API key | Check Authorization header |
403 | Forbidden — plan limit or AUP violation | Check plan quotas or AUP |
404 | Not Found — job ID does not exist | Verify job ID |
410 | Gone — data expired (72h TTL) | Re-run extraction |
429 | Too Many Requests — rate limit exceeded | Wait for Retry-After header |
500 | Internal Server Error | Retry with exponential backoff |
503 | Service Unavailable — maintenance | Check status page |
Webhooks
Webhooks send a POST request to your endpoint when a job completes or fails. The payload includes the full job object.
Webhooks include an X-Crawlo-Signature header for payload verification. Delivery timeout is 10 seconds with 3 automatic retries on failure.
SDKs
Official SDKs for major languages:
Python example
Node.js example
Postman Collection
Import our Postman collection to test all endpoints interactively. Includes pre-configured environments for test and live keys.
Need help? For technical questions, contact [email protected]. See Limits & Quotas for rate limits and plan details.