Skip to main content
Each endpoint page in this section lists every parameter and response field, with a playground you can call from the browser. For how an endpoint works, with examples in cURL, Node.js and Python, read its guide in the Docs tab.

Base URL

Authentication

Every endpoint except /health and /ready needs an X-API-Key header:
See Authentication for OAuth, bearer tokens and key errors.

Response envelope

Every response has the same shape:
On failure, success is false and data is replaced by an error:
Branch on error_code, not on the wording of error, which can change. retryable tells you whether the same request can succeed later. See Error handling for every code.

Conventions

  • Parameters are snake_case (only_main_content), except on /brand and /enrich, which take camelCase (screenshotColors). Batches and MCP take snake_case everywhere.
  • GET or POST: /scrape, /search and /transaction accept the same fields as a query string on GET or a JSON body on POST. Use POST for nested options like json_schema, headers or scrape_options.
  • URLs can omit the scheme. stripe.com means https://stripe.com.
  • Request bodies can be up to 1 MB.
  • Time limits: most requests finish within 55 seconds, or fail with TIMEOUT. Give your HTTP client at least 60.
  • Ids carry a prefix: crw_ for crawls and batches, mon_ for monitors, chk_ for monitor checks.

Background jobs

Crawls, batches and monitor checks run in the background. POST /crawl, POST /batch/scrape, POST /batch/{endpoint} and POST /monitor/{id}/run return 202 with an id, and you read the results with the matching GET, or get them by webhook. See Async jobs.

Rate limits

Each plan limits how many requests can run at once, from 1 on Free to 500 on Scale. The Free plan also allows 30 requests a minute. Going over either returns 429. See Rate limits.

Credit costs

You’re only charged for successful requests. See Credits.

OpenAPI

The full spec is at /api-reference/openapi.json. Use it to generate a client in your language.