Rate Limits
Requests are counted per API key over a rolling 24-hour window. Unauthenticated requests (development only) are limited per IP.
Tiers
| Tier | Requests / 24h | Typical use |
|---|---|---|
| Free | 100 | Evaluation and prototypes |
| Basic | 5,000 | Production apps getting started |
| Pro | 20,000 | Growing applications |
| Enterprise | 100,000+ | Banks and large platforms |
Headers
Every response includes your current quota state:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Max requests allowed in the window |
X-RateLimit-Remaining | Requests left in the window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Exceeding the limit
When you exceed your quota the API returns 429 Too Many Requests:
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "rate limit exceeded for this key"
}
}
Best practices
- Cache aggressively. Coordinates and hex codes are stable — a hex code for a coordinate never changes. Most lookups can be cached client-side for days.
- Batch instead of looping. Use the bulk endpoints (e.g.
POST /v2/hexcode/bulk) for large sets instead of one request per item. - Back off on 429s. Respect the reset time in
X-RateLimit-Resetbefore retrying. - Monitor your usage.
GET /v2/usageshows consumption against your plan.
Additional throttles
Some endpoints carry per-route throttles (e.g. routing and navigation are throttled per IP to protect shared infrastructure). These are documented on the individual endpoints in the API Reference.