Digital electoral boundary files for Canada, its provinces and municipalities
Python Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Represent API: Data

Represent is the open database of Canadian elected officials and electoral districts. It provides a REST API to boundary, representative, and postcode resources.

This repository stores the digital boundary files for the database. The represent-canada repository is what's running at


Open North has permission to redistribute all datasets in this repository. Please read the overall license and the LICENSE.txt file in each directory to know your rights. In some cases, you will not have permission to redistribute the dataset.

Data Quality


All datasets are from government sources, with one exception: the postal codeOM dataset in the postcodes/fed directory is from (Canada Post has sued for distributing this file.) The files will have more details on sources and any modifications made to the files. Postal CodeOM is an official mark of Canada Post Corporation.


We do not have permission to redistribute every dataset available through the Represent API. For example, we do not have permission from the Government of Ontario to distribute its boundary file and postal codeOM concordance file (no longer available). You must download these files separately from Elections Ontario. You may then use the file we provide to load it into the database.


One-time setup

# Invoke must not be installed globally.
pip uninstall invoke
# Create a virtual environment.
mkvirtualenv representdata
# Install the requirements.
pip install -r requirements.txt

Regular tasks

Load the virtual environment:

workon representdata

Check that all files are valid:

invoke definitions

Check that the source, data and license URLs work:

invoke urls

Check that all data directories contain a LICENSE.txt:

invoke licenses

Update any out-of-date shapefiles:

invoke shapefiles

Or update a specific shapefile:

invoke shapefiles --base=boundaries/ocd-division/country:ca/province:qc

Fix file permissions:

invoke permissions

Check if the data request process spreadsheet is out-of-date:

invoke spreadsheet

Or less verbose:

invoke spreadsheet --base=. --private-base=../represent-canada-data-private > /dev/null


Please use GitHub Issues for bug reports. You may also contact


We would like to express our gratitude to Kent Mewhort at the Canadian Internet Policy and Public Interest Clinic (CIPPIC), whose legal research (PDF) made it possible for this repository to be made public.