Election data API and downloads
Every election, result, candidate, area and insight we hold, from 1889 to 2026, as JSON or CSV. Start free with a registered key.
Get a free API key · OpenAPI spec · Data terms
Plans
Prices exclude VAT. A yearly plan costs the same as 10 months.
| Plan | Price | Calls | What's included |
|---|---|---|---|
| Free | £0 | 2,000 a month, 100 a day, 10 a minute | All results, elections, areas and candidates; Headline insight figures; Credit to Psephology.ai required |
| Starter | £29/month or £290/year | 25,000 a month, 60 a minute | Everything in Free; Candidate histories with person IDs; All insight endpoints in full; Current ONS boundaries |
| Pro | £99/month or £990/year | 150,000 a month, 300 a minute | Everything in Starter; By-election tracker alerts; Bulk endpoints (500 rows a page); Monthly full-archive CSV |
| Business | £299/month or £2,990/year | 750,000 a month, 1000 a minute | Everything in Pro; Right to redistribute data and insights in your own products; Priority capacity on results days |
| Enterprise | From £5,000/year | Custom | Live results-night feed, SLA, custom licence. Ask for a quote. |
Discounts: 50% off for registered charities, students and unpaid individuals. Journalists and academics get Starter free. Apply from your dashboard; we check each application by hand.
Getting started
- Create an account and a key on your dashboard. We show the key once, so copy it then.
- Send it in the
x-api-keyheader on every request.
curl -H "x-api-key: psk_your_key" \
"https://psephology.ai/api/public/v1/elections?year=2024&limit=5"
curl -H "x-api-key: psk_your_key" \
"https://psephology.ai/api/public/v1/areas?type=ward&q=Shepshed"Base address: https://psephology.ai/api/public/v1
Endpoints
| Request | What it returns | Plan |
|---|---|---|
GET /elections?type=&year= | List elections, newest first. | Free |
GET /elections/{slug} | One election with seat and vote totals by party and council. | Free |
GET /elections/{slug}/results?council=&ward= | Every result row, optionally narrowed to a council or ward. | Free (person IDs on Starter+) |
GET /areas?type=ward|council|constituency&q= | Search areas. | Free |
GET /areas/{slug} | One area with its parent and children, plus boundary start and end dates. | Free |
GET /areas/{slug}/history | Every contest held in an area, with turnout and margin. | Free |
GET /candidates?q= | Search candidates. | Free |
GET /candidates/{slug} | A candidate's results. Starter+ gets the full person-level history across name variants, with person ID. | Free / Starter+ |
GET /parties and /parties/{slug} | Parties and a party's record. | Free |
GET /insights/local-election-proxy/{constituency} | Local-election estimate for a Westminster seat. | Headline free, full Starter+ |
GET /insights/bucking-the-trend/{council} | Where a council moved against the national swing. | Headline free, full Starter+ |
GET /insights/byelections?days=90 | By-election tracker: average share and change by party. | Headline free, rows Starter+ |
GET /boundaries/{area} | Current boundary as GeoJSON. | Starter+ |
Areas, elections, candidates and parties can be named by their slug (as in our page addresses) or their ID. Lists take ?limit (up to 100, or 500 on Pro and Business) and ?cursor; use the next_cursor from one page to get the next.
Limits
Limits apply per account across all its keys. Going over returns HTTP 429 with a plain message saying which limit was hit and a link to upgrade. There are no surprise overage charges. Each response tells you how much of this month's allowance you've used (x-ratelimit-used-month).
Credit
Every response includes a credit field, and every CSV starts with the same line:
Data: Psephology.ai (psephology.ai). Includes data from Democracy Club (CC BY 4.0) and other public sources.
Please show it wherever you use the data. We don't serve candidate photos or party logos through the API.
CSV downloads
| Download | Price |
|---|---|
| A single contest, or one election's summary table | Free, no account |
| Council history pack (every election in one council) | £19 |
| Election pack (every result in one election) | £49, or £29 if over 10 years old |
| Full archive, 1889 to 2026 (one file per year) | £499 one organisation, or £1,499/year with redistribution rights |
Look for "Download CSV" on election and council pages. Pro and Business plans include the full archive.
