Migrating from Google Maps



This page lays out some of the technical differences between our service and Google Maps's geocoding API, and hopefully helps make the transition to using our service as easy as possible.

Before we dive in ...

It is important to note that you can glaldy use our geocoding API and Google's.

Many customers use both, first trying our service, and then only using Google if they are unhappy with our response. In this way they can typically cut their Google spend by 90+ percent. Read our guide.

Technical differences in API request and response

Please take a look at our API documentation for the full details (don't worry it is a single page), but here we attempt to layout some of the key conceptual differences between the two services.

Query Parameters

Both services require an API key, supplied in the key= parameter.
You will find your key in your account dashboard.

Google requires an address= parameter for forward geocoding and lat= and lon= for reverse geocoding.
We instead require q= for both forward and reverse geocoding.

See the request format documentation where you can also learn about the various optional parameters we support.

Output Formats

While Google only supports JSON and XML, we support JSON, XML, and GeoJSON.

Structured Queries

Google supports structured queries. We do not.

This is intentional, our goal is to keep the service as simple as possible for developers to comprehend and get productive with our service. Please follow the steps laid out in our guide to query formatting.


By default we provide lot of other relevant information about the location of each result, we call these annotations.

Google does not.

Address Components

Both services return different components of the location hierarchy, Google does this in a field called address_components, we do it in the components portion of the result.

The comprehensiveness and values may differ between the two services.

Learn more about our components, and how we use them to create a well formatted local address string.

Location Type

Google returns the type of match in a field called location_type.

We provide a confidence score that tells you the size of the result. Separately we also provide a _type and _category value in the components portion of the result.

Other major differences

Built with Open Data

Because we use open data you're able to do much more with the geocoding results.

You can store the results as long as you like (even if you stop working with us). You can display our results on any map you like, while Google results can only be displayed on a Google map.

You can use the results publicly or behind a firewall.

Finally, when you come across a data problem in the data you can fix it. With proprietary services like Google all you can do is hope they eventually fix it.

Read our detailed look at the benefits of open data.


You can see our prices on our pricing page, and here's detailed comparison of Google maps geocoding pricing versus OpenCage, but beyond the fact that we are a much more affordable option, you should also note that our entire pricing model is different.

We win by being a stable, long-term partners for our clients, not by running a meter when they suddenly need a bit more.

One more thing ...

many customers tell us they like our approach to privacy, and that they aren't excited about sharing even more data with Google.

We agree!

Start your free trial

2,500 geocoding API requests per day.

No credit card required.