STA 52.52N · 13.40E
UTC 16:11:41
VER v1.0.0
UPLINK 99.98 %
A free, no-auth API
for every city,
country, and airport.
CityAPI returns 231,000+ cities, 250 countries, and 9,900+ airports as plain JSON. No signup. No keys. No paywalled pagination. Built for developers who want geographic facts, not a sales call.
// One fetch. Done. const r = await fetch( 'https://api.cityapi.org/v1/cities?search=berlin' ); const { data } = await r.json(); // data[0] { "id": 2950159, "name": "Berlin", "country_code": "DE", "population": 3769495, "latitude": 52.520008, "longitude": 13.404954, "timezone": "Europe/Berlin" }
Built like infrastructure, priced like a hobby project.
FREE
Anonymous-first
The API is open without a key. Free API keys raise your rate limit; nothing else changes. No tier-locked features. No upsell.
DATA
Pulled from the source
GeoNames for cities, OurAirports for airports, mledoze/countries for nation-state data. Refreshed monthly with daily delta checks.
DEV
Real query power
Cursor pagination. Fuzzy search via pg_trgm. Spatial queries with PostGIS. 12 languages. Field selection. Cached at the edge.
Coverage manifest
Try a URL right now.
OPEN ANY URL.
THE BROWSER WILL DO.
No SDK. No language binding. The API responds the same way to curl, your address bar, and a JS fetch call. Try this one: