The API enforces per-client rate limits to ensure fair access for all subscribers.
Limits
| Window | Limit |
|---|---|
| Per minute | 100 requests |
| Per day | 10,000 requests |
Limits are applied per API key using a sliding window algorithm.
Rate limit headers
Every response includes headers for monitoring current usage:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait before retrying (only on 429 responses) |
Handling rate limits
When the limit is exceeded, the API returns 429 Too Many Requests:
{ "error": "Rate limit exceeded" }Recommended strategy
- Cache responses locally — datasets are refreshed on a monthly cadence, so there is no benefit to re-fetching the same query within that window. A local cache significantly reduces the total request count.
- Monitor
X-RateLimit-Remainingproactively to avoid exceeding limits - On
429responses, read theRetry-Afterheader and wait before retrying - Implement exponential backoff for repeated failures
H2GC data is updated on a monthly cadence. Responses can be safely cached for the remainder of the month without risk of missing updates.
Increasing limits
Organisations that require higher limits should contact the H2GC team to discuss available options.