The Pollster Audit API powers PollsterAudit.ca by providing a clean, public dataset of Canadian opinion polling, updated hourly and accessible at api.pollsteraudit.ca.
Polling shapes public perception and political strategy—yet the data is often scattered, messy, or hidden. This API collects, structures, and publishes historical and current Canadian election polling data to make it more transparent and accessible for everyone: researchers, journalists, and citizens alike.
🛠️ As with all Pollster Audit tools, this API is fully open-source because transparency should apply not only to pollsters—but to those who hold them accountable.
The API is hosted live at: https://api.pollsteraudit.ca
Main endpoints:
/v1/index.json– Index of all available polling data/v1/citations.json– Contains all citations used within this dataset/v1/parties.json– Contains information about all the parties found within the dataset/v1/pollsters.json– Contains information about all pollsters found within the dataset
The API is automatically regenerated every hour via GitHub Actions, and served from the api branch.
- 🗳️ Wikipedia (English): We currently parse data from Wikipedia’s electoral opinion polling pages for Canada.
- 🧪 Federal polling only for now (national voting intention).
- 🌎 Plans for expansion:
- Provincial-level polling
- Issue-based and leadership polling
- Direct parsing from pollster websites (less reliance on third parties)
- Automatically updating wikipedia with polls from credible sources
We prioritize verifiable and transparent sources and aim to include citations for all polling data.
That's why we currently use Wikipedia as our main data source. The contributors on those pages put a lot of work into maintaining them and following wikipedia's guidelines. Resulting in unbiased polls with full coverage. One of our long-term goals is to automate a lot of the work done by these superstars.
To run the API locally:
-
Clone the repo
git clone https://github.com/PollsterAudit/PollsterAuditApi.git cd PollsterAuditApi -
Install dependencies
npm install
-
Run the data collection
npm start
This will generate the ./output folder locally, which mirrors what gets published at api.pollsteraudit.ca.
Translation support for the API landing pages hasn't been implemented yet.
This API is part of the larger bilingual PollsterAudit project.
We are always working on improving the service, and adding translations to these pages is something we plan on implementing later.
We welcome contributions from:
- Developers (parsers, validators, API improvements, etc...)
- Researchers (suggesting data sources, structures, and extra data we should process)
- Citizens (flagging errors or omissions)
To contribute:
- Fork the repo
- Create a branch
- Submit a pull request
Check out open issues or open a new one to suggest features or report bugs.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See LICENSE for full details.
All raw data comes from public sources. Use it freely, but cite responsibly.
Have questions or suggestions?
- 📧 Email: contact@pollsteraudit.ca
- 👾 Discord: https://discord.gg/6grVnjE3DC
- 💬 Github Discussions: https://github.com/PollsterAudit/PollsterAuditApi/discussions
Polling data is public information—but it's often buried in PDFs, websites, or behind paywalls. This API makes Canadian polling more structured, searchable, and verifiable for everyone.
Let’s make election data as transparent as the decisions it’s meant to inform.