Skip to main content

Cities

The /cities routes return a curated list of all cities in the world

Primary Cities

Just like countries, some cities have been selected to be considered primary. By default, the API returns all available cities, but it is possible to filter only primary cities by adding primary_only=true.

info

When to use Primary cities ?

  • In Neopolis, only primary cities should be used.
  • In Neoland all cities are used.

Get cities by ids

GET https://terra.neopolis.app/cities/findByIds?city_ids=NLD_Amsterdam,NLD_TheHague
Example Response

{
"status": "ok",
"data": [
{
"id": "NLD_Amsterdam",
"country_id": "NLD",
"name": "Amsterdam",
"region_name": "Noord-Holland",
"population": 1031000,
"latlng": {
"latitude": 52.350387797913726,
"longitude": 4.90877386838879
}
},
(...)
]
}

Get all cities contained in countries

GET https://terra.neopolis.app/cities/findByCountries?country_ids=FRA,ESP&limit=100&offset=0

Note: The limit and offset params are optional

Example Response

{
"status": "ok"
"data": [
{
"country_id": "FRA",
"id": "FRA_Agen",
"latlng": {
"latitude": 44.2005017,
"longitude": 0.6332844
},
"name": "Agen",
"population": 59000,
"region_name": "Aquitaine"
},
(...)
],
}

Get the city closest to the given land

GET https://terra.neopolis.app/cities/findByLocation?land_id=8818699b1bfffff

OR

GET https://terra.neopolis.app/cities/findByLocation?lat=45.9&lng=1.5
Example Response

{
"status": "ok"
"data": {
"country_id": "FRA",
"id": "FRA_Agen",
"latlng": {
"latitude": 44.2005017,
"longitude": 0.6332844
},
"name": "Agen",
"population": 59000,
"region_name": "Aquitaine"
},
}

info

The returned city will always be in the same country, even if there is a closer city across a border.

danger

If the landId or lat/lng are outside any country, the return value will be an empty city object with id=NO_CITY and country_id=NO_COUNTRY

Get cities by name (autocompletion)

Returns all cities who's name starts with the given token.

GET https://terra.neopolis.app/cities/findByName?token=Age&limit=10&primary_only=true
Example Response

{
"status": "ok"
"data": {
"country_id": "FRA",
"id": "FRA_Agen",
"latlng": {
"latitude": 44.2005017,
"longitude": 0.6332844
},
"name": "Agen",
"population": 59000,
"region_name": "Aquitaine"
},
}