API

Free, read-only access to everything Hear, Hear tracks — bills, MP voting records, and the rankings built on top of them. Same data the website shows, same numbers, just as JSON.

Get a key

Instant, no approval wait. One key per email address — if you've already got one, this just re-sends it rather than issuing a new one.

Using it

Pass your key as a bearer token, or as a query parameter if you just want to try an endpoint straight in a browser address bar:

curl -H "Authorization: Bearer YOUR_KEY" https://hear-hear.co.uk/api/v1/bills
https://hear-hear.co.uk/api/v1/bills?api_key=YOUR_KEY

Every key gets 2,000 requests/day, resetting at midnight UTC. Going over it gets you a 429 response for the rest of the day, not a ban — no need to email anyone, it just opens back up tomorrow.

Endpoints

GET /api/v1/bills — list tracked bills. Filter with ?topic= or ?house=Commons|Lords, page with ?limit=/?offset=.

GET /api/v1/bills/{bill_id} — one bill, with its pros/cons and real division results (aye/no/no-vote totals) where a vote's been resolved.

GET /api/v1/mps — list every current MP. Filter with ?party= or ?search=, page with ?limit=/?offset=.

GET /api/v1/mps/{mp_id} — one MP, with their voting record and whip-meter estimate.

GET /api/v1/rankings/rebels — every ranked MP's estimated party-cohesion score. ?order=rebel|loyal, ?party=.

GET /api/v1/rankings/turnout — every ranked MP's recorded-vote turnout. ?order=low|high, ?party=.

GET /api/v1/rankings/alignment — every ranked MP's alignment with their own constituents' "have your say" votes. ?order=low|high, ?party=.

GET /api/v1/rankings/interests — every MP with at least one declared financial interest on file, with our topic-match tags. ?party=, ?topic=.

GET /api/v1/briefing — the latest "this week in Parliament" summary.

Interactive API explorer (Swagger UI) → — every endpoint, with example requests you can run from the browser.

A few honesty notes that carry over from the site

Anything with a whip_meter_pct_estimate or party_cohesion_pct field is an estimate — Parliament doesn't publish real whip records, so this is how often an MP voted the same way as most of their own party, not a confirmed fact.

turnout_pct measures recorded votes cast, not chamber attendance — a low number can reflect deliberate abstention, leave, or the Commons "pairing" convention.

alignment_pct is built from Hear, Hear's own visitors in that constituency, not a scientific poll — treat it as a rough signal, not a verdict.

declared_interests is Parliament's own Register of Members' Financial Interests, unaltered. The matched_topics on each interest, and vote_overlaps, are our own automated, best-effort keyword match — not an official classification, and not a claim that any vote was influenced by an interest.

If you build something with this, a link back to hear-hear.co.uk is appreciated but not required. This is a free, independent, one-person project — there's no uptime guarantee and the rate limit may change if it's ever needed, but the intent is to keep this open.

Contains Parliamentary information licensed under the Open Parliament Licence v3.0. Hear, Hear is an independent, unofficial project — not affiliated with or endorsed by Parliament — run by one person, with no ads and no paywall. About · Privacy · Support this project ☕