A clean, structured dataset of Canadian cities, municipalities, towns, villages, and communities organized by province and territory.
This repository is designed for developers, researchers, publishers, civic technology projects, travel tools, forms, search interfaces, and applications that need a lightweight Canadian place-name dataset.
The dataset includes Canadian place names grouped by province or territory and distributed in multiple formats:
- CSV for spreadsheets, databases, and data pipelines
- JSON for web applications and APIs
- Plain-text files for simple lists and lightweight use cases
- Province and territory exports for regional filtering
The main dataset files are:
data/canadian-cities-and-municipalities.csvdata/canadian-cities-and-municipalities.json
Province and territory exports are available in:
data/by-province-territory/
This dataset is broader than a strict legal list of incorporated cities. It includes a mix of cities, towns, villages, municipalities, regional municipalities, counties, and communities where they appeared in the source material.
For that reason, the project uses the broader title Canadian Cities and Municipalities Dataset.
The municipality_type field is currently set to unclassified unless a future release verifies official municipal status and legal classification from authoritative provincial, territorial, or federal sources.
| Field | Description |
|---|---|
id |
Stable dataset identifier using country, province or territory code, and place slug. |
name |
Official or commonly used place name as represented in the dataset. |
ascii_name |
ASCII-normalized version of the place name for search and matching. |
former_name |
Former place name when included in the original source list. |
province_or_territory |
Full province or territory name. |
province_or_territory_code |
Canadian province or territory abbreviation. |
country |
Country name. |
country_code |
ISO-style country code. |
municipality_type |
Municipal or place classification. Currently unclassified. |
latitude |
Optional latitude field, left blank when not verified. |
longitude |
Optional longitude field, left blank when not verified. |
source |
Source note for the record. |
notes |
Additional context, including former names or boundary notes. |
id,name,ascii_name,former_name,province_or_territory,province_or_territory_code,country,country_code,municipality_type,latitude,longitude,source,notes
ca-on-toronto,Toronto,Toronto,,Ontario,ON,Canada,CA,unclassified,,,Original repository list, normalized for this release,{
"id": "ca-on-toronto",
"name": "Toronto",
"ascii_name": "Toronto",
"former_name": "",
"province_or_territory": "Ontario",
"province_or_territory_code": "ON",
"country": "Canada",
"country_code": "CA",
"municipality_type": "unclassified",
"latitude": "",
"longitude": "",
"source": "Original repository list, normalized for this release",
"notes": ""
}Run the validation script from the repository root:
python scripts/validate_dataset.pyThe script checks that:
- required fields are present
- province and territory codes are valid
- record identifiers are unique
- names are not duplicated within the same province or territory
- CSV and JSON records match
- latitude and longitude values are blank or numeric
This dataset can be used for:
- location dropdowns
- Canadian civic and travel tools
- autocomplete search
- data enrichment
- static websites
- open data demos
- geographic filtering
- educational projects
This dataset should not be treated as a legal authority on municipal incorporation, boundaries, population, or administrative status.
Latitude, longitude, population, and official municipal type should only be added when verified against reliable public sources.
If this dataset supports a public project, report, article, or research output, please cite it using the metadata in CITATION.cff.
The dataset is released under the MIT License. See LICENSE for details.