Skip to main content

Overview

The Factagora API enforces rate limits to ensure fair usage and service stability.
LimitValue
Requests per minute60 req/min per API key

Response Headers

Every API response includes the following headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed per minute
X-RateLimit-RemainingRemaining requests in the current window
Retry-AfterSeconds to wait before retrying (only on 429 responses)

Rate Limit Exceeded

When you exceed the rate limit, the API returns a 429 Too Many Requests response:
{
  "error": "Too Many Requests",
  "message": "Rate limit exceeded. Try again in 30s",
  "statusCode": 429
}

Handling Rate Limits

Use the Retry-After header to wait the appropriate amount of time before retrying:
import requests
import time

def request_with_retry(url, headers, params):
    response = requests.get(url, headers=headers, params=params)

    if response.status_code == 429:
        retry_after = int(response.headers.get("Retry-After", 60))
        time.sleep(retry_after)
        return request_with_retry(url, headers, params)

    return response
If you consistently hit rate limits, consider batching requests or upgrading your plan. See Credits & Pricing for details.