canonical: https://jentic.com/apis/geocod.io/geocodio-api

# Geocod Geocodio API

Geocodio is a US- and Canada-focused geocoding API that converts addresses to coordinates and back, with optional data appending for congressional districts, census blocks, school districts, timezones, and more. The spec covers single forward and reverse lookups, batch processing for large lists, spreadsheet uploads with managed list status, and a distance/route-matrix endpoint. It is widely used by US-centric civic-tech and analytics platforms because of its accuracy on US street data and its append fields for political geographies.

## For AI agents

Geocode US and Canadian addresses, reverse-geocode coordinates, and append congressional, census, timezone, and district data - single requests or batch lists.

## Scope

Does not handle routing, turn-by-turn directions, or worldwide coverage outside the US and Canada - use for North American geocoding and address-data appends only.

## Capabilities

- Convert a US or Canadian address to latitude and longitude with /geocode
- Reverse-geocode coordinates back to a postal address with /reverse
- Append congressional district, census block, and school district data on a single request
- Upload a spreadsheet of addresses and poll for a downloadable enriched file
- Calculate distance or driving time between two coordinate pairs

## Use cases

### Customer Address Cleanup

B2C operations teams onboarding new customers run their address book through Geocodio to standardise, validate, and append latitude/longitude. The /geocode endpoint accepts a free-form address and returns the canonical form along with coordinates, so downstream systems work with consistent formatting and can route shipments accurately.

Example prompt: Send each customer address to /geocode, store the canonical address and coordinates, and flag any record with accuracy below 0.8 for manual review

### Political Geography Enrichment

Civic-tech tools and advocacy platforms need to know which congressional district a constituent lives in. Geocodio's append fields return congressional district, state-legislative district, and census block on a single /geocode call, eliminating the need to maintain separate shapefile lookups.

Example prompt: Geocode a list of voter addresses with the cd field appended, then group voters by congressional district for a campaign report

### Bulk Spreadsheet Geocoding

Analysts with spreadsheets of thousands of addresses use Geocodio's list endpoints to upload, process, and download an enriched file without writing batch loops themselves. POST /lists uploads the file, GET /lists/{listId} polls status, and GET /lists/{listId}/download returns the result CSV - useful for one-off enrichment without standing up an ETL pipeline.

Example prompt: Upload addresses.csv to /lists, poll /lists/{listId} until processed, then call /lists/{listId}/download for the enriched file

### AI Agent Address Resolver

An AI agent answering location questions or assembling a customer file can call Geocodio through Jentic. The agent searches for 'geocode an address', loads the /geocode schema, and executes the call with the address string. The Geocodio API key stays in the vault and the agent gets back a structured location object.

Example prompt: Search Jentic for 'geocode an address', execute /geocode for the address provided in the user prompt, and return the canonical address with lat/lng

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /geocode | Forward geocode an address to coordinates |
| GET | /reverse | Reverse geocode coordinates to an address |
| POST | /lists | Upload a spreadsheet of addresses for batch processing |
| GET | /lists/{listId} | Check the status of a batch list |
| GET | /lists/{listId}/download | Download the enriched results of a list |
| GET | /distance | Calculate distance or travel time between two points |

## Key resources

- **Geocoding** — Forward and reverse geocoding for US and Canadian addresses
- **Lists** — Upload spreadsheets of addresses for batch geocoding and download enriched results
- **Distance** — Calculate distance or travel time between coordinate pairs

## Why Jentic

- **Setup:** Wiring the Geocodio API by hand means registering your key, deciding per operation whether it rides as the api_key query parameter or a bearer token, and handling list creation and download flows yourself. Through Jentic you install once, import Geocodio from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Geocodio puts the list id in the URL path (/lists/{listId}), so a rule can pin your agent to one list: it can read and download that list and nothing else. You choose the operations it may call, so broader ones like creating new lists or single-address geocoding are not included unless you add them.
- **Credential handling:** Your Geocodio API key is stored once, encrypted, by your own Jentic One instance and injected as either the api_key query parameter or the Authorization bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'geocode an address' or 'append a congressional district', and Jentic returns the matching Geocodio operation with its parameter schema so the agent picks the right endpoint and append fields without browsing the reference docs.

## Related APIs

- **Smarty US Autocomplete** — USPS-grade US address validation and autocomplete
- **OpenCage** — Worldwide forward and reverse geocoding aggregating multiple open data sources
- **HERE Maps** — Routing, traffic, and map tiles to pair with Geocodio's geocoding output

## FAQ

### What authentication does the Geocodio API use?

Geocodio accepts an API key passed as the api_key query parameter or as a bearer token in the Authorization header. Through Jentic the key is stored encrypted in the vault and attached at execution time, so an agent calling /geocode never handles the raw secret.

### Can I geocode Canadian as well as US addresses?

Yes. Geocodio supports both US and Canadian addresses on the same /geocode and /reverse endpoints. Specify country='ca' in the query parameters to bias parsing for Canadian formats.

### Can I append congressional districts to my addresses?

Yes. Pass fields=cd (or cd119, cd118 for a specific Congress) on /geocode or /reverse to receive the congressional district alongside the coordinates. The same fields parameter accepts census, school, timezone, and other appends.

### What are the rate limits for the Geocodio API?

The OpenAPI spec does not declare a per-second rate limit. Geocodio meters by lookups per day on the paid plans documented at geocod.io - the /lists endpoints are the recommended path for very large jobs because they process server-side rather than counting against streaming quotas.

### How do I batch-geocode a CSV of addresses through Jentic?

Run pip install jentic, search Jentic for 'upload addresses for batch geocoding', then call POST /lists with the file, poll GET /lists/{listId} for status, and download via /lists/{listId}/download once the list is processed.

### Is the Geocodio API free?

Geocodio offers a free tier with daily lookup allowances and paid plans for higher volume. Pricing tiers and append-field availability are listed on geocod.io - the API surface is the same across tiers but rate and feature limits vary.

### Can I limit what my agent is allowed to do with the Geocodio API?

Yes. Because you run Jentic One yourself, your own rules decide which Geocodio operations and credentials the agent may use. Since the list id sits in the URL path (/lists/{listId}), you can pin the agent to a single list so it only reads and downloads that list's results and nothing else. Broader operations such as creating new lists with POST /lists or running single-address /geocode and /reverse calls stay off limits unless you explicitly grant them.
