Full Database of city state country available in JSON, MYSQL, PSQL, SQLITE, SQLSERVER, XML, YAML, MONGODB & CSV format. All Countries, States & Cities are Covered & Populated with Different Combinations & Versions.
- β Most Comprehensive - 151,024+ cities from 250 countries with timezone & multilingual support (19 languages)
- β Multiple Integration Options - NPM/PyPI packages, REST API, Export Tool, or direct downloads
- β Production Ready - Trusted by thousands of developers, monthly updates
- β Every Format You Need - JSON, SQL, MongoDB, CSV, XML, YAML - use what fits your stack
- β 100% Free & Open Source - ODbL licensed, no usage restrictions, developer-friendly
Save hundreds of hours collecting and maintaining geographical data. Get accurate, structured, ready-to-use data right now.
π¦ Clone Tip: Use
git clone --depth 1for faster cloning (~1.2GB vs 5.4GB full history)
- CSC Platform Ecosystem β’ Integration Methods β’ Official Packages
- API β’ Export Tool β’ Available Formats
- Demo β’ Insights β’ Architecture
- Performance β’ License β’ Contributing
- Platforms β’ Support
Easily access all the tools and services in the Countries States Cities platform:
| Tool | Description | Link |
|---|---|---|
| NPM Package | Official JavaScript/TypeScript package | @countrystatecity/countries |
| Documentation | Complete API documentation and guides | docs.countrystatecity.in |
| Demo Database | Browse the full database online | demo.countrystatecity.in |
| API Service | Programmatic access to countries, states, cities | countrystatecity.in |
| Export Tool | Export data in multiple formats | export.countrystatecity.in |
| Update Tool | Submit and track data change requests | manager.countrystatecity.in |
| Status Page | Real-time service uptime and incidents | status.countrystatecity.in |
| Method | Setup | Best For | Offline | Cost |
|---|---|---|---|---|
| NPM/PyPI Package | < 1 min | JS/TS/Python apps, offline use | β | Free |
| REST API | < 5 min | Production apps, real-time data, any language | β | Free tier + paid |
| Export Tool | < 2 min | Custom datasets, specific regions | β | Free + credits |
| Direct Download | Immediate | SQL databases, one-time imports, legacy systems | β | Free |
npm install @countrystatecity/countriesFeatures: Zero dependencies, TypeScript support, offline-first, tree-shakeable
import { Country, State, City } from '@countrystatecity/countries';
const usStates = State.getStatesOfCountry('US');π NPM Documentation Β· π GitHub
pip install countrystatecityFeatures: Easy-to-use Python interface, works with Django/Flask, offline data access
from countrystatecity import Country, State, City
us_states = State.get_states_of_country('US')π PyPI Package Β· π GitHub
Dedicated timezone data package for JavaScript/TypeScript applications:
npm install @countrystatecity/timezonesπ GitHub Repository
π Introducing REST API for Countries States Cities Database.
Export Tool - Convert and download data in your preferred format
Features: Multiple formats, flexible selection, custom filtering by region/country, bulk downloads, real-time processing
- JSON
- MYSQL
- PSQL
- SQLITE
- SQLSERVER
- MONGODB
- XML
- YAML
- CSV
Note: DuckDB format is available via manual conversion from SQLite files. See the Export to DuckDB section for instructions.
| File | JSON | MYSQL | PSQL | SQLITE | SQLSERVER | MONGODB | XML | YAML | CSV |
|---|---|---|---|---|---|---|---|---|---|
| Regions | β ποΈ | β ποΈ | β | β | β | β | β ποΈ | β | β ποΈ |
| Subregions | β ποΈ | β ποΈ | β | β | β | β | β ποΈ | β | β ποΈ |
| Countries | β ποΈ | β ποΈ | β | β | β | β | β ποΈ | β | β ποΈ |
| States | β ποΈ | β ποΈ | β | β | β | β | β ποΈ | β | β ποΈ |
| Cities | β ποΈ | β ποΈ | β | β | β | β | β ποΈ | β | β ποΈ |
| Country+States | β ποΈ | NA | NA | NA | NA | NA | NA | NA | NA |
| Country+Cities | β ποΈ | NA | NA | NA | NA | NA | NA | NA | NA |
| Country+State+Cities/World | β ποΈ | β ποΈ | β | β | β | β | NA | NA | NA |
Legend: β = Available | ποΈ = Compressed (.gz) version also available
https://dr5hn.github.io/countries-states-cities-database/
Total Regions : 6
Total Sub Regions : 22
Total Countries : 250
Total States/Regions/Municipalities : 5,038
Total Cities/Towns/Districts : 151,024
Total Timezones : 423 (97.9% IANA coverage)
Last Updated On : 18th Oct 2025
Two-phase build system: JSON (version control) β MySQL (canonical) β All export formats
π contributions/ β [Python Import] β ποΈ MySQL β [PHP Export] β π¦ json/, csv/, xml/, sql/, etc.
For Contributors: Edit JSON files in contributions/ β Submit PR β GitHub Actions auto-generates all exports (no local setup needed!)
For Maintainers: MySQL as single source of truth, dynamic schema detection, one command to regenerate all formats
For Users: All formats guaranteed in sync, compressed downloads available (.gz)
How to import MongoDB database?
# First extract the tar.gz file
tar -xzvf world-mongodb-dump.tar.gz
# Then restore the MongoDB dump
mongorestore --host localhost:27017 --db world mongodb-dump/worldWant to export the database to DuckDB format? You can easily convert the existing SQLite files to DuckDB format using our conversion script.
First, install DuckDB Python package:
pip install duckdbUse the provided conversion script to convert SQLite files to DuckDB format:
# Convert the complete world database
python3 bin/scripts/export/import_duckdb.py --input sqlite/world.sqlite3 --output duckdb/world.db
# Convert individual table databases
python3 bin/scripts/export/import_duckdb.py --input sqlite/regions.sqlite3 --output duckdb/regions.db
python3 bin/scripts/export/import_duckdb.py --input sqlite/subregions.sqlite3 --output duckdb/subregions.db
python3 bin/scripts/export/import_duckdb.py --input sqlite/countries.sqlite3 --output duckdb/countries.db
python3 bin/scripts/export/import_duckdb.py --input sqlite/states.sqlite3 --output duckdb/states.db
python3 bin/scripts/export/import_duckdb.py --input sqlite/cities.sqlite3 --output duckdb/cities.dbThe conversion script will create DuckDB database files that maintain the same structure and data as the original SQLite files, optimized for analytical workloads.
| Format | Export Time | World DB Size | Compressed (.gz) |
|---|---|---|---|
| CSV | ~1s | 45 MB | 9 MB (fastest) |
| JSON | ~4s | 161 MB | 18 MB |
| MongoDB | ~1s | 140 MB | - |
| SQL | ~3s | 180 MB | 22 MB |
| SQLite | ~45s | 85 MB | - |
| XML | ~9s | 220 MB | 15 MB |
| YAML | ~17s | 195 MB | - |
- Countries: ~50ms | States: ~180ms | Cities by State: ~80ms | Search: ~120ms
- Contributors: Git + text editor (no local setup needed)
- Maintainers: PHP 8.0+, MySQL 5.7+, Python 3.8+, 4GB RAM, 10GB disk
- End Users: No requirements - just download!
Open Database License (ODbL) - 100% free and open source!
β Use commercially, modify freely, share openly β’ π Just give credit and keep derivatives open
Quick Attribution:
Data by Countries States Cities Database
https://github.com/dr5hn/countries-states-cities-database | ODbL v1.0
π οΈ Easy Way: CSC Update Tool
Use our web tool to browse, search, and submit data change requests with a streamlined review process.
- Fork & clone:
git clone --depth 1 https://github.com/YOUR_USERNAME/countries-states-cities-database.git - Edit files in
contributions/directory (cities, states, or countries) - Omit
id,created_at,updated_at,flagfields (auto-managed) - Include required fields:
name,state_id,state_code,country_id,country_code,latitude,longitude - Submit PR with clear description and data source
Example city:
{
"name": "San Francisco",
"state_id": 1416,
"state_code": "CA",
"country_id": 233,
"country_code": "US",
"latitude": "37.77493",
"longitude": "-122.41942",
"timezone": "America/Los_Angeles"
}π Full guide: contributions/README.md | Contribution Guidelines
Note: Only edit JSON in contributions/ - GitHub Actions auto-generates all export formats!
As always, thanks to our amazing contributors!
Made with contrib.rocks.
Contribute towards better earth buy the world a tree
Find and use this dataset across the web - choose the platform that fits your workflow:
| Platform | Best For | Access |
|---|---|---|
| π Kaggle Dataset | Data science, ML projects, notebooks | Download on Kaggle |
| ποΈ Data.world | Data collaboration, business analytics | View on Data.world |
| π¦ NPM Registry | JavaScript/TypeScript developers | npm install @countrystatecity/countries |
| π GitHub | Contributors, raw files, issue tracking | View Repository |
| π API Service | Production apps, real-time access | Get API Key |
| π οΈ Export Tool | Custom exports, specific formats | Launch Tool |
| π Status Page | Service uptime monitoring, incidents | Check Status |
Suggestions & Feedbacks are Most Welcome
gadadarshan[at]gmail[dot]com
While we strive for accuracy, this community-maintained database may contain errors or not reflect latest geopolitical changes. Users should verify critical data with official sources and use at their own discretion. Licensed under ODbL - see LICENSE for details.
Report issues: GitHub Issues
That's all Folks. Enjoy! π



