UK Parliament
App · 20 actions
Follow the UK Parliament: find MPs and Lords, how to contact them and what they have declared, see how they voted, track bills with their stages, documents and amendments, read written questions, answers and ministerial statements, check committees and their meetings, and search what was said in Hansard. No account or API key is required.
Actions
| Action | What it does |
|---|---|
| Find a constituency and its MP | Find a constituency by name, or the one a postcode is in, with the MP who represents it now. |
| Find MPs and Lords | Find members of the House of Commons or the House of Lords by name, party or constituency: their party, seat, when they joined and whether they still sit. |
| Get a member's career | Get the government and opposition posts, committee memberships, parties and constituencies an MP or Lord has held, newest first, and the posts they hold now. |
| Get bill | Get a bill's details: its long title, sponsors, current stage, every stage it has been through in each House with the dates, and its published documents newest first (each version of the bill, explanatory notes, amendment papers, impact assessments), with links to read them. |
| Get committee | Get a select or joint committee: what it scrutinises, how to contact it, its chair and its current members. |
| Get debate transcript | Get a debate from Hansard: everything said, in order, with who said it and when, the list of speakers, and the whole transcript as one text. |
| Get election result | Get the latest election result in a constituency: the winner, majority, turnout, and every candidate's votes and share. |
| Get how a member voted | Get an MP's or Lord's voting record, newest first: each division, how they voted and whether it passed. |
| Get MP or Lord | Get an MP's or Lord's profile: party, seat, status, a one-line summary, and how to contact them (email, phone, office addresses, website). |
| Get party seat counts | Get how many seats each party holds in the Commons or the Lords, today or on a past date, largest first, with the split between men and women. |
| Get vote result | Get one vote (division): the result, how every member voted, and the numbers for and against from each party. |
| Get written question | Get a written question in full with the government's answer, who answered and when. |
| Get written statement | Get a written ministerial statement in full. |
| List bill amendments | List the amendments tabled to a bill at one stage, with who proposed them and what happened to them. |
| List committee meetings | List committee meetings in date order, from today unless you pick a date: evidence sessions, private meetings and visits, with the inquiry, room and time. |
| Search bills | Find bills by title, session, House, status, type or sponsor, most recently updated first: where each one is now and its page on bills.parliament.uk. |
| Search Hansard | Search Hansard, the official record of what is said in Parliament, newest first: find whole debates, or each thing said, by one MP or Lord or by anyone, with the debate it was in. |
| Search votes | Find the votes (divisions) held in the Commons or the Lords, newest first, by words in the title or by date: the result and the numbers on each side. |
| Search written questions | Find written questions MPs and Lords have put to the government, newest first, with the start of each answer. |
| Search written statements | Find written statements ministers have made to Parliament, newest first, by words, House, minister, department and date. |
Find a constituency and its MP
Find a constituency by name, or the one a postcode is in, with the MP who represents it now.
Inputs
- Constituency name or postcode
querytextRequired - A constituency's name (or part of it), or a full UK postcode.
Outputs
constituencieslistconstituencyobjectconstituency_countnumberquerytext
Example output
{
"constituencies": [
{
"abolished_on": null,
"constituency_id": 4140,
"created_on": "2024-05-31",
"mp_id": 4031,
"mp_name": "Rachel Reeves",
"mp_party": "Labour",
"mp_since": "2010-05-06",
"name": "Leeds West and Pudsey",
"url": "https://members.parliament.uk/constituency/4140/overview"
}
],
"constituency": {
"abolished_on": null,
"constituency_id": 4140,
"created_on": "2024-05-31",
"mp_id": 4031,
"mp_name": "Rachel Reeves",
"mp_party": "Labour",
"mp_since": "2010-05-06",
"name": "Leeds West and Pudsey",
"url": "https://members.parliament.uk/constituency/4140/overview"
},
"constituency_count": 1,
"query": "LS13 2ET"
}Find MPs and Lords
Find members of the House of Commons or the House of Lords by name, party or constituency: their party, seat, when they joined and whether they still sit.
Inputs
- Name
nametext - All or part of the member's name.
- House
housetext - Only members of this House. Leave empty for both.One of:
commons(House of Commons),lords(House of Lords). - Party
partytext - Only members of this party. Leave empty for all.
- Constituency or place
constituencytext - Only MPs whose constituency matches this name or place, for example Leeds.
- Current members only
current_onlytrue/false - Leave ticked to skip people who no longer sit.Default:
true. - Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
member_countnumbermemberslisttotal_countnumber
Example output
{
"member_count": 1,
"members": [
{
"constituency": "Leeds West and Pudsey",
"constituency_id": 4140,
"full_title": "Rt Hon Rachel Reeves MP",
"gender": "F",
"house": "Commons",
"is_current": true,
"left_on": null,
"left_reason": null,
"list_as": "Reeves, Rachel",
"member_from": "Leeds West and Pudsey",
"member_id": 4031,
"member_since": "2010-05-06",
"name": "Rachel Reeves",
"party": "Labour",
"party_abbreviation": "Lab",
"party_id": 15,
"profile_url": "https://members.parliament.uk/member/4031/contact",
"status": "Current member",
"thumbnail_url": "https://members-api.parliament.uk/api/Members/4031/Thumbnail"
}
],
"total_count": 1
}Get a member's career
Get the government and opposition posts, committee memberships, parties and constituencies an MP or Lord has held, newest first, and the posts they hold now.
Inputs
- Member
membertextRequired - An MP's or Lord's name, for example Rachel Reeves, or their member id from an earlier step.
Outputs
committeeslistconstituencieslistcurrent_postslistelections_contestedlistgovernment_postslisthousetexthouse_membershipslistmember_idnumbernametextopposition_postslistother_postslistpartieslist
Example output
{
"committees": [
{
"from": "2015-10-26",
"name": "Treasury Committee",
"to": "2017-05-03"
}
],
"constituencies": [
{
"from": "2024-07-04",
"name": "Leeds West and Pudsey",
"note": "Elected 1 time",
"to": null
}
],
"current_posts": [],
"elections_contested": [
{
"constituency": "Bromley and Chislehurst",
"date": "2005-05-05"
}
],
"government_posts": [
{
"department": "HM Treasury",
"from": "2024-07-05",
"title": "Chancellor of the Exchequer",
"to": "2026-07-20"
}
],
"house": "Commons",
"house_memberships": [
{
"from": "2010-05-06",
"house": "Commons",
"to": null
}
],
"member_id": 4031,
"name": "Rachel Reeves",
"opposition_posts": [
{
"department": "HM Treasury",
"from": "2021-05-09",
"title": "Shadow Chancellor of the Exchequer",
"to": "2024-05-30"
}
],
"other_posts": [],
"parties": [
{
"from": "2010-05-06",
"name": "Labour",
"to": null
}
]
}Get bill
Get a bill's details: its long title, sponsors, current stage, every stage it has been through in each House with the dates, and its published documents newest first (each version of the bill, explanatory notes, amendment papers, impact assessments), with links to read them.
Inputs
- Bill id
bill_idtextRequired - The bill's id, from 'Search bills' or the bill's page address.
- Document type
document_typetext - Only list documents of this kind. Leave empty for all.
Outputs
bill_idnumberbill_typetextcurrent_housetextcurrent_stagetextcurrent_stage_datetextcurrent_stage_housetextdocument_countnumberdocumentslistformer_titletextis_acttrue/falseis_defeatedtrue/falselast_updatedtextlatest_stage_idnumberlong_titletextoriginating_housetextsession_idnumbersponsorsliststage_countnumberstageslistsummarytexttitletexturltextwithdrawn_ontext
Example output
{
"bill_id": 4065,
"bill_type": "Government bill",
"current_house": "Lords",
"current_stage": "Report stage",
"current_stage_date": "2026-10-20",
"current_stage_house": "Lords",
"document_count": 1,
"documents": [
{
"date": "2026-06-23",
"document_id": 66879,
"house": "Lords",
"links": [
{
"content_type": "text/html",
"title": "HL Bill 36 Explanatory Notes",
"url": "https://publications.parliament.uk/pa/bills/lbill/59-02/036/en/5902036en01.htm"
}
],
"title": "HL Bill 36 Explanatory Notes",
"type": "Explanatory Notes",
"url": "https://publications.parliament.uk/pa/bills/lbill/59-02/036/en/5902036en01.htm"
}
],
"former_title": null,
"is_act": false,
"is_defeated": false,
"last_updated": "2026-10-15T18:38:44",
"latest_stage_id": 21073,
"long_title": "A Bill to continue the Armed Forces Act 2006; to amend that Act and other enactments relating to the armed forces; and for connected purposes.",
"originating_house": "Commons",
"session_id": 39,
"sponsors": [
{
"house": "Commons",
"member_from": "Rawmarsh and Conisbrough",
"member_id": 400,
"name": "John Healey",
"organisation": "Ministry of Defence",
"party": "Labour"
}
],
"stage_count": 1,
"stages": [
{
"dates": [
"2026-09-02",
"2026-09-08"
],
"first_date": "2026-09-02",
"house": "Lords",
"last_date": "2026-09-08",
"stage": "Committee stage",
"stage_id": 21073
}
],
"summary": null,
"title": "Armed Forces Bill",
"url": "https://bills.parliament.uk/bills/4065",
"withdrawn_on": null
}Get committee
Get a select or joint committee: what it scrutinises, how to contact it, its chair and its current members.
Inputs
- Committee
committeetextRequired - The committee. Pick a current one, or type a former committee's name or id.
Outputs
addresstextcategorytextchairtextchair_idnumbercommittee_idnumberemailtextended_ontexthousetextis_currenttrue/falsemember_countnumbermemberslistnametextphonetextpurposetextstarted_ontextsub_committeeslisturltext
Example output
{
"address": "Treasury Committee, House of Commons, London, SW1A 0AA",
"category": "Select",
"chair": "Dame Meg Hillier",
"chair_id": 1524,
"committee_id": 158,
"email": "treascom@parliament.uk",
"ended_on": null,
"house": "Commons",
"is_current": true,
"member_count": 1,
"members": [
{
"house": "Commons",
"is_chair": true,
"is_lay_member": false,
"member_from": "Hackney South and Shoreditch",
"member_id": 1524,
"name": "Dame Meg Hillier",
"party": "Labour",
"role": "Chair",
"since": "2024-09-09"
}
],
"name": "Treasury Committee",
"phone": null,
"purpose": "The Treasury Committee is appointed by the House of Commons to examine the expenditure, administration and policy of HM Treasury, HM Revenue & Customs, and associated public bodies.",
"started_on": "1995-11-15",
"sub_committees": [
"Treasury Sub-Committee on Financial Services Regulations"
],
"url": "https://committees.parliament.uk/committee/158/"
}Get debate transcript
Get a debate from Hansard: everything said, in order, with who said it and when, the list of speakers, and the whole transcript as one text.
Inputs
- Debate id
debate_idtextRequired - The debate's id, from 'Search Hansard'.
Outputs
contribution_countnumbercontributionslistdatetextdebate_idtexthousetextlocationtextnext_debate_idtextprevious_debate_idtextspeaker_countnumberspeakerslisttitletexttranscripttexturltext
Example output
{
"contribution_count": 1,
"contributions": [
{
"member_id": 5086,
"section": null,
"speaker": "Josh Babarinde (Eastbourne) (LD)",
"text": "Debate and discussion about issues of benefits, entitlements and calculations can often be relegated to the mere spreadsheet.",
"time": "19:17"
}
],
"date": "2026-10-14",
"debate_id": "A4DB6C7A-96F5-440E-BAC2-A0FCD94A32B6",
"house": "Commons",
"location": "Commons Chamber",
"next_debate_id": "4E08AD9E-E335-45CD-AC13-6C712E40BD08",
"previous_debate_id": "358C14D9-E879-4EDC-81FE-A31F49DBF7F9",
"speaker_count": 1,
"speakers": [
{
"contributions": 1,
"member_id": 5086,
"name": "Josh Babarinde (Eastbourne) (LD)"
}
],
"title": "Benefit Entitlements: War Pension and Armed Forces Compensation",
"transcript": "Josh Babarinde (Eastbourne) (LD): Debate and discussion about issues of benefits, entitlements and calculations can often be relegated to the mere spreadsheet.",
"url": "https://hansard.parliament.uk/Commons/2026-10-14/debates/A4DB6C7A-96F5-440E-BAC2-A0FCD94A32B6/BenefitEntitlementsWarPensionAndArmedForcesCompensation"
}Get election result
Get the latest election result in a constituency: the winner, majority, turnout, and every candidate's votes and share.
Inputs
- Constituency
constituencytextRequired - The constituency's name, a postcode in it, or its id from an earlier step.
Outputs
candidateslistconstituencytextconstituency_idnumberelectiontextelection_datetextelectoratenumberis_general_electiontrue/falsemajoritynumberresulttextturnoutnumberturnout_percentnumberwinnertextwinning_partytext
Example output
{
"candidates": [
{
"change": "0.9%",
"member_id": null,
"name": "Rachel Reeves",
"party": "Labour",
"vote_share_percent": 49.3,
"votes": 18976
}
],
"constituency": "Leeds West and Pudsey",
"constituency_id": 4140,
"election": "2024 General Election",
"election_date": "2024-07-04",
"electorate": 70069,
"is_general_election": true,
"majority": 12392,
"result": "Lab Hold",
"turnout": 38494,
"turnout_percent": 54.9,
"winner": "Rachel Reeves",
"winning_party": "Labour"
}Get how a member voted
Get an MP's or Lord's voting record, newest first: each division, how they voted and whether it passed. Narrow it by words in the title or by date.
Inputs
- Member
membertextRequired - An MP's or Lord's name, for example Rachel Reeves, or their member id from an earlier step.
- Search words
search_termtext - Only votes whose title contains these words, for example a bill's name. Leave empty for every vote.
- From date
from_datedate - Only on or after this date.
- To date
to_datedate - Only on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
housetextmember_idnumbernametextvote_countnumbervoted_against_countnumbervoted_for_countnumbervoteslist
Example output
{
"house": "Commons",
"member_id": 4031,
"name": "Rachel Reeves",
"vote_count": 1,
"voted_against_count": 0,
"voted_for_count": 1,
"votes": [
{
"ayes": 319,
"date": "2026-10-14",
"division_id": 2442,
"house": "Commons",
"noes": 115,
"number": 84,
"passed": true,
"teller": false,
"title": "Carbon Border Adjustment Mechanism (Calculation of CBAM Rate and Determination of Carbon Price Relief) Regulations 2026",
"url": "https://votes.parliament.uk/votes/commons/division/2442",
"vote": "Aye",
"voted_for": true
}
]
}Get MP or Lord
Get an MP's or Lord's profile: party, seat, status, a one-line summary, and how to contact them (email, phone, office addresses, website). Tick the box to add what they have declared in the register of interests: paid work, donations, gifts, visits, property and shareholdings.
Inputs
- Member
membertextRequired - An MP's or Lord's name, for example Rachel Reeves, or their member id from an earlier step.
- Include registered interests
include_intereststrue/false - Also list what they have declared in the register of interests, each with its category and date.Default:
false.
Outputs
constituencytextconstituency_idnumbercontactslistemailtextfull_titletextgendertexthousetextinterest_categorieslistinterest_countnumberinterestslistis_currenttrue/falseleft_ontextleft_reasontextlist_astextmember_fromtextmember_idnumbermember_sincetextnametextpartytextparty_abbreviationtextparty_idnumberphonetextprofile_urltextstatustextsynopsistextthumbnail_urltextwebsitetext
Example output
{
"constituency": "Leeds West and Pudsey",
"constituency_id": 4140,
"contacts": [
{
"address": "House of Commons, London",
"email": "rachel.reeves.mp@parliament.uk",
"phone": "020 7219 7097",
"postcode": "SW1A 0AA",
"type": "Parliamentary office",
"url": null
}
],
"email": "rachel.reeves.mp@parliament.uk",
"full_title": "Rt Hon Rachel Reeves MP",
"gender": "F",
"house": "Commons",
"interest_categories": [
"2. (b) Any other support not included in Category 2(a)"
],
"interest_count": 1,
"interests": [
{
"amended_on": null,
"category": "2. (b) Any other support not included in Category 2(a)",
"details": [],
"interest_id": 13437,
"registered_on": "2025-10-21",
"text": "Name of donor: Alison Wedgwood\n\nAmount of donation or nature and value if donation in kind: \u00a330,000 to support my Parliamentary and political duties."
}
],
"is_current": true,
"left_on": null,
"left_reason": null,
"list_as": "Reeves, Rachel",
"member_from": "Leeds West and Pudsey",
"member_id": 4031,
"member_since": "2010-05-06",
"name": "Rachel Reeves",
"party": "Labour",
"party_abbreviation": "Lab",
"party_id": 15,
"phone": "020 7219 7097",
"profile_url": "https://members.parliament.uk/member/4031/contact",
"status": "Current member",
"synopsis": "The Rt Hon Rachel Reeves is the Labour MP for Leeds West and Pudsey, and has been an MP continually since 6 May 2010.",
"thumbnail_url": "https://members-api.parliament.uk/api/Members/4031/Thumbnail",
"website": "https://www.rachelreevesmp.co.uk/"
}Get party seat counts
Get how many seats each party holds in the Commons or the Lords, today or on a past date, largest first, with the split between men and women.
Inputs
- House
housetextRequired - The House to count.One of:
commons(House of Commons),lords(House of Lords). Default:commons. - On date
on_datedate - Count the seats as they were on this date. Leave empty for today.
Outputs
datetexthousetextlargest_partytextpartieslisttotal_seatsnumber
Example output
{
"date": "2026-10-15",
"house": "Commons",
"largest_party": "Labour",
"parties": [
{
"abbreviation": "Lab",
"men": 215,
"party": "Labour",
"party_id": 15,
"seats": 404,
"women": 189
}
],
"total_seats": 404
}Get vote result
Get one vote (division): the result, how every member voted, and the numbers for and against from each party.
Inputs
- House
housetextRequired - The House that voted.One of:
commons(House of Commons),lords(House of Lords). Default:commons. - Division id
division_idtextRequired - The vote's division id, from 'Search votes'.
Outputs
ayesnumberdatetextdivision_idnumberhousetextno_vote_recorded_countnumbernoesnumbernotestextnumbernumberparty_breakdownlistpassedtrue/falsetitletexturltextvoter_countnumbervoteslist
Example output
{
"ayes": 319,
"date": "2026-10-14",
"division_id": 2442,
"house": "Commons",
"no_vote_recorded_count": 216,
"noes": 115,
"notes": null,
"number": 84,
"party_breakdown": [
{
"ayes": 311,
"noes": 0,
"party": "Labour"
},
{
"ayes": 0,
"noes": 103,
"party": "Conservative"
}
],
"passed": true,
"title": "Carbon Border Adjustment Mechanism (Calculation of CBAM Rate and Determination of Carbon Price Relief) Regulations 2026",
"url": "https://votes.parliament.uk/votes/commons/division/2442",
"voter_count": 434,
"votes": [
{
"member_from": "Leeds West and Pudsey",
"member_id": 4031,
"name": "Rachel Reeves",
"party": "Labour",
"proxy": null,
"teller": false,
"vote": "Aye",
"voted_for": true
}
]
}Get written question
Get a written question in full with the government's answer, who answered and when.
Inputs
- Question id
question_idtextRequired - The question's id, from 'Search written questions'.
Outputs
answer_texttextansweredtrue/falseanswered_bytextanswered_by_idnumberasked_bytextasked_by_idnumberasked_by_partytextattachmentslistdate_answeredtextdate_duetextdate_tabledtextdepartmenttextdepartment_idnumberheadingtexthousetextis_holding_answertrue/falseis_withdrawntrue/falsequestion_idnumberquestion_texttextuintexturltext
Example output
{
"answer_text": "As set out in the Animal Welfare Strategy published in December 2025, this Government is continuing to explore both legislative and non-legislative options. It will set out next steps in due course.",
"answered": true,
"answered_by": "Stephen Morgan",
"answered_by_id": 4653,
"asked_by": "Ruth Jones",
"asked_by_id": 4716,
"asked_by_party": "Labour",
"attachments": [],
"date_answered": "2026-10-15",
"date_due": "2026-10-13",
"date_tabled": "2026-10-09",
"department": "Department for Environment, Food and Rural Affairs",
"department_id": 13,
"heading": "Animal Welfare",
"house": "Commons",
"is_holding_answer": false,
"is_withdrawn": false,
"question_id": 1944254,
"question_text": "To ask the Secretary of State for Environment, Food and Rural Affairs, when she plans to publish findings of her Department's discussions on options to prohibit advertising of low-welfare animal activities undertaken abroad.",
"uin": "30448",
"url": "https://questions-statements.parliament.uk/written-questions/detail/2026-10-09/30448"
}Get written statement
Get a written ministerial statement in full.
Inputs
- Statement id
statement_idtextRequired - The statement's id, from 'Search written statements'.
Outputs
attachmentslistdatetextdepartmenttextdepartment_idnumberhousetextmade_bytextmade_by_idnumbermade_by_roletextstatement_idnumbertexttexttitletextuintexturltext
Example output
{
"attachments": [],
"date": "2026-10-15",
"department": "Foreign, Commonwealth and Development Office",
"department_id": 208,
"house": "Commons",
"made_by": "Uma Kumaran",
"made_by_id": 5278,
"made_by_role": "Parliamentary Under-Secretary of State for Overseas Territories, Caribbean and Global Technology",
"statement_id": 1949367,
"text": "The Government is today publishing an update to the United Kingdom\u2019s Arctic policy. This builds on the United Kingdom\u2019s Arctic Policy Framework \u2018Looking North\u2019.",
"title": "An Update to the United Kingdom\u2019s Arctic Policy Framework",
"uin": "HCWS382",
"url": "https://questions-statements.parliament.uk/written-statements/detail/2026-10-15/HCWS382"
}List bill amendments
List the amendments tabled to a bill at one stage, with who proposed them and what happened to them. Leave the stage empty for the latest stage that has amendments.
Inputs
- Bill id
bill_idtextRequired - The bill's id, from 'Search bills' or the bill's page address.
- Stage
stage_idtext - The stage the amendments were tabled at. Leave empty for the latest stage with amendments.
- Outcome
decisiontext - Only amendments with this outcome. Leave empty for all.One of:
agreed(Agreed to),rejected,withdrawn,not_moved(Not moved, called or selected),undecided(Not decided yet). - Search words
search_termtext - Only amendments containing these words.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
amendment_countnumberamendmentslistbill_idnumberdecisionslistmatch_countnumberstagetextstage_housetextstage_idnumbertotal_countnumbertruncatedtrue/false
Example output
{
"amendment_count": 1,
"amendments": [
{
"amendment_id": 10037353,
"amendment_type": "Edit bill body",
"clause": 2,
"decision": "Withdrawn",
"decision_explanation": "The amendment was withdrawn after debate and no decision was taken on it.",
"lead_sponsor": "Baroness Fraser of Craigmaddie",
"lead_sponsor_id": 4906,
"line": 13,
"number": "1",
"page": 2,
"schedule": null,
"sponsors": [
"Baroness Fraser of Craigmaddie",
"Baroness Smith of Newnham"
],
"summary": "Clause 2, page 2, line 13, at end insert \u201cand the Royal Fleet Auxiliary\u201d"
}
],
"bill_id": 4065,
"decisions": [
{
"count": 52,
"decision": "Not moved"
},
{
"count": 18,
"decision": "Withdrawn"
}
],
"match_count": 1,
"stage": "Committee stage",
"stage_house": "Lords",
"stage_id": 21073,
"total_count": 78,
"truncated": false
}List committee meetings
List committee meetings in date order, from today unless you pick a date: evidence sessions, private meetings and visits, with the inquiry, room and time.
Inputs
- Committee
committeetext - Only this committee's meetings. Leave empty for every committee.
- House
housetext - Only committees of this House. Leave empty for all.One of:
commons(House of Commons),lords(House of Lords),joint(Joint committees). - From date
from_datedate - Meetings on or after this date. Defaults to today.
- To date
to_datedate - Only on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
committee_idnumberfrom_datetextmeeting_countnumbermeetingslisttotal_countnumber
Example output
{
"committee_id": 158,
"from_date": "2026-10-15",
"meeting_count": 1,
"meetings": [
{
"business": [
"Budget 2026"
],
"cancelled": false,
"committee_ids": [
158
],
"committees": [
"Treasury Committee"
],
"date": "2026-10-20",
"end_time": "2026-10-20T12:30:00",
"location": "Room 8, Palace of Westminster",
"meeting_id": 28371,
"start_time": "2026-10-20T09:30:00",
"title": "Budget 2026: Pre Budget scrutiny 2",
"type": "Formal meeting (oral evidence session)"
}
],
"total_count": 1
}Search bills
Find bills by title, session, House, status, type or sponsor, most recently updated first: where each one is now and its page on bills.parliament.uk.
Inputs
- Search words
search_termtext - Words in the bill's title. Leave empty for every bill.
- Status
statustext - Only bills in this state. 'Still going through Parliament' looks in the current session unless you pick another. Leave empty for every bill.One of:
in_progress(Still going through Parliament),act(Became law),defeated,withdrawn. - Session
sessiontext - Only bills before Parliament in this session. Leave empty for every session.
- Now in
current_housetext - Only bills now in this House. Leave empty for both.One of:
commons(House of Commons),lords(House of Lords). - Bill type
bill_typetext - Only bills of this kind. Leave empty for every kind.One of:
government(Government bill),private_members(Private members' bill),private(Private bill),hybrid(Hybrid bill),consolidation(Consolidation bill),draft(Draft bill),supply(Supply and Appropriation bill). - Sponsor
sponsortext - Only bills sponsored by this MP or Lord: a name or a member id. Leave empty for any sponsor.
- Order
sorttext - The order to list them in.One of:
updated_newest(Most recently updated first),updated_oldest(Least recently updated first),title_az(Title, A to Z),title_za(Title, Z to A). Default:updated_newest. - Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
bill_countnumberbillslistsession_idnumbertotal_countnumber
Example output
{
"bill_count": 1,
"bills": [
{
"bill_id": 4065,
"bill_type": "Government bill",
"current_house": "Lords",
"current_stage": "Report stage",
"current_stage_date": "2026-10-20",
"current_stage_house": "Lords",
"former_title": null,
"is_act": false,
"is_defeated": false,
"last_updated": "2026-10-15T18:38:44",
"originating_house": "Commons",
"session_id": 39,
"title": "Armed Forces Bill",
"url": "https://bills.parliament.uk/bills/4065",
"withdrawn_on": null
}
],
"session_id": null,
"total_count": 1
}Search Hansard
Search Hansard, the official record of what is said in Parliament, newest first: find whole debates, or each thing said, by one MP or Lord or by anyone, with the debate it was in.
Inputs
- Search words
search_termtext - Words that were said. Leave empty to see everything a member said.
- Search in
search_intext - One result per debate, or each speech on its own. Picking a member always searches speeches.One of:
debates(Debates (one result per debate)),speeches(What was said (each speech)). Default:debates. - Member
membertext - Only what this MP or Lord said: a name or a member id. Leave empty for anyone.
- House
housetext - Only in this House. Leave empty for both.One of:
commons(House of Commons),lords(House of Lords). - From date
from_datedate - Only on or after this date.
- To date
to_datedate - Only on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
contribution_countnumbercontributionslistdebate_countnumberdebateslistmember_idnumbermember_nametextsearch_intexttotal_countnumber
Example output
{
"contribution_count": 1,
"contributions": [
{
"contribution_id": "7F7BA0C6-121D-41FF-B77B-294D1B9DC9B9",
"date": "2026-06-23",
"debate_id": "EE9CD597-E12E-4FB5-BC3C-153413F9DE60",
"debate_title": "Economic Strength",
"house": "Commons",
"location": "Commons Chamber",
"member_id": 4031,
"member_name": "Rachel Reeves",
"speaker": "The Chancellor of the Exchequer (Rachel Reeves)",
"text": "Since I became Chancellor, our economy has grown by 2.3%\u2014the fastest growth among European G7 economies in that period.",
"url": "https://hansard.parliament.uk/Commons/2026-06-23/debates/EE9CD597-E12E-4FB5-BC3C-153413F9DE60/EconomicStrength#contribution-7F7BA0C6-121D-41FF-B77B-294D1B9DC9B9"
}
],
"debate_count": 1,
"debates": [
{
"date": "2026-06-23",
"debate_id": "EE9CD597-E12E-4FB5-BC3C-153413F9DE60",
"house": "Commons",
"location": "Commons Chamber",
"title": "Economic Strength",
"url": "https://hansard.parliament.uk/Commons/2026-06-23/debates/EE9CD597-E12E-4FB5-BC3C-153413F9DE60/EconomicStrength"
}
],
"member_id": 4031,
"member_name": "Rachel Reeves",
"search_in": "speeches",
"total_count": 1
}Search votes
Find the votes (divisions) held in the Commons or the Lords, newest first, by words in the title or by date: the result and the numbers on each side.
Inputs
- House
housetextRequired - The House that voted.One of:
commons(House of Commons),lords(House of Lords). Default:commons. - Search words
search_termtext - Words in the vote's title, for example a bill's name. Leave empty for every vote.
- From date
from_datedate - Only on or after this date.
- To date
to_datedate - Only on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
division_countnumberdivisionslisthousetext
Example output
{
"division_count": 1,
"divisions": [
{
"ayes": 319,
"date": "2026-10-14",
"division_id": 2442,
"house": "Commons",
"noes": 115,
"number": 84,
"passed": true,
"title": "Carbon Border Adjustment Mechanism (Calculation of CBAM Rate and Determination of Carbon Price Relief) Regulations 2026",
"url": "https://votes.parliament.uk/votes/commons/division/2442"
}
],
"house": "Commons"
}Search written questions
Find written questions MPs and Lords have put to the government, newest first, with the start of each answer. Narrow by words, who asked, the department, whether it has been answered, and date.
Inputs
- Search words
search_termtext - Words to look for. Leave empty for everything.
- House
housetext - Only questions asked in this House. Leave empty for both.One of:
commons(House of Commons),lords(House of Lords). - Asked by
asked_bytext - Only questions asked by this MP or Lord: a name or a member id.
- Department
departmenttext - Only those for this government department. Leave empty for all.
- Answered
statustext - Answered, not yet answered, or leave empty for both.One of:
answered,unanswered(Not answered yet). - Asked from
tabled_fromdate - Only questions asked on or after this date.
- Asked until
tabled_todate - Only questions asked on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
question_countnumberquestionslisttotal_countnumber
Example output
{
"question_count": 1,
"questions": [
{
"answer_preview": "As set out in the Animal Welfare Strategy published in December 2025, this Government is continuing to explore both legislative and non-legislative options. It will set out next steps in due course.",
"answered": true,
"answered_by": "Stephen Morgan",
"answered_by_id": 4653,
"asked_by": "Ruth Jones",
"asked_by_id": 4716,
"asked_by_party": "Labour",
"date_answered": "2026-10-15",
"date_due": "2026-10-13",
"date_tabled": "2026-10-09",
"department": "Department for Environment, Food and Rural Affairs",
"department_id": 13,
"heading": "Animal Welfare",
"house": "Commons",
"is_holding_answer": false,
"is_withdrawn": false,
"question_id": 1944254,
"question_preview": "To ask the Secretary of State for Environment, Food and Rural Affairs, when she plans to publish findings of her Department's discussions on options to prohibit advertising of low-welfare animal activities undertaken abroad.",
"uin": "30448",
"url": "https://questions-statements.parliament.uk/written-questions/detail/2026-10-09/30448"
}
],
"total_count": 1
}Search written statements
Find written statements ministers have made to Parliament, newest first, by words, House, minister, department and date.
Inputs
- Search words
search_termtext - Words to look for. Leave empty for everything.
- House
housetext - Only statements made in this House. Leave empty for both.One of:
commons(House of Commons),lords(House of Lords). - Made by
made_bytext - Only statements by this minister: a name or a member id.
- Department
departmenttext - Only those for this government department. Leave empty for all.
- From date
from_datedate - Only on or after this date.
- To date
to_datedate - Only on or before this date.
- Number of results
limitnumber - How many to return, newest first. Defaults to 20.From 1 to 100. Default:
20.
Outputs
statement_countnumberstatementslisttotal_countnumber
Example output
{
"statement_count": 1,
"statements": [
{
"date": "2026-10-15",
"department": "Foreign, Commonwealth and Development Office",
"department_id": 208,
"house": "Commons",
"made_by": "Uma Kumaran",
"made_by_id": 5278,
"made_by_role": "Parliamentary Under-Secretary of State for Overseas Territories, Caribbean and Global Technology",
"statement_id": 1949367,
"text_preview": "The Government is today publishing an update to the United Kingdom\u2019s Arctic policy. This builds on the United Kingdom\u2019s Arctic Policy Framework \u2018Looking North\u2019.",
"title": "An Update to the United Kingdom\u2019s Arctic Policy Framework",
"uin": "HCWS382",
"url": "https://questions-statements.parliament.uk/written-statements/detail/2026-10-15/HCWS382"
}
],
"total_count": 1
}