Represent Open North

Government API · Canada · Elected official lookup

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!

Officials for K1A 0A9 (Ottawa): 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 address parameter 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