Skip to main content

Rate limits

The Public Lead API limits the number of requests per API key.

LimitValue
Per minute60 requests
Per day2000 requests

Limits are counted per API key separately.

429 Too Many Requests

When the limit is exceeded, the API returns a 429 status code. To handle it correctly:

  1. Read the Retry-After header in the response (how many seconds to wait).
  2. Retry after that time has passed.
  3. If there is no Retry-After — apply exponential backoff.
import time, requests

def post_with_retry(url, headers, json, max_retries=5):
delay = 1
for attempt in range(max_retries):
resp = requests.post(url, headers=headers, json=json, timeout=15)
if resp.status_code != 429:
return resp
retry_after = int(resp.headers.get("Retry-After", delay))
time.sleep(retry_after)
delay *= 2 # exponential backoff
resp.raise_for_status()
return resp

:::tip To stay under the limit

  • Send leads as a stream rather than in a batch.
  • Poll status at a reasonable interval (e.g. every 30–60 seconds), not too often.
  • Don't resubmit the same lead repeatedly with the same external_id. :::