Geocoding Services Comparison: Which One is the Best?

Geocoding is a service to search addresses and locations
Geocoding is a service to search addresses and locations

There are many articles about how to choose the best geocoding service. But when it comes to the comparison table, it seems that essential criteria are missing. For example, we all want to know the price, but it’s barely enough for a decision. So this article would like to cover essential criteria and try to find the answers for them. In this way, you can estimate your expenses and time when you choose the one.

Which criteria are essential when searching addresses or coordinates?

What distinguishes a good service from a bad one? First of all, the commitment to meet expectations is key. Choosing a good service provider is not enough to ensure success, however. Every business has their own unique needs, and while one service may be perfect for one client, it may not work at all for another. As the client or business owner, you should do some research on your own to make sure that the service provider you choose is Found for you.

Here are parameters that are good to check before you make a decision:

  • Quality and coverage
  • Pricing
  • Terms and restrictions
  • Features
  • Integration and maintenance

Geocoding services to compare

Based on our own research and recommendations from others, we have come up with a list of geocoding services that have different data sources, price categories, and terms:

  • Google Maps
  • Mapbox
  • OpenCage
  • Positionstack
  • Geoapify
Top 5 geocoding service providers
Top geocoding services to compare: Google Maps, OpenCage, Mapbox, Positionstack, Geoapify

We tested the platforms and compared them to each other, observing their features and drawbacks.

Please note that all tests and results belong to September 2021; the conditions and test results may change with time running. However, you can re-execute the test or make your one at any time.

Quality: processing abbreviations, misspells, missing or redundant data

Let’s check which geocoding service works better based on the expected results. Let’s define a level of completeness as "what we expect it to return when we search a specific address", what would be the result for a misspelled address, and check if it can find an address which does not exists.

We picked up a random address and generated 10 address strings from it. Here are the results we received:

AddressNoteGoogle MapsMapboxOpenCagePositionstackGeoapify
Körtingsdorfer Weg 4B, 30455 HannoverComplete addressFoundFoundFoundFoundFound
Koertingsdorfer Weg 4B, 30455 HannoverNo special characters versionFoundFoundFoundCity levelFound
Körtingsdorfer Weg 4B, HannoverNo postcodeFoundFoundFoundFoundFound
Körtingsdorfer Weg 4B, 30458 HannoverWrong postcodeFoundFoundFoundFoundFound
Körtingsdorfer W. 4B, 30455 HannoverShortened street nameStreet levelWrong locationFoundCity levelFound
Körtingdurfer Weg 4B, 30455 HannoverWrong street name spellingPostcode levelNo ResultsPostcode levelCity levelFound
Körtingsdorfer Weg 48, 30455 HannoverNon-existing house numberWrong locationWrong locationStreet levelCity levelStreet level
Körtingsdorfer Weg 4B, 30455 HonoverMispelled cityFoundFoundNo ResultsFoundFound
Körtingsdorfer Weg 4B, Linden-Mitte, Linden-Limmer, 30455 Hanover, Region Hannover, Lower Saxony, GermanyAddress with redundant dataFoundFoundFoundCity levelFound
Körtingsdorfer Weg 4B, 30455 Hanover, Lower Saxony, GermanyAddress with redundant dataFoundFoundFoundFoundFound

Coverage: metropolitan areas and villages, different countries

When choosing a geocoding service, it’s important to be aware of the coverage that an API can offer.

Here is not worse to mention that coverage depends on data sources that a Geocoding service provider uses. So when the provider owns and maintains the data source by himself, some areas might be better covered now, but new sites are updated slower than crowd-based open data sources. So you need to check not only addresses you are currently interested in but also addresses you might be interested in in the future.

We've studied geocoding of addresses in big cities and small villages in European countries and America. First of all, we've focused on addresses that are present in one data source and missing in some others. Here are our results:

AddressNoteGoogle MapsMapboxOpenCagePositionstackGeoapify
Eiselenweg 19, 12555 BerlinHouse in Berlin, GermanyFoundFoundFoundFoundFound
Alexander-Giertz-Straße 12, AltlandsbergBerlin suburb, GermanyStreet levelFoundFoundFoundFound
15 Av. Garibaldi, 69120 Vaulx-en-Velin, FranceLyon suburb, FranceFoundFoundFoundFoundFound
44 Avenue Jean Jaurès, 83460 Les ArcsMedical cabinet in Les Arcs ski station, FranceNeighborhood levelFoundStreet levelFoundFound
Green 1, 461, Rue Jean-Jacques Rousseau, Saint-Genis-Pouilly, 01630, FranceVillage in FranceNo resultsFoundFoundFoundFound
Via G.P. Della Mirandola 7, 50132 FirenzeHouse in Florence, ItalyStreet levelNo resultsPostcode levelFoundFound
Via Eugenio Azimonti, 60, 85050 Villa D'agri PZ, ItalyVillage in ItalyFoundFoundStreet levelCity levelFound
992, Mill Street, Henderson, KY 42420, United StatesSmall city in USAFoundFoundStreet levelCounty levelFound
7 Saddlewood Ct, Jersey City, NJ 07302, USAHouse in Jersey CityFoundFoundFoundFoundFound
702 W Gray St, Houston, TX 77019, United StatesConvenience store in Houston, USAFoundFoundFoundFoundFound
R. Barão da Torre, 308 - Ipanema, Rio de Janeiro - RJ, 22411-000, BrazilCollege in Rio de Janeiro, BrasilFoundFoundCity levelCity levelFound
Avenida Aricanduva, 6070 - Vila California, São PauloMotel in San Paulo, BrasilFoundDistrict levelCounty levelStreet levelStreet level

By reviewing the results, we see that even the best geocoding services have areas that are not well covered; in general, cities are covered better than villages; some countries are covered better than others. All the geocoding services provide a playground where you can try the API without registration. For example, Geoapify Geocoding API you can try from the documentation page.

Pricing: current expences and forecast

Pricing is always a point of contention for startups, small companies, and large corporations. Many providers offer a free tier, so we have checked how many geocoding requests you can do for Free. In addition, we calculated how much you would pay for different request numbers:

Requests monthlyGoogle MapsMapboxOpenCagePositionstackGeoapify
Free tier70,000 autocomplete requests, 40,000 geocoding requests100,000 for temporary geocoding75,00025,00090,000
50,000$0 for autocomplete, $50 for geocoding0 for temporary, $250 for permanent geocoding$0$9.99$0
100,000$84,9 for autocomplete, $300 for geocoding0 for temporary, $500 for permanent geocoding$50$9,99$59
500,000$976,1 for autocomplete, $2,300 for geocoding$300 for temporary, $,2500 for permanent geocoding$100$49,99$109
1,000,000contact sales$600 for temporary, $4,500 for permanent geocoding$500$49,99$179
10,000,000contact salescontact sales$1000contact salesfrom $860 / contact sales
100,000,000contact salescontact salescontact salescontact salesfrom $860 / contact sales

Note: Mapbox offers temporary and permanent geocoding. The Temporary geocoding results can't be cashed or stored. You need to use the Permanent Geocoding API to store results.

Terms and restrictions: how not to violate license

Always read the terms and conditions before you agree to use any third party library or service that is not a part of your company. Here are a few pitfalls you might run into when using a geocoder service with stricter rules:

  • You can't store addresses you've found
  • You can't use services from the other company that compete with the services of the Geocoding provider
  • You can cancel a subscription with a 3/6/12 month notice period only
  • You can't build certain apps that require geocoding results as an intermediate step

Here also becomes a question about data ownership. If the geocoding service is based on proprietary data, it will be more restrictive than a technology based on open data:

RestrictionNoteGoogle MapsMapboxOpenCagePositionstackGeoapify
Cache dataIs it allowed to cache the data?Only latitude and longitude for up to 30 daysOnly on an end-user device for up to 30 daysAllowedAllowedAllowed
Store dataIs it allowed to store the data?Not allowedPermanent Geocoding API results onlyAllowedAllowedAllowed
Redistribute dataIs it allowed to redistribute addresses?Not allowedNot allowedAllowedNot allowedAllowed
Third-party mapsIs it allowed to combine geocoding with third-party maps?Not allowedNot allowedAllowedAllowedAllowed

Features: make your results more accurate

Additional features can make geocoding more accurate and precise. For example, they can significantly improve results and solve more complicated address search tasks. Here are examples of extra functionality offered by geocoding service providers:

FeatureNoteGoogle MapsMapboxOpenCagePositionstackGeoapify
AutocompleteCan be used for address autocomplete forms?YesYesNoNoYes
Structured addressCan accept known address components?Only as a filterNoNoNoYes
BBox filterCan filter by bounding box?YesYesYesNoYes
Country filterCan filter by country?YesYesYesYesYes
ProximityCan favor results close to the location?YesYesYesNoYes
LanguageHas multilanguage support?YesYesYesYesYes

Integration and flexibility: don't make it painful

"How easy to add?" and "How easy to switch?" - this is two main questions that you should answer before adding a 3d party functionality to your application. Of course, don't forget that time by time, the code needs to be maintained and libraries updated as well. In terms of product development, it's not a question about which service provider you use but rather how you integrate the solution - via SDK or via API.

Some providers, like Google Maps and Mapbox, offer SDKs for different platforms that make the integration more straightforward and faster.

But don't fall for the bait! The integration with an SDK makes it very difficult and sometimes even impossible without a complete code rewrite.

As all the listed geocoding service providers provide an API that supports simple HTTP requests, we recommend you use API as much as possible and avoid using libraries with proprietary licenses.

Conclusion

We hope our review has been useful for you and helped you find the service that suits your needs.

Of course, as a Location Platform provider, we would be happy if you choose Geoapify for address and location search. Nevertheless, we tried to be honest and impartial by writing this review.

You can try Geoapify Geocoding API without registration with our Playground and start using it for free, even in commercial products.