Is there a free csv, xml or in some other format database of all (or least top 20-50 biggest) cities for each country in the world?

5 Answers 5


My open data project (I am a co-founder) has a free list of all the cities in the world, along with their area centroid (lat/lng), as a CSV file. It is compiled from the USGS/GNIS (US) and NGA/GNS (non-US) databases.


As an alternate source, the United Nations Statistical Division publishes an annual yearbook on world statistics. Table 8 has the population of cities > 100,000


We have a version of it converted to ur Linked CSV format/vocabulary:


METADATA (dyb2012-pop2k)

  1. (Empty)
  2. ISO 3166-1 alpha-2 country code (e.g., US => United States)
  3. National Geospatial Intelligence Agency (NGA) Geographic Name Server (GNS) Feature Code (e.g., P = Populated Place Type Feature)
  4. NGA/GNS Feature Designation Code (e.g. PPL = Populated Place (incorporated))
  5. Extended Feature Description (e.g., city, capital)
  6. Total Area in Square Kilometers
  7. ISO 639-1 language code for language that name field is in (e.g., lc = local language native to the country)
  8. Language Script for name fields (e.g., latin, arabic, chinese)
  9. Short Name (Gazetteer) for City
  10. Year of Population Statistics
  11. Total Population (e.g., within city proper)
  12. Urban Population (e.g., within agglomerated area of city)
  13. Total Male Population
  14. Total Female Population
  • how do I get top X cities for each country?
    – Incerteza
    Oct 18, 2014 at 17:58
  • @alexander - I would use the UN dataset I listed above to identify cities per country > 100K. You can use the ISO 3166-1 alpha-2 code in the UN and my datasets to aggregate records for the same country if you need to. Oct 18, 2014 at 21:06
  • I downloaded opengeocode.org/cude1.1/UN/UNSD/dyb2012-pop100k.zip but I can't get along with it, could you explain how to do that? For instance, this ,EG,P,PPL,city,,lc,latin,Aswan,2010,543,396,277,732,265,664, doesn't make sense to me.
    – Incerteza
    Oct 19, 2014 at 3:49
  • @alexander - I added the metadata to my answer. The line in question is sadly a bad data line. The dataset was generated using an older version of our ETL and did not detect commas in numbers. I regenerated/uploaded the dataset using our newer parser and verified that these lines are correct. I would download the updated version. Oct 19, 2014 at 16:08
  • 3
    Andrew, what happened to opengeocode? I get "account suspended" message when I try to download the file. I am interested in the dataset you point to and describe. Is it still available somewhere?
    – marfi
    Feb 19, 2017 at 9:53

Consider geonames, which probably has the largest collection of place names anywhere (excluding street names, which is the purview of openstreetmap.org):


From the directory above, you can download a list of "large" cities (or every single placename geonames knows about), and "readme.txt" in that directory explains further.

  • how exactly can do what I need?
    – Incerteza
    Oct 18, 2014 at 15:16

UN/LOCODE includes over 103,034 locations in 249 countries and installations in international waters. It is used by most major shipping companies, by freight forwarders and in the manufacturing industry around the world. It is also applied by national governments and in trade related activities, such as statistics where it is used by the European Union, by the UPU for certain postal services, etc.



You can query the GlobalWeather API at WebserviceX.net, specifically the GetCitiesByCountry call. You would have to input a list of country names, but these are easily obtainable.


The highest quality dataset that I've seen is Natural Earth. About 7,000 cities total so you would need to filter it down if you don't want that many


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.