The supported geocoding services are shown in the table below. The method
is used to select the geocoding service in tidygeocoder functions such as geo()
and reverse_geo()
. The usage rate limitations are listed for the free tier of the service when applicable and many services have faster rates available with paid plans.
Also note that there are many other considerations when selecting a geocoding service such as if the service uses open source data with permissive licensing or if there are restrictions on how you can use the data provided by the service. Refer to each service’s documentation for details.
Service | Method | API Key Required | Batch Geocoding | Usage Limitations | API Documentation |
---|---|---|---|---|---|
Nominatim | osm |
1 query per second | docs | ||
US Census | census |
✅ | docs | ||
ArcGIS | arcgis |
docs | |||
Geocodio | geocodio |
✅ | ✅ | 1000 queries per minute (free tier) | docs |
Location IQ | iq |
✅ | 60 queries per minute (free tier) | docs | |
google |
✅ | 50 queries per second | docs | ||
OpenCage | opencage |
✅ | 1 query per second (free tier) | docs | |
Mapbox | mapbox |
✅ | 600 queries per minute (free tier) | docs | |
HERE | here |
✅ | ✅ | 5 queries per second (free tier) | docs |
TomTom | tomtom |
✅ | ✅ | 5 queries per second (free tier) | docs |
MapQuest | mapquest |
✅ | ✅ | docs | |
Bing | bing |
✅ | ✅ | docs | |
Geoapify | geoapify |
✅ | 5 queries per second (free tier) | docs |
Highlights:
Other Notes:
custom_query
parameter:types
parameter to be set if limit > 1
. See #104.limit
parameter (#106).The api_parameter_reference
maps the API parameters for each geocoding service to a common set of “generic” parameters. The generic_name
below is the generic parameter name while the api_name
is the parameter name for the specified geocoding service (method
). Refer to ?api_parameter_reference
for more details.
API keys are retrieved from environmental variables. The name of the environmental variable used for each service is stored in the api_key_reference
dataset. See ?api_key_reference
.
method | env_var |
---|---|
geocodio | GEOCODIO_API_KEY |
iq | LOCATIONIQ_API_KEY |
GOOGLEGEOCODE_API_KEY | |
opencage | OPENCAGE_KEY |
mapbox | MAPBOX_API_KEY |
here | HERE_API_KEY |
tomtom | TOMTOM_API_KEY |
mapquest | MAPQUEST_API_KEY |
bing | BINGMAPS_API_KEY |
geoapify | GEOAPIFY_KEY |
The minimum time (in seconds) required per query to comply with the usage limitations policies of each geocoding service is stored in the min_time_reference
dataset. See ?min_time_reference
.
method | min_time | description |
---|---|---|
osm | 1.00 | 1 query per second |
geocodio | 0.06 | 1000 queries per minute (free tier) |
iq | 1.00 | 60 queries per minute (free tier) |
0.02 | 50 queries per second | |
opencage | 1.00 | 1 query per second (free tier) |
mapbox | 0.10 | 600 queries per minute (free tier) |
tomtom | 0.20 | 5 queries per second (free tier) |
here | 0.20 | 5 queries per second (free tier) |
geoapify | 0.20 | 5 queries per second (free tier) |
Links to the usage policies for each geocoding service:
The maximum number of inputs (geographic coordinates or addresses) per batch query for each geocoding service is stored in the batch_limit_reference
dataset. See ?batch_limit_reference
.
method | batch_limit |
---|---|
census | 10,000 |
geocodio | 10,000 |
tomtom | 10,000 |
here | 1,000,000 |
mapquest | 100 |
bing | 50 |