Geocoding — entry 079 of 80
Zippopotam.us
Zippopotam.us is a free, keyless geocoding lookup for place names: given a country code and postal/zip code it returns the place name, state/region, and latitude/longitude as JSON. It runs behind Cloudflare and now serves everything over HTTPS with an open Access-Control-Allow-Origin: * header, despite older docs still linking the plain-http form.
Zippopotam.us is a free, keyless lookup for postal codes worldwide. Send a country code and a postal or zip code, and it returns the matching place name, state or region, and coordinates as JSON. The service runs behind Cloudflare over HTTPS, with an open CORS header on every response.
GreatAPIs Score
Auth quickstart
- No API key or sign-up needed. Every request is a plain GET, and the response carries
access-control-allow-origin: *, so you can call it straight from browser JavaScript.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Look up a US zip code
GEThttps://api.zippopotam.us/us/90210
{"country": "United States", "country abbreviation": "US", "post code": "90210", "places": [{"place name": "Beverly Hills", "longitude": "-118.4065", "latitude": "34.0901", "state": "California", "state abbreviation": "CA"}]}Developer reference
Gotchas & limits
- Field names in the response body use spaces, not camelCase or snake_case:
"post code"and"place name", notpostCodeorplace_name. Your JSON parser needs bracket access (data["post code"]) rather than dot access for these fields. - A postal code with no match does not return a 404 with an error message. A live probe of
GET /us/00000returned HTTP 404 with an empty JSON body:{}. Check for an empty object rather than reading anerrorfield. - Every response, including the 404 case, carries
access-control-allow-origin: *(confirmed live on both the successful and empty-body probes above).