Skip to content
CityAPI.ORG
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.

CONSOLE · JS 200 OK
// 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.

3 reasons
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

8 datasets

Try a URL right now.

no setup

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:

https://cityapi.org/v1/cities/2950159
CITYAPI · STATION BERLIN/DE · DATUM/2026-04-20 · BUILT BY BROTCODE Terms · Privacy · Impressum ·