Google’s Geocoding API: Is There Any Good Alternative?
(Want to save some time? You can skip this article and start trying our hyper accurate US Rooftop Geocoding demo.)
Google’s Geocoding API is certainly one of the best known options, when it comes to using an API to geocode addresses. And, Google is usually synonymous with power and quality. So, does that reputation match up with the actual application of their API? If not, is there a Geocoding API better than Google?
The simplest answer to your questions is, ‘It depends’.
Here is a list of the most common requirements people have when it comes to using a geocoding API:
- Limitations of Use
- Tech Support and Documentation
- Reverse geocoding
Based on these requirements, we evaluated five geocoding API providers: Google, TAMU, Loqate, Geocodio, and Smarty (formerly SmartyStreets). So, which of these is as good as Google? Here’s how each of them rates:
Geocoding API Requirements
The first and most obvious metric by which a geocode service can be judged is the accuracy of the geocodes themselves. Not all geocodes are the same, and some will take you right to an address’s doorstep.
If you want to generate a geocode, here are the most common types of geocodes, ordered from least accurate to most accurate.
- ZIP+4 Centroid Geocode - A ZIP+4 Code is a postal carrier route that generally contains 10-20 addresses. The ZIP+4 centroid geocode represents roughly the center point of that carrier route. These geocodes will usually get you in the right neighborhood. This is the least accurate kind of geocode, and will only get you sort of close to the desired address.
- Interpolated Geocode - To calculate interpolated geocodes, a geocode provider will take two or more known locations, like the coordinates of the end-points of a street segment and then calculate the approximate middle between those two points. The geocodes of that estimated middle point are the geocodes that are returned to you.
- Parcel Centroid Geocode - These geocodes are based on the outline of property boundaries. The geocodes are calculated for the center of the property parcel.
- Rooftop Geocode - These are the most accurate types of geocodes. Rooftop geocoding refines the accuracy from Parcel Centroid Geocoding, and uses other data such as building outlines to put the geocodes right on top of the building. Because true rooftop-level accuracy is harder to generate, it is also more expensive than other, less accurate geocodes. That is why some geocode providers will take shortcuts. They will take parcel centroid geocodes and simply call them “rooftop accurate” without using any additional data-points or calculations to ensure true rooftop accuracy.
This saves them money and time in development but can hurt you. It”s kind of like a used car dealer adding sawdust to the gear oil in a worn gearbox to cover up the noise. Because some homes and buildings are built close to the middle of the property, parcel centroid geocodes may be close to, or right on top of the roof of the structure in some cases.
If you only test a few standard properties, it may not be obvious that the geocodes are really just parcel centroid geocodes. However, once you look at larger or non-standard lots, these geocoder’s” accuracy begins to fall apart. Providers like this are counting on you to not test their geocoder too thoroughly.
So this trade-off is your first benchmark for geocode providers. Some of you are going to need geocodes accurate enough to pinpoint the true rooftop of a building. For other people, you may have some other criteria that may be more important to you than the accuracy of the geocodes. In either case, the following description of accuracy found with popular providers should prove helpful.
- Google: “Rooftop Level” geocode accuracy on most addresses, parcel centroid on others. However, addresses shown may not be valid addresses.
- Loqate: “Rooftop Level” on some, parcel centroid on others, interpolated on some.
- Geocodio: “Rooftop Level” on some, parcel centroid on others, interpolated on the rest.
- Smarty: “Rooftop Level” geocode accuracy on most, parcel centroid on others. Importantly, we will tell you if the geocode is rooftop or parcel centroid. And, we”ll always tell you if the address is a valid address.
“Uptime” is a metric used to measure how long and how consistently a system has been, well, “up” and running. It’s a way to find out if you should be worried that service won’t be available when you need it. Unlike accuracy, uptime is not usually the sort of thing that you look at and say, “Yeah, I don’t think I need 100%”. You want someone on the other end when you pick up the phone and dial 911. You can’t always plan when you’re going to need the service, so you need the service to be ready at all times.
Imagine it for a second: You call 911 because your cat is stuck in a tree. But no one answers. In fact, you get a “Your call cannot be completed at this time” message. This is a minor emergency, so you shrug, grab a ladder, and rescue the cat yourself.
But then you get to thinking: what if that happens during a real emergency?
One-time or occasional users may be able to get away with depending on a service that doesn’t boast world-class uptimes. Recurring customers, however, will need some assurance of reliability. That assurance usually comes in the form of a Service Level Agreement (or SLA); among other things, it promises uptime that meets or exceeds a certain threshold. Some providers don’t make these commitments, though, and others will only offer to show their SLA to signed-up, paying customers. In this latter case, there’s really no way to tell what kind of reliability you’re getting before you start using the service.
If you’re a regular user of geocode APIs (and if you’re reading this article you either are or will be), then you’ll want a system that guarantees it won’t go out on you, and then keeps that promise. In short, you want an API with good uptime (don’t we all?).
- Google: 99.90% Uptime SLA
- TAMU: No information without signing up
- Loqate: No information without signing up
- Geocodio: No SLA
- Smarty: 99.98% Uptime SLA
Let’s be clear on something first. Computers are fast. Really fast. We built them specifically, so they can do things like geocoding, because they can work faster than we can. Kind of like cars—it gets us where we want to go in a fraction of the time.
Once we cut away incidentals like connection speed and substandard hardware, we see what really slows down computers: us.
We put a wide range of limitations on our machines that keep them from running full throttle. Some of the limitations used in the geocoding business are listed below, and beneath them are some elaborations on why they can sometimes be a pain in the patoot:
- “Requests per” methods of throttling
- Capacity, i.e. simultaneous processing
- Presence/absence of batch processing
The first traffic jam on the list is “throttling,” which largely comes in two flavors: requests per second, and requests per day. If a provider throttles usage, they do it universally and irrevocably.
It’s like this—if you’re having trouble fielding all the requests at once that are sent to your servers, you have two options. First, you can increase the server capacity (see below) in order to continue handling the flow. That takes money; sometimes more money than it’s worth. Or, you can slow the speed of incoming traffic by throttling it. You do that either by putting incoming requests in a queue, or by sending the user an error message that indicates they are over the request limit.
By controlling the flow, the provider can keep their servers from being overloaded, which can help them maintain uptime (which, remember, is a good thing). This does, however, reduce the speed at which they can return the geocodes back to you.
Next, let’s talk about capacity. Most throttling occurs as a provider attempts to maintain uptime by controlling the flow of requests and keeping their servers from being overrun. Some providers, though, build their systems to handle large numbers of requests, and thus aren’t afraid to let their customers turn on the fire hoses. Companies like this often don’t throttle because they don’t need to; regardless of the traffic, they can still pump geocodes out as quickly as addresses come in. Smarty is one of these companies. We offer some geocoding subscriptions that have unlimited lookups AND unlimited processing speeds.
Whether you’re baking 1,000, 10,000, or 100,000 cookies, having a large capacity helps both on the small scale and on the large scale—increased capacity means being able to process more requests simultaneously. This means that finding the latitude and longitude for 100,000 addresses still process like 10,000 addresses. Turnover time is incredibly short, and any queuing that must happen moves quickly.
Lastly, the presence or absence of batch geocode processing has an impact on the speed at which your geocodes come back to you. Batch geocode processing allows you to upload a list of addresses to be geocoded at the same time.
Some providers only offer one-at-a-time geocoding (the “enter your address here” line on the website). Even if the developer can set up a loop that plugs in address info as fast as the website can handle it, you’re still likely to be throttled (see above), limiting how many requests you can push through per second.
Other geocoder services do offer batch processing, allowing you to lump many requests together and submit them all at once.
Some providers have a command-line feature or some sort of copy/paste method on their website that’s capable of receiving larger numbers of entries all at once. Using this method processes the addresses immediately. This is kind of like turning on a fire hose and aiming it their way.
The other form of batch processing (mind you, some companies offer both forms) is when you can submit something like an Excel or CSV spreadsheet file to the provider, neatly packaged. In this format, the provider can take however long they need or want to, and then notify you when the job is complete. That gives them the option to delay processing—sometimes even days—if it makes life easier for them.
Here’s how the competition stacks up:
|Name||Batch||Batch Size||Requests per Second||Limit per Day||Time to process
|Yes||No limit listed||50||100,000||3 min, 20 sec|
|Geocodio||Yes||No limit||No limit||None||1 min 10 sec|
|Smarty||Yes||Any||Unlimited available||None||Less than 4 sec|
|TAMU||Yes||2,500 (free)||None listed||Must refresh credits every 2,500||Unknown|
|Loqate||Yes||No limit listed||None listed||None Listed||No estimate listed; signing
up is the only way to learn more
Additional note on Google: Most of Google’s information is available on their site, but specifics on how a paid account works—prices, how to increase limits, etc.—are only available by contacting their sales department.
Limitations of Use
Google (as you’ll see below) is kind of the Ferrari of geocoding APIs. It’s slick, it handles well, and it can accomplish really impressive things at amazing speeds.
But—both with a Ferrari and with geocoding providers—you need to ask yourself, “What am I not allowed to do?” Some providers restrict the usage of the data they give back to you, keeping you within boundaries they feel are helpful to their business. It’s kind of like traffic laws, and as a potential customer, you should be aware of what kind of stop lights providers put on the use of their service. Here are some examples:
- Requiring data to be used only in conjunction with a specified program
- Requiring free geocoding services to be used only by non-profit organizations
- Requiring users to empty caches after a certain time period to prohibit storage of data
- Requiring users to reference or cite the origin of the data (i.e., the provider)
Depending on how you plan on using your data, you may be willing to live with these kinds of restrictions. Likewise, you might be willing to live with an API that’s a bit clunky, or less than straightforward to operate.
Note: you’ll also want to consider how easy an API is to integrate and use; what kinds of input or output are supported; how simple it is to interface with; how quickly it can be tied into your code, and so forth.
- Google: May cache geocodes temporarily but may not store long-term; geocodes only for use in connection with their Google Maps API, free service must be offered free to your customers
- TAMU: Must cite TAMU as source, and add link to their website
- Loqate: Sign up required to obtain additional information
- Geocodio: No listed restrictions
- Smarty: No restrictions
Tech Support and Documentation
Something that you might have overlooked, but is of critical importance is how easy an API is to deal with when something goes wrong. Good tech support helps resolve issues as they come up. Good documentation helps both to prevent issues and to assist users in resolving them DIY-style. Some providers are top-notch in this regard, while others have spent their efforts in other areas.
- Google: Extensive documentation (though it’s not referenced or mentioned on the help page) which is difficult to locate and search; help page encourages searching Stack Overflow and Github and using Issue Tracker (for reporting bugs); email contact but no chat or Twitter, and phone line to actual tech support only available for paid customers
- TAMU: No documentation offered unless signed up; Phone contact, chat, and email contact, but no Twitter account
- Loqate: Documentation extensive, but lacks language library; no tech support phone line, but chat and email both supported
- Geocodio: Documentation extensive, includes multiple language libraries; email, chat, phone, and Twitter offered for tech support
- Smarty: Extensive documentation, language libraries hosted on Github; phone, chat, email and Twitter all offered for tech support
Address validation or verification is when a mailing address is compared against an authoritative mailing database (the USPS, for example). If the address matches one of the active mailing addresses on file, the address is validated and put into a standardized format—it’s confirmed to be a real address. It helps make sure that data is accurate and verified, and that fictional or incorrect addresses aren’t slipped into your database by mistake.
Why are we talking about this? Besides the riveting nature inherent in the subject of validation, we want you to be aware that not every geocoding provider validates the address you give them before they give you the geocode. That means, even if they provide you the geocode for a particular location, it doesn’t mean that location is a real address. That might be important if you are sending something to that address, be it mail, a package or something else.
While lack of an address validation API should in no way be a deterrent, it is good to keep in mind that many of the providers that offer validation offer it for no additional charge. Below is the breakdown of all the providers we put on our list and whether they offer validation or not.
- Google: Google doesn’t offer address verification.
- TAMU: Yes, but validation API is a separate service and is in no way connected to the geocoding API service
- Loqate: Yes
- Geocodio: No
- Smarty: Yes
If you can use a geocoding provider to produce geocodes, it is useful to be able to turn those geocodes back into addresses as desired. All the providers we selected for review in this article offer both geocoding and reverse geocoding. However, not all providers do. Before you select a geocoder, ensure they offer a “two-way street” and will geocode and reverse geocode for you.
- Google: Yes
- TAMU: Yes
- Loqate: Yes
- Geocodio: Yes
- Smarty: Yes
Finally, we come to the one that makes the world go ’round. Price is often the deciding factor in choosing a provider, and there’s a wide variety in the prices offered by these companies. After deciding which services you need, as well as the features you want, determining what you can afford to pay for is the critical ending to this process. It may even cause you to double back and reevaluate the items listed above to find out which ones you can do without.
However prices affect you, we hope that our research at least is helpful to you in making your decision more clear. Below are the providers with a $$$ rating indicating their price ranges. More $$$ mean higher prices, and a “?” indicates a need to contact the sales department for further information.
- Loqate: $$$$
- Google: $$$/? (initial cost is for overages; you have to call in for a quote on contracts)
- Geocodio: $
- Smarty: $$
- TAMU: $
The end of the trip
With all the myriad factors that affect your geocoding decisions, what’s “good” for one customer might not be the right fit for another. Carefully consider each of your criteria, weigh your options, and choose the one that’s best for your needs. If you’d like to try out Smarty for yourself and see if it meets your needs, just set up a free account and test away!