How accurate is IP geolocation, really?
Every IP geolocation API returns a latitude and longitude. Almost none of them tell you how much to trust it — and the honest answer is that it depends enormously on the address, in ways a pair of coordinates cannot express.
Here is what the accuracy actually looks like, why it varies so much, and the one field you should be reading instead of the coordinates.
Country accuracy is a solved problem
At the country level, IP geolocation is reliable. Address blocks are allocated by the five Regional Internet Registries — APNIC, ARIN, RIPE NCC, LACNIC and AFRINIC — and those allocations are public, stable, and rarely cross borders. Commercial databases report country accuracy above 99%, and that figure holds up in practice.
If your use case is "which country is this request from" — tax rules, content licensing, currency selection, regulatory compliance — IP geolocation is a genuinely good tool. You can build on it.
City accuracy is a different question entirely
Below the country level, the ground shifts. The database is not measuring where a device is; it is recording where an ISP says a block is used, which is a much weaker claim.
| Situation | Typical outcome |
|---|---|
| Dense urban, fixed-line broadband | Often correct city, sometimes correct suburb |
| Regional or rural fixed-line | Frequently the nearest large city instead |
| Mobile networks | The carrier's gateway, which can be a different state |
| Corporate VPN | The office, or the VPN's exit — not the user |
| CDN or anycast traffic | Effectively meaningless |
None of these is a bug. They are what the underlying data can support. An ISP that routes an entire regional customer base through one metropolitan gateway has, as far as the routing table is concerned, put all of those customers in that city.
The field that tells you the truth
This is why every lookup here returns accuracyRadius, in kilometres, alongside
the coordinates:
{
"location": {
"latitude": -33.8688,
"longitude": 151.2093,
"accuracyRadius": 20,
"timezone": "Australia/Sydney"
}
}
The coordinates are the centre of a circle. accuracyRadius is its size, and it
is the difference between a usable answer and a misleading one. A radius of 5 km
in central Sydney is a genuinely useful signal. A radius of 500 km means the
database is telling you, quite openly, that it knows the country and little
else.
Read the radius before you use the coordinates. A surprising amount of software plots the latitude and longitude on a map as a pin, which renders a 500 km uncertainty as a confident dot on somebody's suburb.
What this means for the things people actually build
Fraud and risk scoring. Useful as one signal among several, at country level. Treating a city mismatch as evidence of fraud will generate false positives from anyone on a mobile network or a corporate VPN — which is a large share of legitimate users.
Content localisation. Country-level, yes. Defaulting language and currency from the country is standard and works. Do not silently lock someone out of changing it; travellers and VPN users exist, and an unchangeable guess is worse than no guess.
Compliance and licensing. Country-level geolocation is what the rules are generally written against, and it is defensible. Be aware that VPN and proxy traffic will pass through it, which is why detecting hosting and datacenter ranges matters as much as the location itself.
Anything requiring a street address. No. IP geolocation does not do this, and any product claiming otherwise is either using a different data source or overstating what it has.
Why "wrong city" is usually not an error
The most common support question any geolocation provider gets is some version of your API says I'm in the wrong city. Almost always, the API is faithfully reporting what the ISP has published about that address block.
Your provider announces routes for large ranges at a time. The location attached to a range is a property of the range, not of you. Move house within the same ISP region and your apparent location very likely will not change; connect through a mobile network and it may jump hundreds of kilometres.
The practical rule
Use IP geolocation for country, treat city as a hint, and never treat
coordinates as a position without reading accuracyRadius first.
That is a narrower claim than most of this industry makes, and it is the one that survives contact with real traffic.
You can see all of this on any address, including the accuracy radius, with the IP lookup on the homepage or through the API — 45 requests a minute with no key at all. If you are working with ranges rather than single addresses, the free tools cover CIDR conversion, subnetting and bulk lookups.