I'd like to provide a functionality where the user can search for an address/place on a Leaflet map, and is able to add the resulting marker to the map (which later can be saved on server and downloaded in KML/GPX/GeoJSON format).

The underlying basemap can be anything, it's not guaranteed to be MapBox or Google etc. map.

Now as far as I understand, most geocoding providers prohibit this usage. Google is famous for not allowing it, but even MapBox only allows this on it's enterprise plan, which costs $$$.

Are there any providers which allow you to store the given result from a geocoding request? I believe for places present in OSM, Nominatim and Geonames are a good solutions, but you cannot search for addresses in them.

I'd be especially interested in HERE maps, as they have the highest quality geocoding engine out there (based on this table), but their Terms and Conditions is really not clear about it. It says that layering of their data is not allowed, but it is not clear whether this usage counts as layering.

I'm not looking for a free solutions, but something what is acceptable for a starting project, like Bing, HERE, etc. providing a free usage tier.

6 Answers 6


Ah, this question. First, let me say that I work for an address validation company, SmartyStreets, but I will try to be objective.

US Geocode data generally comes from two basic sources, FREE and EXPENSIVE. Let's go there for a little bit.

Free geocode data comes from the US Census Bureau. Some will tell you that it comes from USGS or even from the USPS, but the root source is the US Census Bureau. They have a somewhat comprehensive dataset of street segment coordinates, called TIGER data. The TIGER data is freely available for download (though it takes A LOT of manipulation to make it usable). The USPS has attempted to tie into the TIGER data and map it to ZIP Codes (which are NOT geo-political boundaries but instead USPS delivery areas based). There are many different services that utilize this TIGER data as their source for geo-coordinates. They use different algorithms to determine the position of an address along a street segment and then interpolate the geocode based on that algorithm. Because of the lower data cost and the licensing costs of the source data (free) many services will allow clients to store the geocode data that is part of the output data. SmartyStreets is one of those that believes that you can do what you like with the data.

Not free geocode data comes from a number of expensive source. These sources generally compile their own data, though they also augment that data with licensed data from other sources as well. You have sources such as googlemaps, nokia, navteq, bing maps, yahoo, mapquest... (Yes, I know, some of these are owned by the others.) Their data is much more expensive to acquire and their license generally prohibits clients from storing the response data.

So, you have free source data and expensive source data. Typically that cost is passed on in the form of more restrictive licensing. Hope that helps.

Here's a short list of providers that does allow for storing of the output data (certainly there are more):

geocod.io smartystreets.com yaddress.net

By the way, I'm the one that made the table that was referred to in the original post. I work with address data all day long at SmartyStreets.

--update-- @zsero Actually, I believe that data similar to that available from the US Census Bureau is available from a number of countries. Australia, for example, so I have heard. However, it's not necessarily the country that the data comes from but instead the level of accuracy. The US Census Bureau data, for example, provides pretty accurate geo-coordinates for street segments, but not for addresses. Address interpolation from that street segment (start or end point of the street) along the shapefile that designates the street shape is what allows "guessing" of where the address might be along the street. That's pretty good for statistical analysis. However for something like precision skydiving or a surgical missile strike, that wouldn't be good enough. You would want rooftop level geocode data. Typically THAT is the difference between the free and the expensive data.

  • So do I understand it right, that International addresses are the expensive ones, as there is no universal free database, but only expensive ones from HERE, etc?
    – hyperknot
    Commented Jan 22, 2016 at 0:38
  • @zsero I updated my answer to include a response to your comment.
    – Jeffrey
    Commented Jan 22, 2016 at 17:03
  • FWIW, the Australian data is authoritative, derived from numerous sources of truth. It means that almost any geocoder, free or otherwise, has really good address data for Australia. Commented Oct 25, 2017 at 2:54

Using Bing, Google HERE, or any of the other enterprise mapping providers would require that the base maps also be from the same provider, with the exception that you can mix Bing and HERE data together.

Bing Maps is a good choice as it has most of the data HERE has, but in some countries uses other (better) data providers, for instance, China, Japan, and South Korea data is much better in Bing Maps than in HERE (and most other mapping platforms).

Bing Maps also allows you to cache or store the geocode data for as long as you have a Bing maps license, and if you are using the data with your Bing Maps application. Bing Maps also provides a free usage tier for both public and internal facing applications: https://azure.microsoft.com/en-us/marketplace/partners/bingmaps/mapapis/

  • I can agree this might be the case for Bing and HERE, but saying "any of the other enterprise mapping providers would require" is a bit bold statement in my opinion. There are dozens of providers out there, and so far I found out that ESRI allows saving the locations as long as you are paying for it, MapBox Enterprise allows saving the locations, and I think also MapQuest allows it, and probably others as well.
    – hyperknot
    Commented Jan 15, 2016 at 11:44
  • 1
    MapBox and MapQuest doesn't use enterprise data, they use open source data. ESRI also uses a lot of open source data. That is the main reason why they allow saving geocodes.
    – rbrundritt
    Commented Jan 15, 2016 at 19:18

You can use Amazon Location Service's Places API from AWS. It lets you choose a data provider based on your preference from a list that includes Esri, HERE, OSM, etc., and (2) allows you to store the results using a stored results option.

Their geocoding page is a good place to start.


First: you can read some details in the OSM wiki about Search_engines. So you have several options to do some geocoding of addresses via any public server or via an own instance of any suitable software stack mentioned there.

Then have a closer look at the OSM based uMap, where you have features to do geocoding, marker placing, line drawing etc. You can save and share any individualized map.

If this solution comes near your aim a bit, you can ask here or the developer about needed finetuning.

  • Thanks for the OSM wiki links, it's a good resource, I didn't know about it. However my question was not limited to OSM search provider, but any commercial or non-commercial provider, which allows such usage case. OSM providers do, but maybe others as well.
    – hyperknot
    Commented Jan 7, 2016 at 21:59

Not really a geocoding provider and also far from complete: http://results.openaddresses.io. It's a open database with adresses totally free to use and only requires share-alike license. If you do not need world-wide coverage this could be a good starting point.


The company I work for offers YAddress with no restrictions on the use of output data.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.