TL;DR
Represent API by Open North lets you find all elected officials for any Canadian address or postal code. Enter a postal code and get back your Member of Parliament (federal), Member of Provincial Parliament, city councillor, school board trustee — every elected representative from all levels of government. Data includes names, party affiliations, elected offices, contact information, and links to official websites. Essential for civic engagement apps, voter information tools, and Canadian political research.
Quick start: https://represent.opennorth.ca/postcodes/K1A0A9/
No API key needed — just make a request!
https://represent.opennorth.ca/postcodes/K1A0A9/
How to Use This API
1. Lookup by Postal Code
https://represent.opennorth.ca/postcodes/V6B4Y8/
2. Lookup by Full Address
https://represent.opennorth.ca/postcodes/M5A1A1/?address=100+Queen+St+W,+Toronto,+ON
3. List All Representatives
https://represent.opennorth.ca/representatives/?limit=20
4. Filter by Office Type
https://represent.opennorth.ca/representatives/?office=mp&limit=10
5. JavaScript — Find My Reps
async function findRepresentatives(postalCode) {
const resp = await fetch(
`https://represent.opennorth.ca/postcodes/${postalCode}/`
);
const data = await resp.json();
data.representatives_centroid.forEach(rep => {
console.log(`${rep.name} — ${rep.elected_office}`);
console.log(` Party: ${rep.party_name}`);
console.log(` Email: ${rep.email}`);
console.log('---');
});
}
findRepresentatives('H2X1Y9'); // Montreal area
6. Python — Build Voter Guide
import requests
postcodes = ['V6B4Y8', 'M5A1A1', 'K1A0A9', 'H2X1Y9']
for pc in postcodes:
resp = requests.get(f'https://represent.opennorth.ca/postcodes/{pc}/')
data = resp.json()
print(f'=== {pc} ===')
for rep in data['representatives_centroid']:
office = rep['elected_office']
name = rep['name']
party = rep['party_name']
print(f' {office}: {name} ({party})')
Frequently Asked Questions
- What levels of government are covered?
- Federal (MPs, Senators), Provincial/Territorial (MPPs, MLAs, MNAs, MHAs), and Municipal (mayors, councillors, school board trustees).
- Do I need an API key?
- No. Open North's Represent API is open data and requires no authentication.
- How accurate is the boundary data?
- Represent uses official electoral boundary data from Elections Canada and provincial election agencies. Boundaries are updated after each redistribution.
- Can I search by address instead of postal code?
- Yes, pass the
addressparameter with your postal code query. The API uses the address to disambiguate which specific riding you're in when a postal code covers multiple ridings. - What information is available for each representative?
- Name, elected office, party affiliation, email, phone, website URL, photo URL, office address, and riding/district name.
- Is the data updated after elections?
- Yes. Open North actively maintains the dataset and updates it after federal, provincial, and municipal elections.
API Details
- API URL
https://represent.opennorth.ca/- Documentation
- represent.opennorth.ca
- Category
- Government
- Authentication
- Not Required
- Geographic Coverage
- Canada
What You Can Build
- Voter information tool that shows all representatives for a given address
- Civic engagement platform that helps citizens contact their elected officials
- Canadian election guide with candidate comparisons by riding
- Advocacy tool that routes users to the correct MP based on postal code
- Municipal service request app linked to the appropriate councillor