Skip to main content

Overview

The Factagora API enforces rate limits to ensure fair usage and service stability. Limits vary by endpoint type.
Endpoint typeLimit
Search endpoints (e.g. /fact-search, /search)600 req/min per API key
Analysis endpoints (e.g. /fact-checker, /evidence-finder, /generate, /deep-research, /timeseries, /causality-graph, /ingest)60 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.