28
votes

Could someone advise on the quota limits to Google maps geocoding api? I'm using geocoding on android. The Google maps Api site states the limit is 2,500 per day. Is this total for the API key? or per IP address? I have found this article: http://code.google.com/apis/maps/articles/geocodestrat.html#quota-limits

which states that the quota limit is tied to the ip address, however this is referring to websites. Can anyone answer this? Obviously this is a huge difference and 2,500 geocode lookups per day per device would be enough for most applications.

2
I wonder how this works for phones? Does the NAT'ing of a providers phone matter? - JPM
@jpm quota appears to be based on IP address, so each phone would have 2500/ day. I don't know about nationality but guessing there is no difference.... - Patrick
Well the phone companies NAT the addresses and therefore the IPs to the outside might all look the same, hence there might be an issue in this case. Not really sure the topography of a phone providers... but we ran into this case where we needed direct socket connections and found out about the NAT'ing. We ended up going with a private cell network to get static IP's for each device. - JPM

2 Answers

50
votes

There is no hard limit for the Android Geocode API

I contacted the Developer Support

Asking:

With the new app we are writing, we have a map of 10 houses and we have to look up the Lat Long from the Postcode for each.

We use:

http://developer.android.com/reference/android/location/Geocoder.html#getFromLocationName(java.lang.String, int)

However, the customer is now asking about limits of the API. I've had a look around online but I can't find any concrete evidence.

I've heard it would be 2500 requests per IP address per 24 hours.

Some people are getting the Javascript Geocoder mixed up with the Android Geocoder, so this question is specifically Android.

I made a loop that hits the getFromLocationName more than 2500 times and it would return me data anyway. Caching maybe. I sometimes get an IOException, intermittently. I've assumed this is something to do with the backing LocationProviders and I would also get the IOException if I ever hit this mythical limit?

Could you bring some clarity to my ramblings or know someone who could?

Regards

Paul

And got this reply:

Paul,

This API is designed for reasonable use by client applications. It is actively monitored for abuse (e.g. requests per second), but you should not have an any issues with the use case you have described.

I am not sure how your application is structured, but it might be more efficient to do the geocoding once on the server-side, rather than on every device individually.

Thanks, Jan-Felix

fyi: (we also save these lookups in a database on the local device once done so they don't need doing again)

Therefore there is no hard limit on the the Android GeoCode API useage, more just a fair useage policy per device (client)

13
votes

From what I understand it's per single IP address per day. This is the exact machine making the request. So if someone else was using your application it would limit it to their machine.

Your API key can be used from multiple devices. This same principle applies to all of Google's APIs. I use the translate API, and if I was limited to per API key I'd be screwed and would max out.

Of course this doesn't apply if you pay Google for use of their API (Billing in the API console). I pay a lot for Google Translate API