API Reference
Rate Limiting
API rate limits and how to handle them gracefully.
Limits
The Ticket0 API is rate-limited to 1,000 requests per minute per API key. Limits are applied per key, not per IP.
Rate limit headers
Every API response includes headers indicating your current usage:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
When you exceed the limit
If you exceed 1,000 requests per minute, the API returns:
HTTP 429 Too Many Requests{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 2025-01-15T10:31:00Z",
"retryAfter": "2025-01-15T10:31:00Z"
}
}Pagination
Use cursor-based pagination to retrieve large result sets efficiently rather than making many small requests.
Responses that support pagination include a nextCursor field. Pass it as the cursor query parameter in your next request:
# First page
curl "https://app.ticket0.ai/api/v1/tickets?limit=100" \
-H "Authorization: Bearer t0_your_api_key"
# Next page (using cursor from previous response)
curl "https://app.ticket0.ai/api/v1/tickets?limit=100&cursor=cur_01abc..." \
-H "Authorization: Bearer t0_your_api_key"When nextCursor is null, you've reached the last page.
Best practices
- Use the maximum
limit(100) when fetching large datasets to reduce request count - Implement exponential backoff when you receive a 429 response
- Cache responses that don't change frequently (e.g. tag lists)
- Use webhooks for real-time events instead of polling the API