Skip to main content

Current Limits

LimitValue
Requests per minute50
Max results per request (top_k)100

Rate Limit Headers

When you exceed the rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": "Rate limit exceeded. Maximum 50 requests per minute."
}

Best Practices

When you receive a 429 error, wait before retrying. Double the wait time with each retry.
import time
import requests

def make_request_with_retry(url, headers, json, max_retries=5):
    for attempt in range(max_retries):
        response = requests.post(url, headers=headers, json=json)

        if response.status_code == 429:
            wait_time = 2 ** attempt  # 1, 2, 4, 8, 16 seconds
            print(f"Rate limited. Waiting {wait_time}s...")
            time.sleep(wait_time)
            continue

        return response

    raise Exception("Max retries exceeded")
Instead of making many small requests, use larger top_k values to get more results per request.
# ❌ Bad: 100 requests for 100 results
for i in range(100):
    search(query, top_k=1, offset=i)

# ✅ Good: 1 request for 100 results
search(query, top_k=100, offset=0)
Cache API responses to avoid making duplicate requests for the same data.

Need Higher Limits?

Contact [email protected] to discuss custom rate limits for your use case.