Skip to main content
Rate limits are enforced per API key on a .

Limits by plan

PlanRequests per minute
Free60
Pro300
Scale1,000

Response headers

Every API response includes rate limit headers:
HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRemaining requests in current window
Retry-AfterSeconds until reset (only on 429 responses)

How to handle rate limits

When you exceed the limit, the API returns HTTP 429 (see error codes for the full list):
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT",
    "message": "Rate limit exceeded. Retry after 12 seconds."
  }
}

Retry strategy

import time
import requests

def api_request_with_retry(url, headers, max_retries=3):
    for attempt in range(max_retries):
        response = requests.get(url, headers=headers)
        if response.status_code == 429:
            retry_after = int(response.headers.get("Retry-After", 10))
            time.sleep(retry_after)
            continue
        return response
    raise Exception("Max retries exceeded")
Use the Retry-After header to implement exponential backoff. Wait the specified number of seconds before retrying.

Best practices

Cache responses

Tech stacks don’t change every minute. Cache domain lookups for at least 24 hours.

Use batch endpoints

/v1/technologies/lookup and /v1/companies/batch let you look up multiple items in a single request.

Monitor usage

Check /v1/usage to track request counts and credit consumption.

Frequently asked questions

The API returns HTTP 429 with a Retry-After header indicating how many seconds to wait. Your request isn’t charged credits. Wait the specified time and retry. See errors for the full error response format.
Rate limits are enforced per API key on a rolling 60-second window. Since each organization has a single API key, the limit applies to all requests from your organization combined.
Cache domain lookups for at least 24 hours (tech stacks don’t change that often). Use batch endpoints like /v1/companies/batch and /v1/technologies/lookup to process multiple items in one request. Monitor your usage with the free /v1/usage endpoint.