What we shipped this month: geocoding, IP, time zone and more
A roundup of recent work across the API: new compatibility hosts, faster time zone and elevation lookups, dashboard features, and clearer quota visibility.
Rate limits have a reputation for being confusing, full of exceptions and fine print that only become clear after something breaks. Ours are simpler than that, and worth laying out plainly in one place.
Every address gets 2,500 free requests a day with no key at all. That allowance is not per address individually, it is shared across a network: all IPv4 addresses in the same /24 and all IPv6 addresses in the same /48 draw from one pool together. That matters if you are behind a shared office connection or a large network address translation setup, since your free allowance is shared with everyone else on that same network segment, whether or not they are using a key.
Every key also gets its own free daily allowance of 2,500 requests, separate from whatever the network already provides. A key's allowance is not diminished by other traffic on the same network, and a network's allowance is not diminished by traffic that already used up a key's separate quota. The two allowances sit side by side rather than competing with each other.
Past both allowances on a given day, a request either draws on prepaid credit at €0.0001 a request or is covered by an Unlimited package at €50 a month, whichever the account has set up. There is no throttling that silently slows requests down and no surprise block with no explanation. Every response carries quota headers, X-Quota-Limit, X-Quota-Used, X-Quota-Free-Remaining, X-Quota-Network-Used, X-Credits-Remaining, X-Key-IPs-Used, X-Key-IPs-Limit and X-Quota-Reset, so exactly where a request stands is visible before it ever fails.
A bulk or batch call follows the same rules at the item level, not the call level. A hundred addresses sent in one call counts as a hundred requests against whatever allowance applies, exactly the same as if they had been sent as a hundred separate calls.
All of this applies identically across every endpoint and every one of the seventeen compatibility hosts. A request shaped for OpenCage or ipstack is rate limited by the exact same rules as a request to /v1/forward or /v1/ip directly, with no separate, stricter limit hiding behind a familiar-looking response shape.
Full details, including how the daily reset works and what each header means, are documented at /docs/rate-limits/. If a rate limit question ever comes up in your integration, the answer is almost always visible directly in the headers of the response that triggered it.