STA 52.52N · 13.40E
UTC 11:34:09
VER v1.0.0
UPLINK 99.98 %
A free, no-auth API
for every city,
country, and airport.
CityAPI returns 185,000 cities, 250 countries, and 40,000 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://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: