Reverse geocoding APIs compared: AtlasFetch, Google, Mapbox, OpenCage and Geoapify

“Reverse geocoding” covers two different jobs: turning a coordinate into a street address, and turning it into the administrative areas that contain it — country, state or province, municipality. The providers below are good at different ones. This page is written by AtlasFetch, so it says plainly where the others are the better choice.

Every provider fact checked against its own documentation and pricing on 17 September 2026. Sources at the end. Prices change — verify before you commit.

The short answer

  • You need a street address or postcode from a coordinate: use Google, Mapbox, OpenCage or Geoapify. AtlasFetch does not do this.
  • You need to store results long term and want that written into the terms: OpenCage allows permanent storage on every plan, including after you leave; Mapbox needs its paid permanent mode.
  • You are already on Google Maps or Mapbox for maps and search: staying there is usually simpler than adding a provider.
  • You need the country, region and municipality with codes, plus a check against your own polygons, in one call: that is what AtlasFetch is built for.

At a glance

Street addressRegion as ISO 3166-2Your own polygonsFree tierStoring results
AtlasFetchNo — stops at municipalityYes (ZA-WC)Yes, in the same lookup1,000 lookups/monthAllowed; ODbL attribution and share-alike apply if you publish or redistribute
Google GeocodingYesNot guaranteed — short_name “will closely match”Not in the Geocoding API10,000 requests/monthRestricted; place IDs exempt
Mapbox GeocodingYesYes (region_code_full)Separately, via the Tilequery API100,000/month (temporary)Temporary results may not be cached; permanent mode is paid
OpenCageYesYes (ISO_3166-2, a list)No2,500/day, testing onlyPermanent, on every plan
GeoapifyYesNot documented; returns state_codeNot in reverse geocoding3,000 credits/dayNot stated on its pricing page

Pricing beyond the free tier

ProviderEntry paid pricingAt higher volume
AtlasFetch£9/month for 50,000 lookups£29/month for 250,000 lookups
Google Geocoding$5.00 per 1,000 (10,001-100,000/month)Down to $0.38 per 1,000 above 5 million
Mapbox, temporary$0.75 per 1,000 (100,001-500,000)$0.45 per 1,000 above 1 million
Mapbox, permanent$5.00 per 1,000, no free tier$4.00 per 1,000 above 500,000
OpenCage€45/month for 10,000/day€900/month for 300,000/day; no overage charges
Geoapify$59/month for 10,000 credits/day$609/month for 250,000 credits/day

Monthly and daily allowances are not directly comparable: 10,000 a day is roughly 300,000 a month if you use it evenly. AtlasFetch plan caps are still provisional and may change.

Provider by provider

Google Geocoding API

The most complete street-address coverage of the group, with address components down to street number. Administrative areas come back as administrative_area_level_1 to _7; Google says level-1 short names “will closely match ISO 3166-2 subdivisions” but that this “is not guaranteed”. Caching results is restricted — place IDs are the exception and may be stored — and content shown outside a Google map needs Google’s attribution. You cannot supply your own polygons. 10,000 free requests a month, then $5.00 per 1,000 with volume discounts; 25 queries per second by default.

Mapbox Geocoding API

Returns a hierarchy from address up to country, with regions carrying ISO 3166-2 codes (region_code_full, e.g. US-UT). The catch is storage: by default results are “temporary” and may not be cached; storing them needs permanent geocoding, which has no free tier and costs $5.00 per 1,000. For your own polygons, Mapbox’s separate Tilequery API does point-in-polygon against tilesets you upload — 100,000 free requests a month, up to 50 results, and a point lying exactly on a polygon edge is not returned. That is two APIs and a tileset pipeline rather than one call.

OpenCage

Aggregates OpenStreetMap with national and regional datasets and returns address components plus both ISO 3166-1 and ISO 3166-2 codes (as a list, since some places have several). Its storage terms are the most generous here: you may store results permanently, even after you stop being a customer. Plans are daily caps with no overage billing. The free trial (2,500 requests a day, 1 per second) is for testing only. It returns bounding boxes, not polygons, and has no custom-polygon matching.

Geoapify

OpenStreetMap-based reverse geocoding with address fields, country_code (ISO 3166-1) and a state_codethat it notes “might be missing for some countries”; ISO 3166-2 is not documented. Its separate Boundaries API has a part-ofendpoint that returns the boundaries a location belongs to, with optional polygon geometry — the closest thing here to AtlasFetch’s administrative lookup. The free plan (3,000 credits a day, 5 requests a second) allows limited commercial use with attribution.

AtlasFetch

One call returns the country (ISO 3166-1), region (ISO 3166-2) and municipality containing a coordinate, and matches it against polygons you upload, with your own properties returned on each match. Every overlapping polygon matches, and a point exactly on an edge counts as inside. Coordinates you look up are not stored. See the municipality guide and the custom geofences guide.

Where AtlasFetch falls short

  • No street addresses, postcodes or place search. If you need “12 Long Street”, use one of the others.
  • “Municipal” is not a consistent unit. It is the finest level available: a city in Los Angeles, a county in rural Kansas.
  • Many municipal codes are generated (B-ZA-1) where OpenStreetMap has no ISO code, and those are not yet stable across a full data reload. Country and region codes are.
  • Boundary data is OpenStreetMap only, with ODbL attribution and share-alike obligations.
  • One coordinate per request. There is no batch endpoint.
  • Server-side only. Browser calls are not allowed from other websites (no CORS), so call it from your backend.
  • Your own polygons must be single Polygons; a MultiPolygon is added part by part.
  • It is a young service, and plan caps are still provisional.
Not sure? The playground answers with no signup, and the demo key gives 1,000 shared lookups a month to test with your own coordinates.

Sources (checked 17 September 2026)

Next