Crawl API is a headless browser REST API. Send a POST request with a URL, get back structured data — HTML, Markdown, screenshots, PDFs, metadata, and more.
https://crawlapi.dev
All requests require an API key sent via the x-api-key header. You can generate keys from your dashboard.
x-api-key: YOUR_API_KEY
Every endpoint accepts a POST request with a JSON body. The url field is always required. Some endpoints accept an optional options object.
curl -X POST https://crawlapi.dev/api/screenshot \-H "Content-Type: application/json" \-H "x-api-key: YOUR_API_KEY" \-d '{"url": "https://example.com"}'
{"success": true,"data": {"url": "https://cdn.crawlapi.dev/screenshots/abc123.png","sourceUrl": "https://example.com","width": 1440,"height": 900},"credits_used": 2,"credits_remaining": 498}
| Limit | Value |
|---|---|
| Requests per minute | 60 |
| Max concurrent | 10 |
| Request timeout | 30s |
Each endpoint costs a fixed number of credits per request. Credits are deducted only on success.
| Endpoint | Credits |
|---|---|
/api/content | 1 |
/api/markdown | 1 |
/api/json | 1 |
/api/links | 1 |
/api/screenshot | 2 |
/api/scrape | 2 |
/api/pdf | 3 |
/api/snapshot | 3 |
/api/crawl | 3 |
All errors return a JSON object with success: false and an error message.
{"success": false,"error": "Missing or invalid API key"}
| Status | Meaning |
|---|---|
400 | Missing or invalid URL / bad options |
401 | Missing or invalid API key |
403 | Insufficient credits |
405 | Wrong HTTP method (use POST) |
429 | Rate limit exceeded |
500 | Server error |