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

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

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://api.cityapi.org/v1/cities/2950159
CITYAPI · STATION BERLIN/DE · DATUM/2026-07-26 · BUILT BY BROTCODE Terms · Privacy · Impressum ·