7 Free Geocoding APIs: Google, Bing, Yahoo and MapQuest

Adam DuVander
Jun. 21 2012, 05:00AM EDT

Almost every app that uses a mapping API needs some latitude/longitude points. If you don't already have those "geocodes," you need to find them, which usually means converting an address to a point on the earth. That's where you'll need one of the 54 geocoding APIs in our directory. This post zooms in on seven free geocoders and compares them on features, speed and limits.

For geocoder timing, we checked each API every ten minutes for a week. The address we used was the same for all geocoders. Most had only a single instance of downtime in our week of testing. Google Geocoding API and Cloudmade Geocoding API were the only two with 100% uptime.

In terms of speed, the fastest two were Bing Maps Geocode and Google Geocoding. The following is a run-down on the features and performance of all seven free geocoders.

Bing Maps GeocodeBing Maps Geocode from Microsoft performed well in our tests. The usage limits are unclear in the company's terms of use, but it appears developers get 10,000 geocodes per month for free. The service requires an API key and has both SOAP and REST (both JSON and XML) versions of the geocoder. There is also a batch API for converting multiple addresses at one time.

CloudMade GeocodingCloudmade Geocoding was by far the slowest in our tests. On the plus side, it's based on crowdsourced OpenStreetMap data, so you know there's nobody paying licensing fees. The RESTful service returns data as JSON with no published rate limits.

Data Science ToolkitGeocoding is one of the services within the Data Science Toolkit API, which averaged about a half-second response time in our tests. However, the service is not really meant to be used directly for production. Instead, developers can install the entire unit for free on their own Amazon or VMWare instances. The resulting API is RESTful, with data returned as JSON.

Google GeocodingThe Google Geocoding was just a touch slower than Bing in our tests, putting it in second place. It's hard to believe that the original Google Maps API launched without any sort of geocoder, which seems like such a necessary mapping tool. While the service requires no API key, it does limit geocodes to 2,500 per day and require that the resulting application show data with a Google Map. The REST API returns data as JSON or XML.

MapQuest GeocodingThe MapQuest Geocoding API is probably the most open among the fast geocoders. It's unclear whether there are limits for its geocoding API, but MapQuest wants to out-open Google on the maps side, providing unlimited maps for free. Previous statements from the company make it likely that the same is true of its geocoder. There is a batch option that allows up to 100 addresses to be geocoded at once. Like the other popular services, this is REST with JSON and XML.

OpenAddresses GeoLocated Address SearchOpenAddresses Geolocated Address Search API was just shy of averaging a half second per call, which makes it in the slower half of the geocoders. However, like Cloudmade, it uses crowdsourced data, which means it's the fastest of the geocoders based on free data. However, one downside to OpenAddresses is that it requires you split up your query into city, street and even address number, which makes it harder to accept input from users. Data is returned as JSON or CSV.

Yahoo PlaceFinderYahoo PlaceFinder API is the successor to the company's previous geocoder API. While it wasn't as fast as some of the other big names in our tests, it does come with by far the highest published rate limits: 50,000 requests per day. It requires an API key and, unfortunately, the willingness to press your luck. Yahoo has not invested much in geo lately, even shutting down its Yahoo Maps. The Yahoo geocoder returns JSON, XML and serialized PHP.

Adam DuVander -- Adam heads developer relations at Orchestrate, a database-as-a-service company. He's spent many years analyzing APIs and developer tools. Previously he worked at SendGrid, edited ProgrammableWeb and wrote for Wired and Webmonkey. Adam is also the author of mapping API cookbook Map Scripting 101.



[...] AJAX code that returns the latitude and longtitude results back to the server side for processing.I've been working on a project using the Google maps API recently. I've been using it to return the ...some things that you need to be aware of. The first thing is that Google does not want you to use [...]


I suspect that when you were testing Bing Maps you used a basic account and had a couple responses cme back empty. If this is the case this is likely due to rate limiting. If you look at the response header there will be a flag that indicates this. Rate limiting occurs when either your account makes a lot of requests ina short period of time to the service or when the closest servers to where you are testing are under a lot of load and non-enterprise accounts are rate limited to give priority to enterprise accounts. Rate limiting does not occur on enterprise accounts, only free accounts.

As for the free terms of use for Bing Maps. The free usage is for transactions which could be geocoding, routing or one of the other service functions. There are two types of geocoding available, on-demand via a REST service (ms) and batch geocoding where you can upload a large set of addresses in a single request and have it return when completed (measure in minutes). The terms vary based on the type of application being created. Here is some clarity on the numbers.

Windows Store (win 8), or Windows Phone app

  • Public facing app (free or paid for)
    • 50,000 transactions in a 24 hour period.
  • Evaulation (trial) for commercial or Government app
    • 10,000 transactions in a 30 day period

Web site (JavaScript or Silverlight), Non-Windows platform (iOS, Android app)

  • 125,000 transactions a year

Batch geocoding

  • 50,000 addresses per year.

Internal apps (non-public facing) of any type require a license.