Skip to content
This repository

Point or postcode to electoral district service for Canada, its provinces and municipalities

branch: master

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 contains a master Django project, documentation, and a demo app. Code for the individual components of the API is in separate packages, which this project depends on:

While the Canada site doesn't currently use it, there's a plugin project to provide colourful district map tiles:

Getting Started

The following instructions are to setup your own instance of Represent. If you just want access to data, please read our API documentation.

Follow the instructions in the Python Quick Start Guide to install Homebrew, Git, Python, virtualenv, GDAL and PostGIS.

Create a database using the PostGIS template:

createdb -h localhost boundaryservice -T template_postgis

Install the project:

mkvirtualenv represent
git clone git://
cd represent-canada
pip install -r requirements.txt

Configure the DATABASES Django setting and and create the database tables:

python syncdb
python migrate

You can launch a development server with:

python runserver

Adding Data

Download the data, and then symlink represent-canada-data into the project directory:

mkdir data
ln -s /path/to/represent-canada-data/ data/shapefiles

To load the data into the API, see the documentation for the boundaries, representatives, and postcodes packages.

International Use

Apart from the postcode component, which is optional and simple to rewrite, we've tried to avoid any Canada-specific code in this project. We hope reusing our code isn't too difficult, and would love to hear about international project using this code.


Please use GitHub Issues for bug reports, feature requests, etc. You may also contact

Something went wrong with that request. Please try again.