Skip to main content

Base URL

All API requests go to:
https://api.crawlkit.com/api/v1

Authentication

Every request needs authentication. Choose one of these methods:

API Key

Authorization: ApiKey ck_your_key
Best for servers and scripts

JWT Token

Authorization: Bearer eyJhbG...
Best for web/mobile apps
See the Authentication guide for details.

Request Format

All requests use:
  • Method: POST
  • Content-Type: application/json
  • Body: JSON object with url or query and optional options
curl -X POST https://api.crawlkit.com/api/v1/crawl/raw \
  -H "Authorization: ApiKey ck_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

Response Format

All responses follow this structure:

Success Response

{
  "success": true,
  "data": {
    // Endpoint-specific data
    "creditsUsed": 1,
    "creditsRemaining": 999
  }
}

Error Response

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Human readable message"
  }
}

Available Endpoints

EndpointDescriptionCost
POST /crawl/rawFetch URL content1 credit
POST /crawl/searchWeb search1 credit
POST /crawl/screenshotTake screenshot1 credit

Error Codes

HTTP CodeError CodeDescription
400INVALID_URLURL is malformed or missing
400INVALID_REQUESTRequest body is invalid
401UNAUTHORIZEDMissing or invalid auth
402INSUFFICIENT_CREDITSNo credits remaining
408TIMEOUTRequest took too long
500INTERNAL_ERRORServer error
502CRAWL_FAILEDFailed to fetch URL

Rate Limits

  • Concurrent requests: Based on your plan (default: 10)
  • Requests per minute: No limit (use responsibly)
If you hit your concurrent limit, you’ll get a 429 Too Many Requests response.

Endpoints