What is Geocoding?

Geocoding is the process of converting a human-readable address into a pair of latitude and longitude coordinates, which are necessary to "plot" the address on the map. Reverse Geocoding is the opposite, i.e. converting a pair of lat/long coordinates into an address.

About This Geocoding API Service

This geocoding API is provided to the public, for free, as a community service by MAPS, a web-based GIS & map making tool that uses the Google Maps API.

In listening to our customers, we recognized that not everybody requires commercial-grade geocoding accuracy and that for many it is cost prohibitive. For example, the Google Maps API currently charges $7 per 1000 geocode lookups. If you have millions of locations to geocode, that is clearly problematic (we don't all have direct connections to the Federal Reserve's limitless firehose of freshly-printed depreciating Dollars!)

So, we searched for a way to allow anyone to perform geocode lookups, for free! We found open-source software from OpenStreetMap (OSM) and Nominatim. These packages can be used by anyone to create a geocoding API, however setting them up requires a significant amount of experience (Linux server admin), time (3+ days just to import OSM data), and money (needs powerful servers!).

But don't worry... we have endured this stress and expense on your behalf, so that you can get on with your task at hand: geocoding your data and creating great maps!

Please note that, unfortunately, this geocoder is entirely disconnected and separately-hosted from MAPS for reasons owing to licensing constraints. The lack of direct interoperability with MAPS is, therefore, by design. However, you are free to use the results from this geocoder as you wish, whether to import to MAPS or elsewhere.

How To Geocode / Search?

You can perform geocode lookups by using the following API endpoint URLs:

Forward Geocode (convert an address to coordinates):

https://geocode.maps.co/search?q={address}

Reverse Geocode (convert coordinates to an address / place):

https://geocode.maps.co/reverse?lat={latitude}&lon={longitude}

NOTE: Our API endpoints return JSON data by default. To return data in a different format, you can append "&format={format}", where {format} is one of the following: xml, json, jsonv2, geojson, geocodejson. Please remember to substitute {address}, {latitude} and {longitude} in the URLs above with your URL-endoded values.

API Limitations

There are currently no geocoding limitations in place. As service usage increases we will try to scale resources to prevent limitations. However, this may not be possible, and we may need to institute certain limits in the event of very heavy usage or abuse of the system.

Note About Results Accuracy

As mentioned under the "About" section, this service leverages OpenStreetMap (OSM) and Nominatim to perform geocode lookups. The source database is the "full planet" PBF file, taken directly from OSM.

This is a different geocoder system from that used on MAPS, which uses the Google MAPS API for geocoding. Therefore, you can expect that the results from this geocoder will not exactly match those on MAPS.

Please be advised that, although OSM is a very large dataset, it has been noted by some users that the geocoded results from OSM & Nominatim are less accurate than those available via commercial systems, e.g. Google Maps, Mapbox, Esri, etc.

Legal / Disclaimers

THIS SERVICE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND.

NO REPRESENTATION IS MADE WITH RESPECT TO THE CONTINUED AVAILABILITY OF THIS SERVICE OR THE ACCURACY OF RESULTS RETURNED BY THIS SERVICE.

YOU ARE FREE TO USE THE RESULTS GENERATED BY THIS GEOCODING SERVICE AS DESIRED ON CONDITION THAT SUCH USAGE COMPLIES WITH THE TERMS OF OPENSTREETMAP ("OSM") AND NOMINATIM.

USE AT YOUR OWN RISK!