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.
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.
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.
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.
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 ☕