API Reference/Documentation
GitHubDashboard
Getting Started

Rate Limits

API rate limits are applied per tenant and per IP address. When you exceed the limit, the API returns 429 Too Many Requests.

Per-tenant

Limits are scoped to your tenant and subscription plan

Sliding window

1-minute window with burst allowance for spikes

Headers included

Every response includes X-RateLimit-* headers

Limits by Plan

Rate limits vary by subscription tier. Higher plans include more requests per minute and a larger burst allowance.

PlanRate LimitWindowBurst
Free60 req1 minute10
Starter300 req1 minute30
Pro1,000 req1 minute100
Team5,000 req1 minute500
EnterpriseCustomCustomCustom

Monthly API Call Limits

In addition to per-minute rate limits, API key usage is tracked against a monthly quota. When the monthly limit is reached, all API key requests return 429 until the next billing cycle.

PlanMonthly API Calls
Free1,000
Starter10,000
Pro100,000
Team500,000
EnterpriseCustom

Usage headers

API key responses include X-API-Usage-Current and X-API-Usage-Limit headers to track your monthly consumption.

Rate Limit Headers

Every response includes rate limit headers so you can monitor your usage and implement backoff logic.

Response headers
http
HTTP/1.1 200 OK
Content-Type: application/json
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1738942060
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Rate limit headers

Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

429 Too Many Requests

When you exceed the rate limit, the API returns 429 with a JSON body indicating when you can retry.

Response429Too Many Requests
429 Response
json
1
2
3
4
5
6
7
8
9
10
{
  "success": false,
  "status": 429,
  "message": "Rate limit exceeded. Try again after the window resets.",
  "retryAfter": 42,
  "meta": {
    "timestamp": "2026-02-08T12:00:00.000Z",
    "version": "v1"
  }
}

Exponential backoff

When you receive 429, wait until the window resets (check X-RateLimit-Reset or the response retryAfter field) before retrying. Implement exponential backoff for sustained high-volume usage.

Best Practices

  • Monitor X-RateLimit-Remaining and throttle requests before hitting the limit
  • Use batch endpoints where available to reduce request count
  • Cache responses when appropriate (e.g. plans, configuration)
  • Implement exponential backoff with jitter when retrying after 429
  • Contact support for custom limits on Enterprise plans