Rate Limits
API rate limits and best practices for the ChartInspect API.
The ChartInspect API enforces rate limits to ensure fair usage and platform stability. Limits are tracked per user ID (tied to your account, not per API key).
#Current Limits
| Tier | Requests per Hour | Requests per Day | Max Data Points per Request |
|---|---|---|---|
| Pro | 1,000 | 20,000 | 10,000 |
| Free | 100 | 1,000 | 10,000 |
#Rate Limit Headers
Each response includes rate limit information in the headers:
X-RateLimit-Remaining-Hourly: 982
X-RateLimit-Remaining-Daily: 19450
X-RateLimit-Reset-Hourly: 2026-03-16T13:00:00.000Z
X-RateLimit-Reset-Daily: 2026-03-17T00:00:00.000Z| Header | Description |
|---|---|
X-RateLimit-Remaining-Hourly | Requests remaining in the current hourly window |
X-RateLimit-Remaining-Daily | Requests remaining in the current daily window |
X-RateLimit-Reset-Hourly | ISO 8601 timestamp when the hourly window resets |
X-RateLimit-Reset-Daily | ISO 8601 timestamp when the daily window resets |
#When Rate Limited
If you exceed either the hourly or daily limit, you will receive a 429 Too Many Requests response:
json
{
"success": false,
"error": "Rate limit exceeded. Please retry after the reset window."
}Check the X-RateLimit-Reset-Hourly or X-RateLimit-Reset-Daily header to know when you can resume making requests.
#Best Practices
- Cache responses locally. On-chain data updates every 10 minutes, so there is no need to poll more frequently than that.
- Use the
daysparameter to fetch only the data you need instead of requesting the full history each time. - Use
startDate/endDatefor precise date range queries to minimize payload size. - Use the
fieldsparameter to request only the specific fields you need, reducing response size. - Monitor your headers. Check
X-RateLimit-Remaining-HourlyandX-RateLimit-Remaining-Dailyto avoid hitting limits unexpectedly. - Batch your requests by fetching multiple metrics in sequence with appropriate delays.
Was this page helpful?