Developers

Open Data API

The records behind MyMP.ca, as JSON: lobbying meetings, votes, speeches, bills, office spending and campaign money for every federal MP, plus ridings, the organizations that lobby MPs, and the leaderboards. It's free, read-only and needs no key. The files are rebuilt with the site twice a week, and any web page can call them.

Try it

curl https://mymp.ca/api/v1/mps/pat-kelly

A slice of the answer:

"lobbying": {
  "source": "Registry of Lobbyists (Office of the Commissioner of Lobbying of Canada)",
  "lifetime": { "window": "since July 2008", "meetings": 248, "organizations": 155, ... },
  "last_90_days": { "window": "90 days to 2026-10-01", "meetings": 1, "organizations": 1 },
  ...

Slugs are the ones in our page addresses: mymp.ca/mp/pat-kelly is https://mymp.ca/api/v1/mps/pat-kelly. Every response carries as_of, the date of the data behind it.

Endpoints

/api/v1
What the API serves, with every window and source.
/api/v1/mps
Every sitting MP: party, riding, province, email, ourcommons.ca profile, and the slug for the next endpoint.
/api/v1/mps/{slug}
One MP's record: lobbying meetings (since July 2008, the last 90 days, top organizations, latest meetings), speeches and topics, sponsored bills, attendance and votes with the party, the latest recorded votes, office spending by quarter, campaign money totals.
/api/v1/ridings
All 343 ridings by Elections Canada code, with the sitting MP, or null while the seat is vacant.
/api/v1/organizations
Every organization with five or more MP meetings since January 2024.
/api/v1/organizations/{slug}
One organization: which MPs and parties it met, on what, through which firms, and every meeting since 2024.
/api/v1/leaderboards/{board}
One leaderboard, the same rows and window as its page. Boards: most-active-lobbyists, revolving-door, most-lobbied-senators, campaign-donations, mp-expenses, committee-witnesses, testified-and-lobbied.
/api/v1/openapi.json
An OpenAPI 3.1 description, for code generators and AI tools (ChatGPT actions, Claude tools, agents).

Keep the window

Every figure comes with its source and the period it covers: lobbying meetings since July 2008, speeches since January 2021, bills since 2001, office spending since April 2021. A count is never a career total. When you quote one, keep its window, as in “Pat Kelly has had 248 lobbying meetings since July 2008, according to Registry of Lobbyists data compiled by MyMP.ca.” How each measure is built, including which lobbying records are left out, is on the methodology page; freshness and gaps are on data status.

What isn't in it

  • Ethics Commissioner filings (disclosure summaries, gifts, sponsored travel). The Commissioner allows non-commercial reuse only, and an open API can't control who uses it, so these stay on the MP pages.
  • Postal-code lookups. A postal code in a request address ends up in server logs. People can look up their MP at mymp.ca/find-my-mp.
  • Donor names. Campaign money is totals only: contributions over $200, the ones Elections Canada itemizes.

Terms

  • Use it freely, with credit: “Data: MyMP.ca, from [the primary source named with the figure].” A link to mymp.ca is appreciated.
  • The underlying records belong to their sources, which set their own terms: the Registry of Lobbyists (Office of the Commissioner of Lobbying of Canada), the House of Commons, Elections Canada, and OpenParliament.ca. Check theirs before commercial use.
  • Don't present the data as endorsed by MyMP.ca or by any of its sources.
  • The files change twice a week, so cache them. There's no rate limit for now; if you plan heavy use, email us first.
  • The v1 fields won't be removed or renamed. New fields may appear.

Updates and contact

New House votes, new bills and new leaderboards are in the RSS feed. Questions, a dataset you'd like added, or something that looks wrong: email hello@mymp.ca. Journalists can also ask for custom pulls; see the press page.