Geocodio is a solid geocoding API. Zip-Codes.com handles addresses too — but the ecosystem is built around postal code workflows: first-class radius, typeahead, distance, ZIP-level enrichment, and full Canadian postal coverage. One credit pool, US-hosted on every tier.
2,500 credits/day · No credit card · No expiration
† Developer tier: $49/mo for 100,000 credits. Geocodio PAYG is $1.00/1K (raised Feb 1, 2026 from $0.50).
Geocodio is built around one job: turn a free-form address into a coordinate, optionally appending Census or political-district data. They do that well, with permissive data-storage rights and bundled North-American enrichment. Zip-Codes.com is built around postal-code workflows: ZIP and FSA lookup with deep enrichment, radius search (centroid or spatial polygon-intersection), geographic typeahead, distance, and address parsing — as separate specialized endpoints sharing one credit pool, one API key, one billing relationship. If your job is geocoding addresses, Geocodio fits. If your job touches ZIPs, postals, radius, or typeahead, this page is for you.
| Capability | Geocodio | Zip-Codes.com |
|---|---|---|
| Forward geocoding (address → coords) | Rooftop / interpolated lat,lng | ZIP+4 centroid via /v2/address |
| Reverse geocoding (coords → ?) | Coords → street address | Coords → containing ZIP with enrichment |
| Radius search | Not offered | First-class /v2/radius, centroid up to 500 mi or spatial polygon with pct_inside |
| Geographic typeahead | Not offered | /v2/suggest across cities, counties, CBSAs, FSAs, ZIPs, states |
| Distance / bearing | Distance matrix (50K async) | /v2/distance 1 credit per pair, timezone included |
| ZIP lookup with enrichment | Geocode an address first, then append fields | Direct /v2/zip?code=... with 11+ enrichment flags |
| Census ACS demographics | Current 5-year vintages | 14 years (2011–2024), 542 fields per ZIP |
| Boundary memberships | CD, state-leg, school district | Census tract, CD, state-leg, school district + Canadian ridings |
| US coverage | ||
| Canadian coverage | Geocoding only | FSA + full 6-char postal + Census, native |
| Mexico coverage | ||
| US data hosting | Enterprise tier ($3,250/mo) | Every tier, including free |
| Free tier | 2,500 lookups / day | 2,500 credits / day, no credit card, no expiry |
| Paid entry tier | PAYG $1.00 / 1K (as of Feb 2026) | $49/mo — 100,000 credits (≈ $0.49 / 1K) |
| Async batch / large bulk | Lists API up to 10M+ records | Up to 100 inputs / batch request |
| Data storage rights | Permissive — store, embed, resell | Standard commercial terms |
Geocodio is a good geocoder. These three workflows aren’t about geocoding.
Geocodio doesn’t offer radius search. Common workarounds: geocode every ZIP in a region, then compute distance from your center yourself, then filter. That works but it spends credits on geocoding lookups you don’t need, requires you to maintain your own distance/containment math, and falls down on spatial accuracy when ZIPs partially overlap a search area.
Our /v2/radius endpoint takes a center (ZIP, FSA, postal, or coordinates) and a
radius (or auto for density-based sizing). Centroid mode runs haversine and
returns US ZIPs + Canadian postals up to 500 miles. Spatial mode runs a true
polygon-intersection and returns each ZIP with a computed pct_inside percentage
— the right primitive for territory assignment, service-area definition, or
delivery-zone compliance where partial coverage matters. Optionally layer in timezone or
ACS aggregates across the result set.
If your UI needs typeahead and the user types cook, spring, or
los an, what should come back? An address autocomplete (Geocodio doesn’t
offer one anyway) gives you street-level matches. But many checkout, shipping, lead-form,
and analytics workflows want geographic matches: cities, counties, metros (CBSAs),
ZIPs, FSAs, states — ranked, deduplicated across types.
/v2/suggest is built for that. Pass q=spring and get Springfield IL,
Springfield MO, Spring TX, Spring Branch TX, the Spring CBSA, all ranked. Pass
proximity=auto to bias by caller IP, proximity=40.7128,-74.006 for
explicit coordinate bias, or state=IL to filter. Tiered credit cost based on
requested limit (1–15 results = 1 credit, all the way up to 500 results = 5 credits).
Geocodio’s billing model is “1 address × (1 + N field appends) lookups.” That works fine when the workflow starts with an address. When the workflow starts with a ZIP — from CRM records, e-commerce checkout, lead forms, batch imports, market-area analysis — the geocoding step is a tax. You’re paying to look up a coordinate you didn’t need to get to the ACS data you did.
/v2/zip accepts a ZIP, ZIP+4, Canadian postal, or coordinates directly. 11+
opt-in enrichment flags: timezone, census, cd,
state_leg, school_district, the four ACS profiles
(acs_demographic / _social / _economic /
_housing), 14 years of historical ACS, plus medicare. Each adds
1 credit. A ZIP lookup with four ACS profiles costs 5 credits total — at the
Developer tier, that’s about $0.0025.
Most Geocodio integrations migrate cleanly. JSON in, JSON out, single API key. The mapping differs by what you’re asking for — here’s a ZIP-enrichment example.
GET https://api.geocod.io/v1.12/geocode
?q=350+5th+Ave+New+York+NY+10118
&fields=acs-demographics,acs-economics,cd,state-legislature
&api_key=YOUR_KEY
# Billing: 1 address × (1 + 4 fields) = 5 lookups
GET https://api.zip-codes.com/v2/zip
?code=10118
&include=acs_demographic,acs_economic,cd,state_leg
&key=YOUR_KEY
# Billing: 1 base credit × (1 + 4 enrichments) = 5 credits
# On Developer plan: 5 credits = $0.0025
# On Geocodio PAYG (Feb 2026+): 5 lookups = $0.005
Both formulas are 1 base × (1 + N enrichments) — the difference is the
per-credit cost. If you already have the address (not the ZIP), call /v2/address
first to standardize and get the ZIP+4 (1 credit, no enrichments on this endpoint), then call
/v2/zip for the enrichment data.
Modeled at 1 enrichment flag per call (most common). Geocodio prices reflect their February 1, 2026 increase. All Zip-Codes.com prices are flat monthly.
| Monthly volume | Geocodio | Zip-Codes.com |
|---|---|---|
| 10,000 lookups | Within free tier † | Within free tier † |
| 100,000 lookups | $25 PAYG ‡ · $1,350 Unlimited | $49 Developer plan |
| 1,000,000 lookups | ~$925 PAYG · $1,350 Unlimited · $3,250+ Enterprise (US-hosted) | $499 Business plan |
† Both vendors offer a 2,500/day free tier — 10K/month spread across 30 days sits well within it on either side.
‡ Geocodio PAYG free credit is 2,500/day. At 100K spread evenly, ~25K is billable at $1.00/1K = $25. If you spike (e.g., 100K in one day), the PAYG cost is ~$97 since the daily free quota doesn’t scale.
Three workflows where we’d send you to Geocodio:
Most migrations are small — same JSON shape, single API key, no auth dance. The work is mapping their single geocode-with-fields call to our specialized endpoints. Email support@zip-codes.com if you want help mapping a specific integration. Free tier covers most evaluation and dev work.
/v2/address endpoint accepts a free-form US street
address, parses it, standardizes it, appends ZIP+4, and returns the address
components broken out with confidence and match-path signals. Fixed 1 credit
per request. The honest difference: we return the ZIP+4 centroid as the
coordinate; Geocodio returns rooftop or interpolated lat/lng. For ZIP-linked
workflows the centroid is sufficient; for rooftop precision Geocodio is the
better fit.
/v2/radius (find postal codes within N miles, with optional spatial
polygon-intersection), /v2/suggest (geographic typeahead across
cities, counties, CBSAs, FSAs, ZIPs), /v2/distance (point-to-point
distance and bearing, free timezone included), /v2/zip with 11+
optional enrichments (timezone, Census tract, CD, state-leg, school district,
ACS demographics across 14 years, Medicare), and full Canadian FSA +
6-character postal coverage as a peer to US — not as a separate
international product.
/v2/zip:
acs_demographic, acs_social,
acs_economic, acs_housing, plus historical variants
like acs_demographic_2018. Each enrichment adds 1 credit to the
call.
/quick-zip, /zip,
/radius, and /distance — up to 100 inputs per
request. Subscription required (Developer tier or higher). For larger jobs
Geocodio’s async Lists API supports 10M+ records, which is a workflow we
don’t offer — if your job is a one-time spreadsheet at that scale,
Geocodio is the better fit.
/zip, /radius, /suggest,
/distance, /address) instead of one geocode endpoint
with field appends — so calls split into endpoint per use case, but with
one credit pool. Try the
playground with the public demo key before
migrating any code. Email support@zip-codes.com
if you want help mapping your Geocodio integration.