Skip to content

Rate Limits

Understand the rate limits for the Trakkr API and how to handle them gracefully in your application.

Overview

The Trakkr API implements rate limiting to ensure fair usage and maintain stability for all users. Rate limits are applied on a per-API-key basis.

Rate limits are designed to be generous for normal usage patterns. If you're consistently hitting limits, consider batching requests or optimizing your integration.

Rate Limit Tiers

API access requires the Scale plan ($399/mo) or higher. Your rate limit depends on your plan:

PlanRequests/minBurstDaily Limit
Scale6010010,000
Enterprise300500Unlimited
Test Keys20301,000
API keys can only be generated on the Scale plan or higher. Free and Growth plans do not include API access. Upgrade your plan to get started.

Per-Endpoint Limits

Different endpoints have different rate limits based on their computational cost. Write operations and resource-intensive endpoints have stricter limits.

EndpointMethodRate LimitNotes
/get-brandsGET60/min
/get-brands/marketsPOST30/minMarket limit per plan
/get-brands/marketsDELETE30/min
/get-brands/aliasesPUT30/min
/get-scoresGET60/min
/get-promptsGET60/min
/get-promptsPOST30/min
/get-promptsPUT30/min
/get-promptsDELETE30/min
/get-citationsGET60/min
/get-competitor-dataGET60/min
/get-rankingsGET60/min
/get-modelsGET60/min
/get-opportunitiesGET60/min
/get-perceptionGET60/min
/get-perceptionPOST10/minTriggers new analysis
/get-content-ideasGET60/min
/get-content-ideasPOST10/minTriggers refresh
/get-reportsGET60/min
/get-reportsPOST5/minGenerates PDF report
/get-crawlerGET60/min
/narrativesGET60/min
/narrativesPOST10/min
/narrativesPATCH30/min
/narrativesDELETE30/min
/diagnosePOST10/min200/mo quota (Scale)
/diagnoseGET60/min
/prismGET60/min
/exportGET10/min
Read endpoints (GET) generally allow 60 requests/minute. Write and compute-intensive endpoints (POST for reports, diagnose, perception) have stricter limits. The report generation endpoint has the strictest limit at 5/min due to its computational cost.

Rate Limit Headers

Every API response includes headers to help you track your current rate limit status:

X-RateLimit-Limit

Maximum number of requests allowed per window

X-RateLimit-Remaining

Number of requests remaining in the current window

X-RateLimit-Reset

Unix timestamp when the rate limit window resets

Retry-After

Seconds to wait before retrying (only on 429 responses)

Handling Rate Limits

When you exceed the rate limit, the API returns a 429 Too Many Requests status code. Your application should handle this gracefully:

Respect Retry-After

Always check the Retry-After header and wait the specified time before retrying.

Exponential Backoff

Implement exponential backoff with jitter to avoid thundering herd problems when recovering from rate limits.

Monitor Remaining Quota

Check X-RateLimit-Remaining proactively and slow down requests as you approach the limit.

Exponential Backoff

Exponential backoff is a strategy where you progressively increase the wait time between retries. Adding random jitter prevents all clients from retrying at exactly the same time:

Exponential Backoff
1# Implement exponential backoff in shell
2attempt=1
3max_attempts=5
4
5while [ $attempt -le $max_attempts ]; do
6 response=$(curl -s -w "%{http_code}" \
7 -H "Authorization: Bearer $TRAKKR_API_KEY" \
8 'https://api.trakkr.ai/get-brands')
9
10 status=$(echo "$response" | tail -c 4)
11
12 if [ "$status" -eq 200 ]; then
13 echo "Success!"
14 break
15 elif [ "$status" -eq 429 ]; then
16 sleep_time=$((2 ** $attempt))
17 echo "Rate limited. Retrying in ${sleep_time}s..."
18 sleep $sleep_time
19 attempt=$((attempt + 1))
20 else
21 echo "Error: $status"
22 break
23 fi
24done

Best Practices

1

Batch operations when possible

Use bulk endpoints to create or update multiple resources in a single request.

2

Cache responses locally

Avoid redundant API calls by caching frequently accessed data that doesn't change often.

3

Use webhooks for real-time updates

Instead of polling, subscribe to webhooks to receive push notifications for events.

4

Queue and throttle requests

Implement a request queue with throttling to smooth out bursts and stay within rate limits.

Need higher limits? Contact us at [email protected] to discuss your use case.

Code Example

Handling Rate Limits
1# Check rate limit headers in response
2curl -i -H 'Authorization: Bearer $TRAKKR_API_KEY' \
3 'https://api.trakkr.ai/get-brands'
4
5# Response headers:
6# X-RateLimit-Limit: 100
7# X-RateLimit-Remaining: 95
8# X-RateLimit-Reset: 1700000060
429 Too Many Requests
1{
2 "error": "Rate limit exceeded. Please retry after 60 seconds."
3}
Press ? for keyboard shortcuts