Rate limit tiers
Rate limits are applied per API key and vary by plan. Limits are measured in requests per minute (RPM).| Plan | Rate limit | Burst allowance |
|---|---|---|
| Free | 60 requests/min | 10 extra for short bursts |
| Pro | 300 requests/min | 50 extra for short bursts |
| Teams | 1,000 requests/min | 200 extra for short bursts |
| Enterprise | Custom | Contact sales |
Burst allowance lets you briefly exceed your base limit for short spikes. Sustained traffic above your base limit will still be throttled.
Rate limit headers
Every API response includes headers that tell you your current rate limit status:| Header | Description | Example |
|---|---|---|
X-RateLimit-Limit | Maximum requests allowed per minute | 300 |
X-RateLimit-Remaining | Requests remaining in the current window | 287 |
X-RateLimit-Reset | Unix timestamp when the window resets | 1713000060 |
Retry-After | Seconds to wait before retrying (only on 429 responses) | 12 |
Example response headers
Handling rate limits
When you exceed your rate limit, the API returns a429 Too Many Requests response:
429 response
Retry strategy
We recommend implementing exponential backoff with jitter when you receive a429 response.
Best practices
Cache responses when possible
Cache responses when possible
Meeting data and transcripts rarely change. Cache responses on your side to reduce the number of API calls. Use the
ETag header for conditional requests.Use webhooks instead of polling
Use webhooks instead of polling
Instead of polling for new meetings or transcripts, set up webhooks to receive real-time notifications when data is ready.
Batch your requests
Batch your requests
When fetching multiple resources, use list endpoints with appropriate
limit values instead of making individual requests for each item.Monitor your usage
Monitor your usage
Check the
X-RateLimit-Remaining header proactively and throttle your requests before hitting the limit.Endpoint-specific limits
Some resource-intensive endpoints have additional per-endpoint limits regardless of your plan:| Endpoint | Limit | Notes |
|---|---|---|
POST /transcripts/search | 30 requests/min | Full-text search is computationally expensive |
POST /summaries/:id/regenerate | 10 requests/min | AI regeneration consumes significant resources |
POST /oauth/token | 20 requests/min | Prevents brute-force token attempts |