For Agents
Read Canadian Parliament data — bills, votes, politicians, debates, and committees — without authentication, suitable for civic and research agents.
Use for: List recent bills before the Canadian Parliament, Get details for bill C-18, Find all votes on climate-related bills, Look up the politician with slug 'justin-trudeau'
Not supported: Does not cover provincial legislatures, election results, or campaign finance — use for Canadian federal parliamentary records only.
Jentic publishes the only available OpenAPI specification for OpenParliament Canada API, keeping it validated and agent-ready. OpenParliament.ca exposes Canadian federal Parliament data — bills, votes, politicians, debates, and committees — through a simple read-only HTTP API. Applications can list bills and pull a specific bill by identifier, browse votes, look up a politician by slug, and read transcripts of debates and committee proceedings. The API is unauthenticated and aimed at civic transparency tools, journalists, researchers, and AI agents that need a structured view of Canadian parliamentary activity.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the OpenParliament Canada API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with OpenParliament Canada API.
List bills before the Canadian Parliament with /bills/ and inspect a specific bill via /bills/{bill_id}/
Browse parliamentary votes through /votes/ to track how legislation progressed
List MPs and senators with /politicians/ and look up an individual by slug via /politicians/{politician_slug}/
Read debate transcripts from /debates/ for context on policy discussions
Inspect committee proceedings via /committees/
Build civic-tech assistants that answer questions grounded in primary parliamentary records
Patterns agents use OpenParliament Canada API for, with concrete tasks.
★ Civic Transparency Dashboard
Build a public dashboard that surfaces recent bills, votes, and debates from the Canadian Parliament by combining /bills/, /votes/, and /debates/ feeds. The dashboard can highlight new legislation, link to vote breakdowns, and embed transcript snippets — all from primary government sources. The API requires no authentication, so it can be used directly from a civic-tech site without managing keys.
Fetch /bills/ filtered to the current session, then for each bill call /votes/ to attach the most recent vote outcome and render a dashboard card.
Politician Voting Record Lookup
Answer questions about how a specific MP or senator has voted by combining /politicians/{politician_slug}/ with /votes/. Journalists, advocacy groups, and constituents can build pages that show a politician's recent votes alongside their profile, sourced from OpenParliament.ca rather than scraped from PDFs. The slug-based lookup keeps URLs stable and shareable.
Resolve the politician slug for the named MP, GET /politicians/{slug}/ for the profile, and join with recent /votes/ entries that include their vote.
Legislative Research Assistant
Power a research assistant that summarises the status and content of pending legislation by reading /bills/{bill_id}/ for the bill text and /debates/ for the discussion around it. Researchers and policy analysts can produce briefing notes faster by pulling structured data instead of navigating the parliamentary website. Committee context can be added from /committees/ where relevant.
Given a bill id, fetch /bills/{bill_id}/, retrieve associated /debates/ entries, and produce a one-paragraph status summary citing the latest action.
AI Agent Civic Assistant via Jentic
Run an agent that answers natural-language questions about Canadian Parliament — for example, 'what did my MP vote on last week' or 'what is bill C-12 about'. Jentic returns the matching OpenParliament operation by intent so the agent does not need to memorise paths or slug formats, and responses are grounded in the official record.
Search Jentic for 'list canadian parliament bills', load the GET /bills/ schema, execute filtered to the current session, and return a structured summary of the top five active bills.
7 endpoints — jentic publishes the only available openapi specification for openparliament canada api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/bills/
List bills
/bills/{bill_id}/
Retrieve a single bill
/votes/
List votes
/politicians/
List politicians
/politicians/{politician_slug}/
Retrieve a politician by slug
/debates/
List debates
/committees/
List committees
/bills/
List bills
/bills/{bill_id}/
Retrieve a single bill
/votes/
List votes
/politicians/
List politicians
/politicians/{politician_slug}/
Retrieve a politician by slug
/debates/
List debates
/committees/
List committees
Three things that make agents converge on Jentic-routed access.
Credential isolation
OpenParliament.ca requires no authentication, so there is no credential to manage. Jentic invokes the operation directly — useful when running many civic-tech queries from an agent without credential setup.
Intent-based discovery
Agents search Jentic with intents like 'list canadian parliament bills' or 'look up a canadian politician', and Jentic returns the matching OpenParliament operation with its input schema.
Time to first call
Direct OpenParliament integration: a few hours to wire HTTP calls and pagination. Through Jentic: under 15 minutes — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using OpenParliament Canada API through Jentic.
Why is there no official OpenAPI spec for OpenParliament Canada API?
OpenParliament.ca does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call OpenParliament Canada API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the OpenParliament Canada API use?
The OpenParliament.ca API is unauthenticated. The spec defines no security schemes, so requests can be made without an API key or token. When using Jentic, no credential needs to be vaulted — Jentic invokes the operation directly.
Can I look up an MP's voting record with this API?
Yes, indirectly. Use GET /politicians/{politician_slug}/ to confirm the politician and GET /votes/ to retrieve the votes feed. The votes payload includes the politicians involved, so you can filter to a specific MP's record by their slug.
What are the rate limits for the OpenParliament Canada API?
The spec does not declare numeric rate limits. Because the API is open and unauthenticated, callers should be considerate — paginate /bills/, /votes/, and /debates/ rather than scraping in tight loops, and cache results that do not change between sessions.
How do I retrieve a specific bill through Jentic?
Search Jentic for 'get a Canadian Parliament bill by id', load the GET /bills/{bill_id}/ schema, and execute with the bill identifier. With `pip install jentic` the entire flow is one search and one execute() call, and no credential handling is required.
Is the OpenParliament Canada API free?
Yes. OpenParliament.ca is an open civic-tech project and the API is free to use. There are no paid tiers exposed in the spec; please respect the project's stated usage guidance and consider supporting the project if you depend on it.
GET STARTED