Rate Limits

Rate limits are per API key using a sliding window. Exceeding a limit returns 429 with rate limit headers.

Limits by endpoint

Endpoint Group Limit
POST /v1/clay/enrich 5 / 60s
POST /v1/research, POST /v1/enrich 10 / 60s
POST /v1/research/bulk, POST /v1/lists, POST /v1/lists/{id}/analyze 2 / 60s
POST /v1/research/{id}/sequence 20 / 60s
All other endpoints 60 / 60s

Rate limit headers

Every response includes rate limit information:

Header Description
X-RateLimit-Limit Max requests allowed in the window
X-RateLimit-Remaining Requests remaining in the current window
X-RateLimit-Reset Unix timestamp when the window resets
Retry-After Seconds to wait (only on 429 responses)

Handling rate limits

The Python SDK automatically retries on 429 responses with exponential backoff (up to 3 retries by default):

# Automatic retries (default: 3)
client = AuggieClient("aug_your_key", max_retries=3)

# Disable retries
client = AuggieClient("aug_your_key", max_retries=0)

# Catch rate limits manually
from auggie import RateLimitError
try:
    result = client.research("https://example.com")
except RateLimitError as e:
    print(f"Retry after {e.retry_after} seconds")