I need to parse single-field addresses into multiple fields such as address number, street name, street type, etc. Esri has the Standardize Addresses tool in the Geocoding Tools toolbox, but I am curious if anything similar is possible with Google's API. It looks like it is wonderful at geocoding and reverse geocoding, but I haven't found any info on standardizing input addresses. I understand that for commercial purposes I would need to pay for some sort of licensing, but first I want to know if it is possible in the first place.
Yes you can parse and standardize your address using either Google geocoding API or Bing mapping API. However both of them has some API call limitation per day. Better check out their TOS.
Input format- House #, Street, City, State, and Zip ( Bold: mandatory, recommends to provide for confidence on parsed address) Response format- JSON, XML /Corrected output fields- House #, Street, City, State, Zip
Single line addresses, also known as freeform addresses, are a tough nut to crack using regex or any other type of "guessing or approximation". The trouble is that without comparing to a master list, you can't know how the following address is meant:
100 North Main St Helena CA 90210 (fake address)
Is it really 100 North Main St Helena, CA 90210 or is it 100 North Main St. Helena, CA 90210
So, does St mean Street or is it part of Saint Helena?
Google does an exceptional job at address approximation, especially considering the types of addresses people throw at it. @Mapperz is right that Google can't be use for commercial use without displaying a map. It violates their Terms of Service.
There is a free service that might work for you. They do pretty good at the freeform addresses. They have lower limits but it's free.
If you have a higher volume that you need to work with and have a budget, there are a number of very good commercial services. I work at one of them called SmartyStreets.
Also, standardizing addresses will be a bit of a bugger with Google's API. Google Maps is an address approximation service, not a standardization or verification service.
For example, have you ever done street view by a house on the edge of town, or out in the suburbs, even in rural areas? Often, it will only show the street name and say "Address is approximate" -- if you had that house's actual address and typed it in Google Maps, it would probably adjust the address to the incorrect location. This happened to me yesterday near a city/county border. The mailing address I had was correct but Google got the wrong city and placed me about a mile away from the delivery point. Oops?
Fortunately that wasn't for commercial use (I only needed directions), but if you need reliable data, even their commercial license doesn't provide actual verification. You're probably looking for something like a CASS-Certified service to standardize and geocode addresses. Such a service is authorized by the USPS to correct and "fill out" address data so it is in a standard format, and must pass rigorous quality tests every so often.
I work with one such provider called SmartyStreets. We service LiveAddress API which doesn't have any restrictions against commercial usage. You can reference this other GIS question to investigate its performance and capabilities, or see our website.
And I'll let you in on a little secret: while it doesn't yet appear that we parse single-line addresses, we actually do (as of this week). Submit an entire address in the "street 1" field through our API and you'll get a CASS-Certified result. Note that this isn't yet implemented on our site's demos except in your account pages.
Yes, it is possible.
Google, Bing, MapQuest will all return address fields on a geocoding request. For some you have to add an extra flag that you want the fields (MapQuest).
Note that they all return the fields labeled differently and in different structures. e.g. one API will return "street" value as just The street "Main", where another will return "street" value with the Number and Suffix e.g. "100 Main Ave". So pay attention to that.