Geocoding — entry 020 of 80
Geocod.io
Geocod.io specializes in bulk US, Canadian, Mexican, and UK address geocoding — forward and reverse — accepting up to 10,000 addresses per batch request and asynchronous lists into the millions. The free tier covers 2,500 lookups/day with no card required; beyond that it's pay-as-you-go at $1 per 1,000 lookups, or fixed monthly Flex/Unlimited plans for high-volume users. Requests are capped at 1,000 lookups/minute on the pay-as-you-go tier.
GreatAPIs Score
Auth quickstart
- Get a key at the provider
- Send it on every request as a query param
?api_key=<key>
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
geocode3
Geocode addresses to coordinates
GET/geocodeGeocode single address
| Name | In | Required | Type |
|---|---|---|---|
q | query | no | string |
street | query | no | string |
street2 | query | no | string |
city | query | no | string |
county | query | no | string |
state_province | query | no | string |
postal_code | query | no | string |
country | query | no | string |
limit | query | no | integer |
format | query | no | string |
fields | query | no | array |
destinations[] | query | no | array |
distance_mode | query | no | string |
distance_units | query | no | string |
distance_max_results | query | no | integer |
distance_max_distance | query | no | number |
distance_max_duration | query | no | integer |
distance_min_distance | query | no | number |
distance_min_duration | query | no | integer |
distance_order_by | query | no | string |
distance_sort_order | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | GeocodeResponse |
403 | Invalid API key, or feature not available. | — |
422 | Validation error. | — |
POST/geocodeBatch geocode addresses
| Name | In | Required | Type |
|---|---|---|---|
fields | query | no | array |
destinations[] | query | no | array |
distance_mode | query | no | string |
distance_units | query | no | string |
distance_max_results | query | no | integer |
distance_max_distance | query | no | number |
distance_max_duration | query | no | integer |
distance_min_distance | query | no | number |
distance_min_duration | query | no | integer |
distance_order_by | query | no | string |
distance_sort_order | query | no | string |
limit | query | no | integer |
country | query | no | string |
application/json (required)
| Status | Description | Schema |
|---|---|---|
200 | Successful response | BatchReverseGeocodeResponse |
403 | Invalid API key, or feature not available. | — |
GET/parseParse address into components
| Name | In | Required | Type |
|---|---|---|---|
q | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | ParseResponse |
403 | Invalid API key, or feature not available. | — |
reverse2
Reverse geocode coordinates to addresses
GET/reverseReverse geocode single coordinate
| Name | In | Required | Type |
|---|---|---|---|
fields | query | no | array |
destinations[] | query | no | array |
distance_mode | query | no | string |
distance_units | query | no | string |
distance_max_results | query | no | integer |
distance_max_distance | query | no | number |
distance_max_duration | query | no | integer |
distance_min_distance | query | no | number |
distance_min_duration | query | no | integer |
distance_order_by | query | no | string |
distance_sort_order | query | no | string |
skipGeocoding | query | no | string |
q | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | ReverseGeocodeResponse |
403 | Invalid API key, or feature not available. | — |
422 | Validation error. | — |
POST/reverseBatch reverse geocode coordinates
| Name | In | Required | Type |
|---|---|---|---|
fields | query | no | array |
destinations[] | query | no | array |
distance_mode | query | no | string |
distance_units | query | no | string |
distance_max_results | query | no | integer |
distance_max_distance | query | no | number |
distance_max_duration | query | no | integer |
distance_min_distance | query | no | number |
distance_min_duration | query | no | integer |
distance_order_by | query | no | string |
distance_sort_order | query | no | string |
skipGeocoding | query | no | string |
limit | query | no | integer |
country | query | no | string |
application/json (required)
| Status | Description | Schema |
|---|---|---|
200 | Successful response | BatchReverseGeocodeResponse |
403 | Invalid API key, or feature not available. | — |
distance1
Calculate distances between one origin and one or more destinations
GET/distanceCalculate distance from one origin to multiple destinations
| Name | In | Required | Type |
|---|---|---|---|
origin | query | yes | string |
destinations[] | query | yes | array |
mode | query | no | string |
units | query | no | string |
max_results | query | no | integer |
max_distance | query | no | number |
max_duration | query | no | integer |
order_by | query | no | string |
min_distance | query | no | number |
min_duration | query | no | integer |
sort_order | query | no | string |
country | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | DistanceResponse |
403 | Invalid API key, or feature not available. | — |
422 | Validation error. | — |
distance-matrix1
Calculate distances between multiple origins and multiple destinations, either as a full matrix or as one-to-one pairs
POST/distance-matrixCalculate distance matrix or one-to-one pairs
application/json (required)
| Status | Description | Schema |
|---|---|---|
200 | Successful response | DistanceMatrixResponse |
403 | Invalid API key, or feature not available. | — |
422 | Validation error. | — |
distance-jobs5
Async distance matrix and one-to-one pairs job management
GET/distance-jobsList distance matrix jobs
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | DistanceMatrixJobCollection |
403 | Invalid API key, or feature not available. | — |
POST/distance-jobsCreate async distance matrix or one-to-one pairs job
application/json (required)
| Status | Description | Schema |
|---|---|---|
200 | Successful response | DistanceMatrixJobCreated |
201 | Resource created. | — |
403 | Invalid API key, or feature not available. | — |
422 | Validation error. | — |
GET/distance-jobs/{identifier}Get distance matrix job status
| Name | In | Required | Type |
|---|---|---|---|
identifier | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | DistanceMatrixJob |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |
DELETE/distance-jobs/{identifier}Delete distance matrix job
| Name | In | Required | Type |
|---|---|---|---|
identifier | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Job deleted successfully. | — |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |
GET/distance-jobs/{identifier}/downloadDownload distance matrix job results
| Name | In | Required | Type |
|---|---|---|---|
identifier | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Distance matrix job results as a downloadable JSON file. Streamed as an attachment with Content-Disposition set to the job name. | — |
400 | Invalid request. | — |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |
lists5
Upload and manage spreadsheets for batch geocoding
GET/listsList uploaded spreadsheets
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | ListsCollection |
403 | Invalid API key, or feature not available. | — |
POST/listsUpload spreadsheet for geocoding
| Name | In | Required | Type |
|---|---|---|---|
fields | query | no | array |
multipart/form-data (required)
| Status | Description | Schema |
|---|---|---|
200 | Successful response | ImportJobCreated |
400 | Invalid request. | — |
403 | Invalid API key, or feature not available. | — |
GET/lists/{id}Get list processing status
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Successful response | ImportJob |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |
DELETE/lists/{id}Delete a list
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | List deleted successfully. | — |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |
424 | Operation cannot be completed (dependency failed). | — |
GET/lists/{id}/downloadDownload list results
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | Geocoded spreadsheet file. Format matches the uploaded spreadsheet (CSV, XLSX, or XLS). If the list is still processing or the file has expired, the response is a JSON message with success: false. | — |
400 | Invalid request. | — |
403 | Invalid API key, or feature not available. | — |
404 | Resource not found. | — |