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

TierRequests per HourRequests per DayMax Data Points per Request
Pro1,00020,00010,000
Free1001,00010,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
HeaderDescription
X-RateLimit-Remaining-HourlyRequests remaining in the current hourly window
X-RateLimit-Remaining-DailyRequests remaining in the current daily window
X-RateLimit-Reset-HourlyISO 8601 timestamp when the hourly window resets
X-RateLimit-Reset-DailyISO 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

  1. Cache responses locally. On-chain data updates every 10 minutes, so there is no need to poll more frequently than that.
  2. Use the days parameter to fetch only the data you need instead of requesting the full history each time.
  3. Use startDate/endDate for precise date range queries to minimize payload size.
  4. Use the fields parameter to request only the specific fields you need, reducing response size.
  5. Monitor your headers. Check X-RateLimit-Remaining-Hourly and X-RateLimit-Remaining-Daily to avoid hitting limits unexpectedly.
  6. Batch your requests by fetching multiple metrics in sequence with appropriate delays.
Was this page helpful?