Google Maps Geocoding API alternative

Geocode on open data. Keep what you geocode.

Google’s Geocoding API charges per request, limits how long you may keep coordinates, and can’t be used with a non-Google map. OpenGeocoding is a hosted API on open data with flat monthly plans, results you can store, and any map you like.

50,000 free requests a month. No credit card. Commercial use allowed.

Google’s Geocoding API and OpenGeocoding

TopicGoogle Geocoding APIOpenGeocoding API
Free usage10,000 requests a month. A billing account is required.50,000 requests a month. No credit card.
Paid usagePer request: $5.00 per 1,000 up to 100,000 a month, with lower rates at higher volume.Flat monthly plans from $29. No overage charges: calls stop at the allowance.
Storing resultsCoordinates may be cached for up to 30 days. Longer caching is allowed only per end user, for that user's own features, and not instead of calling the API again. Place IDs can be kept indefinitely.No contractual limit on storing or reusing results, including permanently and across your users. The open data licences still apply, including attribution and share-alike.
MapsResults may be used without a map, but not with a non-Google map.No map requirement. Use MapLibre, Leaflet, any other map or none.
Bulk geocodingResults fall under the caching rules above. The terms forbid bulk-downloading geocodes for use outside Google’s services.Allowed on every plan, up to your per-second limit and monthly credits.
AutocompletePart of the Places API, billed separately.A dedicated endpoint that spends no credits; retrieving the chosen suggestion costs one.
DataGoogle’s proprietary map data, including detailed business listings.OpenStreetMap, Overture Maps, OpenAddresses and GeoNames, merged into one index.

What a month of geocoding costs

Forward or reverse geocoding requests at each of our plan allowances, priced at Google’s pay-as-you-go list rates.

Requests / monthGoogle Geocoding APIOpenGeocoding
50,000$200$0 Free
300,000$1,250$29 Starter
1,500,000$4,300$99 Growth

Google: USD list prices for the Essentials “Geocoding” SKU, before taxes, negotiated discounts and Maps Platform credits; each volume band is priced at its own rate. Autocomplete and other Places requests are billed separately. OpenGeocoding: monthly plan price, which assumes you use the whole allowance.

When Google fits better

Pick the right tool.

  • You need business details such as opening hours, phone numbers, ratings or photos. That is Google’s Places data, and open data doesn’t match it.
  • Your app already shows a Google Map, Street View or Google directions.
  • Your addresses are in places where open data is thin. Check our house-number coverage by country first: it is uneven.

Accuracy

Test it on your addresses.

Google is not part of our benchmark, so we make no accuracy claim against it. On our test corpus of 11,671 queries, checked against official registries and public reference sources, OpenGeocoding 0.18.0 passed 90.6%. That is not a global accuracy estimate.

Send a representative sample of your own addresses to both services before you switch. The free plan is enough for that.

Benchmark methodology and limitations →

Migrating

Swap the request, map the fields.

Google takes GET query strings and returns a list of results; OpenGeocoding takes a JSON POST with an API key and returns the best match.

Search, before

Google
curl -G 'https://maps.googleapis.com/maps/api/geocode/json' \
  --data-urlencode 'address=10 Rue de Rivoli, Paris' \
  -d key=YOUR_GOOGLE_KEY

Search, after

OpenGeocoding
curl 'https://api.opengeocoding.com/v1/search' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"addressString": "10 Rue de Rivoli, Paris"}'

Reverse, before

Google
curl -G 'https://maps.googleapis.com/maps/api/geocode/json' \
  -d latlng=55.676,12.568 \
  -d key=YOUR_GOOGLE_KEY

Reverse, after

OpenGeocoding
curl 'https://api.opengeocoding.com/v1/reverse' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"lat": 55.676, "lon": 12.568}'
Google search responseOpenGeocoding search response
results[0].geometry.location.lat / .lnggeoCoordinates.lat / .lon
results[0].formatted_addressdisplayName
results[0].address_componentsaddressDetails (road, houseNumber, postcode, city, countryCode…)
results[0].partial_match: truegoodMatch: false or omitted
status: "ZERO_RESULTS"an empty object {}

Google facts checked from the Google Maps Platform price list, the Maps Service Specific Terms (Geocoding API, section 6) and the Google Maps Platform Terms of Service (section 3.2.3). Google may change them at any time, and enterprise agreements can differ. Results derived from OpenGeocoding stay under their data licences, which require attribution. Google Maps is a trademark of Google LLC; OpenGeocoding is not affiliated with Google.

Try it on your own addresses.

Get a key in a minute and compare results side by side before you move any traffic.