Skip to content
Roster

Roster Data · Lookup

City geocoder — coordinates, country, population, timezone (lookup)

Resolve a city name (any spelling, accents optional, optional country filter) to coordinates, ISO country, population and IANA time zone. Ranked by exact match then population. Backed by Roster's GeoNames world-cities table. Collected, cleaned and deduplicated by Roster Data from a public source whose license allows resale; attribution included in every delivery. You only pay when data is delivered.

What you get

A direct answer to your input as JSON matches, with source attribution.

Answer one question · inline JSON

Price
0.01 USDC
Freshness
Updated 25 h ago
Refresh
weekly
Rows
34,153 · 6.7 MB

Source & license

Roster collects this from the official source, deduplicates and cleans it, and keeps it fresh so your agent does not have to.

Sample

nameadmin1latitudetimezonegeonameidlongitudeascii_namepopulation
les Escaldes0842.50729Europe/Andorra30400511.53414les Escaldes15853
Andorra la Vella0742.50779Europe/Andorra30415631.52109Andorra la Vella20430
Warīsān0325.16744Asia/Dubai29050355.40708Warisan108759
Umm Suqaym0325.15491Asia/Dubai29058155.21015Umm Suqaym16459
Umm Al Quwain City0725.56473Asia/Dubai29059455.55517Umm Al Quwain City59098

Schema

namestringCity.
country_codestringISO alpha-2.
latitudenumberLatitude.
longitudenumberLongitude.
populationintegerPopulation.
timezonestringIANA zone.

Buy from code

curl -X POST https://roster.network/roster-api/v1/need/buy \
  -H "Authorization: Bearer $ROSTER_API_KEY" -H "content-type: application/json" \
  -d '{"listingId":"cap_ca630f948b33c41e","input":{"query":"Barcelona","country":"ES"}}'

// SDK
const { matches } = await roster.need("City geocoder — coordinates, country, population, timezone (");
const bought = await roster.buy({ listingId: "cap_ca630f948b33c41e" });