I'm a software engineer new to GIS and mapping systems. Recently I have been playing with ideas for applications built from the Center for Medicare/Medicaid Services 2012 cost dataset. It consists of about ~1.5 million records of American physicians, and their Medicare billing information.

Each physician has an address and I think there are interesting things to be done with mapping this data. However mapping APIs / libraries universally require latitude / longitude values, and I only have street addresses. I've done a fair amount of investigating how to go about bulk geocoding data. Google and Bing maps APIs both are volume limited (even with a business license) to a restrictive level. SmartyStreets seems to do the job, but to get the volume that I require to geocode ~1.5m addresses would cost ~$1000 dollars per month. AddressDoctor looks both complicated and prohibitively expensive.

Are there ways I can do this for free? I'm very unfamiliar with GIS but I understand that at least for the U.S., a lot of the source data comes from the federal government and (I would think) would be free. However bulk processing APIs seem prohibitively expensive for the scale on which I am trying to work.


2 Answers 2


In the US the Census is the primary source for the street-network files used for geocoding, and as stated in a previous answer you can download these files and do your own matching. The Census does provide batch geocoding and an API and no login or account is required - but you're limited to just 1000 records per batch: https://www.census.gov/geo/maps-data/data/geocoder.html

I use the geocoding services at Texas A&M here: http://geoservices.tamu.edu/. They primarily use TIGER data that they improve, but when available they also use parcel or property data. You have to create an account and the first 2500 records are free, and then you have to pay per record (a reasonable rate) UNLESS - if you choose to partner with them (which is as simple as providing a link to their services from your website or app) you can get an unlimited account for free. But - you have to request additional geocoding credits in batches of 2500 records, which may be a drag for you if you're doing 1 mil records. This tells you what the options are - http://geoservices.tamu.edu/Pricing/UsageCosts.aspx.

I've had instances in the past where I had to do larger batches of 50k records. I contacted them and was able to work something out - they're pretty approachable.

  • Thanks. The Census GeoCoder might do the trick. 1,000 lookups at a time is probably fine as long as there's no daily cap; it'd let me write a script to just hit their API in batches of 1,000. I'll take a look at both.
    – UpQuark
    Commented Apr 29, 2015 at 19:30

Seeing as the dataset you are dealing with is in the US, you could take a look at the PostGIS Tiger Geocoder. TIGER data is free and is available here.

Some work will be required to extract and download the data into a PostGIS database.

  • Thanks. Are there any good resources / documentation for how to implement Geocoding of a tabular dataset like mine with the Tiger Geocoder? GIS is out of my wheelhouse so that link is a little arcane to me.
    – UpQuark
    Commented Apr 29, 2015 at 19:28
  • 1
    The actual Geocoding is easy. You can just call the geocode function as a SQL query. The PostGIS documentation is very good and is your best friend here. It has examples: postgis.refractions.net/docs/Geocode.html The main work will be actually getting the database set up.
    – aengus
    Commented Apr 29, 2015 at 19:36

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