Search UK Parliament bills, members, votes, Hansard, written questions, and committees.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Retrieve a Westminster bill overview or select stages, stage, publications, amendments, amendment, motions or motion. Stage/amendment/motion selections require the bill-specific billStageId from section=stages; singular amendment/motion also require itemId from their parent collection. Use amendmentId for amendment retrieval and motion.id for motions. Filter only the amendments collection by amendmentNumber, decision or sponsoring memberId. Collection selectors paginate whole records. Overview leaves publications unchecked; select publications to discover actual supplied legislation.gov.uk statute links. Follow contentCursor with the original selection to reconstruct oversized records.
Parent bill identifier from ukparl_search_bills.
Collection records; positive safe integer, default 20, effective cap 50; collections only.
Collection continuation; collections only.
Amendment amendmentId or ping-pong motion.id; singular selections only.
Selected bill section; overview by default.
Official amendment decision filter; amendments collection only.
Sponsoring member ID; amendments collection only.
Bill-specific stage occurrence ID, required for stage/amendment/motion selections.
Lossless same-selection content continuation.
Published amendment number, retaining letter suffixes; amendments collection only.
Retrieve a Westminster bill overview or select stages, stage, publications, amendments, amendment, motions or motion. Stage/amendment/motion selections require the bill-specific billStageId from section=stages; singular amendment/motion also require itemId from their parent collection. Use amendmentId for amendment retrieval and motion.id for motions. Filter only the amendments collection by amendmentNumber, decision or sponsoring memberId. Collection selectors paginate whole records. Overview leaves publications unchecked; select publications to discover actual supplied legislation.gov.uk statute links. Follow contentCursor with the original selection to reconstruct oversized records.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Collection records; positive safe integer, default 20, effective cap 50; collections only. |
| billId* | string | Parent bill identifier from ukparl_search_bills. |
| cursor | string | Collection continuation; collections only. |
| itemId | string | Amendment amendmentId or ping-pong motion.id; singular selections only. |
| section | string | Selected bill section; overview by default. |
| decision | string | Official amendment decision filter; amendments collection only. |
| memberId | string | Sponsoring member ID; amendments collection only. |
| billStageId | string | Bill-specific stage occurrence ID, required for stage/amendment/motion selections. |
| contentCursor | string | Lossless same-selection content continuation. |
| amendmentNumber | string | Published amendment number, retaining letter suffixes; amendments collection only. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"billId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Collection records; positive safe integer, default 20, effective cap 50; collections only."
},
"billId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Parent bill identifier from ukparl_search_bills."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Collection continuation; collections only."
},
"itemId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Amendment amendmentId or ping-pong motion.id; singular selections only."
},
"section": {
"enum": [
"overview",
"stages",
"stage",
"publications",
"amendments",
"amendment",
"motions",
"motion"
],
"type": "string",
"default": "overview",
"description": "Selected bill section; overview by default."
},
"decision": {
"enum": [
"All",
"NoDecision",
"Withdrawn",
"Disagreed",
"NotMoved",
"Agreed",
"QuestionProposed",
"NotSelected",
"WithdrawnBeforeDebate",
"StoodPart",
"NotStoodPart",
"Preempted",
"NotCalled",
"NegativedOnDivision",
"AgreedOnDivision"
],
"type": "string",
"description": "Official amendment decision filter; amendments collection only."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Sponsoring member ID; amendments collection only."
},
"billStageId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Bill-specific stage occurrence ID, required for stage/amendment/motion selections."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Lossless same-selection content continuation."
},
"amendmentNumber": {
"type": "string",
"minLength": 1,
"description": "Published amendment number, retaining letter suffixes; amendments collection only."
}
},
"additionalProperties": false
}Find Westminster committees with mode=search, then use committeeId for detail, members, inquiries or publications. Inquiries returns every committee business type, labelled by isInquiry; use businessId with mode=inquiry for complete business detail or to filter publications. Use publicationId with mode=publication for complete report/publication metadata and source links. Use mode=evidence with businessId and evidenceType=written|oral to list evidence; mode=evidence_detail requires evidenceId and evidenceType in the same namespace. Memberships retain all role periods; personId is distinct from Members API memberId. No document downloads or text extraction. Follow cursors with unchanged filters; contentCursor retrieves oversized records losslessly. Typed entities retain sourcePath relationships to reconstruct nested source metadata.
| Argument | Type | Description |
|---|---|---|
| mode | string | Search, committee detail, members, business list/detail, publication list/detail or written/oral evidence list/detail. |
| house | string | Commons, Lords or Joint, case-insensitive; exact House of Commons/Lords aliases also accepted. Search only. |
| limit | integer | Collection size: search default 10 cap 20; nested default 20 cap 50. Safe over-cap values clamp. Omit for singular modes. |
| query | string | Search terms for search, inquiries or publications; latter two require at least two characters. |
| cursor | string | Opaque collection continuation; repeat unchanged filters and effective limit. |
Retrieve a member profile, roles, committee seats, official contact information, registered interests or recorded voting history. Roles without category lists available biography categories; select category to page whole periods. Interests and voting require an explicit House. Committee person IDs differ from member IDs. Voting uses native 20-row pages and reports recorded lobby and teller facts, without lifetime participation metrics. Follow collection cursors with unchanged selectors; use contentCursor to reconstruct oversized records.
| Argument | Type | Description |
|---|---|---|
| house | string | Required for interests and voting; forbidden for other sections. |
| limit | integer | Requested whole rows; default 20, cap 50 for local histories. Voting uses native 20-row pages independently of limit. |
| cursor | string | Opaque whole-item collection continuation with unchanged selectors. |
| section | string | Selected member subsection; default profile. |
| category | string | Roles only: select one complete biography collection. |
| memberId* | string | Members API decimal identifier from ukparl_search_members. |
| contentCursor | string |
Resolve Parliament filter IDs and inspect source coverage before searching. Use identifiers for ID namespaces and required selectors, coverage for Hansard date limitations, or a named reference topic for filter IDs. Follow opaque collection cursors with the same filters; use contentCursor to reconstruct an oversized selected payload.
| Argument | Type | Description |
|---|---|---|
| house | string | Commons or Lords; required for active parties. |
| limit | integer | Requested whole reference rows; positive safe integer, default 10, effective cap 20. |
| topic* | string | Reference topic or static identifier/coverage guide. |
| cursor | string | Opaque collection cursor; repeat the same normalized filters. |
| nameContains | string | Case-insensitive AND tokens over the complete named reference set. |
| contentCursor | string | Opaque same-selection recursive content continuation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Commons or Lords; required for active parties."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"description": "Requested whole reference rows; positive safe integer, default 10, effective cap 20.",
"exclusiveMinimum": 0
},
"topic": {
"enum": [
"identifiers",
"coverage",
"bill_stages",
"bill_types",
"parties",
"departments",
"answering_bodies"
],
"type": "string",
"description": "Reference topic or static identifier/coverage guide."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque collection cursor; repeat the same normalized filters."
},
"nameContains": {
"type": "string",
"minLength": 1,
"description": "Case-insensitive AND tokens over the complete named reference set."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque same-selection recursive content continuation."
}
},
"additionalProperties": false
}Search Westminster bill summaries by title, current or originating House, session, sponsoring member, department, reference stage, bill type or status, with optional official ordering. Use ukparl_lookup_reference for stage/type/department IDs and ukparl_get_bill for complete selected records. Department IDs are distinct from answering-body IDs. inAmendableStage=true restricts to amendable stages; false is unrestricted. No session or date scope is inferred. Follow collection cursors with the same filters; use contentCursor to reconstruct an oversized item.
| Argument | Type | Description |
|---|---|---|
| house | string | Current Commons or Lords House. |
| limit | integer | Requested bills; positive safe integer, default 10, effective cap 20. |
| query | string | Bill title search text. |
| cursor | string | Opaque collection continuation; preserve filters. |
| memberId | string | Sponsoring member identifier. |
| stageIds | array | Reference stages, distinct from bill-specific stage IDs. |
| sessionId | string | Session identifier discovered in bill records. |
Search official Commons or Lords division summaries, or use detail, voters or party_totals with a divisionId from the same House. Search supports title/number text, member and inclusive division dates; member searches include memberVote with the recorded House-native lobby and teller flag. Detail preserves complete metadata and teller identities, with roster selectors for voters mode. Voters can filter exact source party labels and House-compatible lobbies. not_recorded means only the source list, never abstention. Party totals count listed non-tellers and tellers separately from official headline counts. Follow collection cursors with unchanged filters; reconstruct oversized content using contentCursor.
| Argument | Type | Description |
|---|---|---|
| mode | string | Operation; defaults to search; accepts case-insensitive canonical mode names. |
| house* | string | Selected House and division ID namespace. |
| limit | integer | Positive safe integer; search default 5/cap 10, voters default 20/cap 50; detail and party_totals do not paginate. |
| lobby | string | Voters only: Commons aye/no/not_recorded or Lords content/not_content. |
| party | string | Exact case-insensitive source party label; voters only, not a party ID. |
| query | string | Division title or number search text; search mode only. |
Search spoken Westminster Hansard contributions by topic, member, House, date or numeric debateSectionId. Returns full source contribution text where supplied, including HTML; previews are labelled summaries. Repeat with a returned debateSectionId to search that section, which does not establish an entire debate transcript. Historical completeness is not guaranteed, including the 2004–2006 website warning despite some API records. Use ukparl_lookup_reference topic=coverage for archive guidance. Follow collection cursors unchanged and contentCursor for lossless oversized contributions; retry timeouts with shorter date windows.
| Argument | Type | Description |
|---|---|---|
| house | string | Commons or Lords; exact official House aliases are accepted. |
| limit | integer | Requested whole contributions; default 5, effective cap 20 with notice. |
| query | string | Spoken contribution search text; no date range is inferred. |
| cursor | string | Opaque collection continuation; repeat the same filters and effective limit. |
| endDate | string | Inclusive latest sitting date, real YYYY-MM-DD; must not precede startDate. |
| memberId | string | Members API identifier discovered with ukparl_search_members. |
| startDate |
Find MPs and peers by name, location or constituency, party, House, and current or historical membership. currentOnly=false includes current and former members. asOf selects historical membership and accepts name only, without House, party or location filters. Search results preserve latest profile fields; retrieve sections with ukparl_get_member. Follow opaque cursors with unchanged filters and use contentCursor for oversized records.
| Argument | Type | Description |
|---|---|---|
| asOf | string | Historical membership on YYYY-MM-DD; only name and pagination may accompany it. |
| name | string | Name substring; omission searches all names. |
| house | string | Filter most recent House; unavailable with asOf. |
| limit | integer | Requested whole members; default 10, cap 20; safe over-cap integers are clamped. |
| cursor | string | Opaque collection cursor for the same filters. |
| partyId | string | Party ID; active reference parties do not exhaust historical IDs. |
| currentOnly | boolean | True restricts to current members; false includes former and current. |
Search Westminster written questions and answer previews by text, exact UIN, asking or answering member, House, answering body, answer state and dates. An undated UIN returns candidates across sessions; narrow with tabling dates and retrieve mode=detail with a returned questionId for complete question and answer HTML, corrections and attachment links. A UIN is not a questionId and never determines House. Search includes all sessions and withdrawn questions. Follow collection cursors unchanged; use contentCursor for lossless oversized answers.
| Argument | Type | Description |
|---|---|---|
| uin | string | Exact UIN lookup string, such as 36068 or HL1234; preserves leading zeros. Search only; combine with tabling dates to narrow reused UINs. |
| mode | string | Search previews or retrieve one complete question. |
| house | string | Commons or Lords; search only. |
| limit | integer | Search page size, default 10, cap 20; larger safe integers are capped. Omit in detail. |
| query | string | Question or answer content terms; search only. |
| cursor | string | Opaque search continuation; repeat unchanged filters. |
| answered | boolean | True answered, false unanswered, omission either; search only. |
| status | any | Search: Current|Former|All. Inquiries: Open|Closed. Omitted uses source default. |
| openedTo | string | Inquiries opened on/before this ISO date. |
| sortOrder | any | Inquiries: DateOpenedNewest|DateOpenedOldest|PublicationDateAscending|PublicationDateDescending. Publications: PublicationDateAscending|PublicationDateDescending|ResponseDateAscending|ResponseDateDescending. Omitted preserves source order. |
| businessId | string | Business ID required for inquiry and evidence; optional additional publication filter. |
| evidenceId | string | Evidence detail ID, scoped by evidenceType. |
| membership | string | Members mode only, default all; filters role-period membership status. |
| openedFrom | string | Inquiries opened on/after this ISO date. |
| committeeId | string | Committee ID required for detail, members and publications; optional for inquiries to discover businesses across committees. |
| publishedTo | string | Publications starting on/before this ISO date. |
| evidenceType | string | Required for evidence list/detail; written and oral IDs are distinct. |
| contentCursor | string | Opaque same-selection content continuation; reconstruct records before advancing collection cursor. |
| publicationId | string | Publication ID required for publication detail. |
| publishedFrom | string | Publications starting on/after this ISO date. |
| acceptingEvidence | boolean | Inquiries only: true selects accepting businesses; false leaves source selection unrestricted. |
| publicationTypeIds | array | Publications only: positive publication type IDs, serialized as repeated parameters. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"mode": {
"enum": [
"search",
"detail",
"members",
"inquiries",
"inquiry",
"publications",
"publication",
"evidence",
"evidence_detail"
],
"type": "string",
"default": "search",
"description": "Search, committee detail, members, business list/detail, publication list/detail or written/oral evidence list/detail."
},
"house": {
"enum": [
"commons",
"lords",
"joint"
],
"type": "string",
"description": "Commons, Lords or Joint, case-insensitive; exact House of Commons/Lords aliases also accepted. Search only."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Collection size: search default 10 cap 20; nested default 20 cap 50. Safe over-cap values clamp. Omit for singular modes.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Search terms for search, inquiries or publications; latter two require at least two characters."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque collection continuation; repeat unchanged filters and effective limit."
},
"status": {
"anyOf": [
{
"enum": [
"Current",
"Former",
"All"
],
"type": "string"
},
{
"enum": [
"Open",
"Closed"
],
"type": "string"
}
],
"description": "Search: Current|Former|All. Inquiries: Open|Closed. Omitted uses source default."
},
"openedTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inquiries opened on/before this ISO date."
},
"sortOrder": {
"anyOf": [
{
"enum": [
"DateOpenedNewest",
"DateOpenedOldest",
"PublicationDateAscending",
"PublicationDateDescending"
],
"type": "string"
},
{
"enum": [
"PublicationDateAscending",
"PublicationDateDescending",
"ResponseDateAscending",
"ResponseDateDescending"
],
"type": "string"
}
],
"description": "Inquiries: DateOpenedNewest|DateOpenedOldest|PublicationDateAscending|PublicationDateDescending. Publications: PublicationDateAscending|PublicationDateDescending|ResponseDateAscending|ResponseDateDescending. Omitted preserves source order."
},
"businessId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Business ID required for inquiry and evidence; optional additional publication filter."
},
"evidenceId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Evidence detail ID, scoped by evidenceType."
},
"membership": {
"enum": [
"all",
"current",
"former"
],
"type": "string",
"description": "Members mode only, default all; filters role-period membership status."
},
"openedFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inquiries opened on/after this ISO date."
},
"committeeId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Committee ID required for detail, members and publications; optional for inquiries to discover businesses across committees."
},
"publishedTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Publications starting on/before this ISO date."
},
"evidenceType": {
"enum": [
"written",
"oral"
],
"type": "string",
"description": "Required for evidence list/detail; written and oral IDs are distinct."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque same-selection content continuation; reconstruct records before advancing collection cursor."
},
"publicationId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Publication ID required for publication detail."
},
"publishedFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Publications starting on/after this ISO date."
},
"acceptingEvidence": {
"type": "boolean",
"description": "Inquiries only: true selects accepting businesses; false leaves source selection unrestricted."
},
"publicationTypeIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]+$"
},
"description": "Publications only: positive publication type IDs, serialized as repeated parameters."
}
},
"additionalProperties": false
}| Opaque same-selection lossless content continuation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"memberId"
],
"properties": {
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Required for interests and voting; forbidden for other sections."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 9007199254740991,
"description": "Requested whole rows; default 20, cap 50 for local histories. Voting uses native 20-row pages independently of limit.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque whole-item collection continuation with unchanged selectors."
},
"section": {
"enum": [
"profile",
"roles",
"committee_seats",
"contact",
"interests",
"voting"
],
"type": "string",
"default": "profile",
"description": "Selected member subsection; default profile."
},
"category": {
"enum": [
"representations",
"electionsContested",
"houseMemberships",
"governmentPosts",
"oppositionPosts",
"otherPosts",
"partyAffiliations",
"committeeMemberships"
],
"type": "string",
"description": "Roles only: select one complete biography collection."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Members API decimal identifier from ukparl_search_members."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque same-selection lossless content continuation."
}
},
"additionalProperties": false
}| sortOrder |
| string |
| Official ordering; omission preserves the source default. |
| isDefeated | boolean | Filter by defeated state, including false. |
| billTypeIds | array | Reference bill types. |
| isWithdrawn | boolean | Filter by withdrawn state, including false. |
| departmentId | string | Members department ID from ukparl_lookup_reference topic=departments; distinct from answering-body IDs. |
| contentCursor | string | Opaque same-selection lossless content continuation. |
| inAmendableStage | boolean | True restricts to amendable stages; false applies no restriction. |
| originatingHouse | string | Originating Commons or Lords House; omission includes all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Current Commons or Lords House."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"description": "Requested bills; positive safe integer, default 10, effective cap 20.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Bill title search text."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque collection continuation; preserve filters."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Sponsoring member identifier."
},
"stageIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Reference stage identifier."
},
"maxItems": 20,
"description": "Reference stages, distinct from bill-specific stage IDs."
},
"sessionId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Session identifier discovered in bill records."
},
"sortOrder": {
"enum": [
"TitleAscending",
"TitleDescending",
"DateUpdatedAscending",
"DateUpdatedDescending"
],
"type": "string",
"description": "Official ordering; omission preserves the source default."
},
"isDefeated": {
"type": "boolean",
"description": "Filter by defeated state, including false."
},
"billTypeIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Reference bill type identifier."
},
"maxItems": 20,
"description": "Reference bill types."
},
"isWithdrawn": {
"type": "boolean",
"description": "Filter by withdrawn state, including false."
},
"departmentId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Members department ID from ukparl_lookup_reference topic=departments; distinct from answering-body IDs."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque same-selection lossless content continuation."
},
"inAmendableStage": {
"type": "boolean",
"description": "True restricts to amendable stages; false applies no restriction."
},
"originatingHouse": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Originating Commons or Lords House; omission includes all."
}
},
"additionalProperties": false
}| cursor | string | Opaque search/voters collection continuation; repeat the same filters. |
| endDate | string | Inclusive source division-date upper bound; search only. |
| memberId | string | Members API ID; search returns this member's recorded lobby and teller flag, including divisions where they were a teller. |
| startDate | string | Inclusive source division-date lower bound; search only. |
| divisionId | string | Division ID in the selected House; required outside search. |
| contentCursor | string | Opaque same-selection lossless content continuation, separate from collection cursor. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"house"
],
"properties": {
"mode": {
"enum": [
"search",
"detail",
"voters",
"party_totals"
],
"type": "string",
"default": "search",
"description": "Operation; defaults to search; accepts case-insensitive canonical mode names."
},
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Selected House and division ID namespace."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Positive safe integer; search default 5/cap 10, voters default 20/cap 50; detail and party_totals do not paginate.",
"exclusiveMinimum": 0
},
"lobby": {
"enum": [
"aye",
"no",
"content",
"not_content",
"not_recorded"
],
"type": "string",
"description": "Voters only: Commons aye/no/not_recorded or Lords content/not_content."
},
"party": {
"type": "string",
"minLength": 1,
"description": "Exact case-insensitive source party label; voters only, not a party ID."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Division title or number search text; search mode only."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque search/voters collection continuation; repeat the same filters."
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive source division-date upper bound; search only."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Members API ID; search returns this member's recorded lobby and teller flag, including divisions where they were a teller."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive source division-date lower bound; search only."
},
"divisionId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Division ID in the selected House; required outside search."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque same-selection lossless content continuation, separate from collection cursor."
}
},
"additionalProperties": false
}| string |
| Inclusive earliest sitting date, real YYYY-MM-DD; no inferred archive cutoff. |
| contentCursor | string | Opaque lossless content continuation; preserve original selection and collection cursor. |
| debateSectionId | string | Returned numeric debateSectionId, distinct from external debate IDs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Commons or Lords; exact official House aliases are accepted."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 9007199254740991,
"description": "Requested whole contributions; default 5, effective cap 20 with notice.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Spoken contribution search text; no date range is inferred."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque collection continuation; repeat the same filters and effective limit."
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive latest sitting date, real YYYY-MM-DD; must not precede startDate."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Members API identifier discovered with ukparl_search_members."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive earliest sitting date, real YYYY-MM-DD; no inferred archive cutoff."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque lossless content continuation; preserve original selection and collection cursor."
},
"debateSectionId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Returned numeric debateSectionId, distinct from external debate IDs."
}
},
"additionalProperties": false
}| constituency |
| string |
| Source location or constituency text, not exact equality. |
| contentCursor | string | Same-selection lossless content continuation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Historical membership on YYYY-MM-DD; only name and pagination may accompany it."
},
"name": {
"type": "string",
"minLength": 1,
"description": "Name substring; omission searches all names."
},
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Filter most recent House; unavailable with asOf."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"description": "Requested whole members; default 10, cap 20; safe over-cap integers are clamped.",
"exclusiveMinimum": 0
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque collection cursor for the same filters."
},
"partyId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Party ID; active reference parties do not exhaust historical IDs."
},
"currentOnly": {
"type": "boolean",
"default": false,
"description": "True restricts to current members; false includes former and current."
},
"constituency": {
"type": "string",
"minLength": 1,
"description": "Source location or constituency text, not exact equality."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Same-selection lossless content continuation."
}
},
"additionalProperties": false
}| memberId | string | Asking Members API ID; search only. |
| tabledTo | string | Inclusive tabling end YYYY-MM-DD; search only. |
| answeredTo | string | Inclusive answer end YYYY-MM-DD; search only. |
| questionId | string | Positive decimal Questions API ID required in detail; UIN is not this ID. |
| tabledFrom | string | Inclusive tabling start YYYY-MM-DD; search only. |
| answeredFrom | string | Inclusive answer start YYYY-MM-DD; search only. |
| contentCursor | string | Opaque lossless content continuation for this same selection. |
| answeringBodyIds | array | Up to 20 answering-body IDs resolved through ukparl_lookup_reference; search only. |
| answeringMemberId | string | Answering Members API ID; search only, independent of asking memberId. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"uin": {
"type": "string",
"minLength": 1,
"description": "Exact UIN lookup string, such as 36068 or HL1234; preserves leading zeros. Search only; combine with tabling dates to narrow reused UINs."
},
"mode": {
"enum": [
"search",
"detail"
],
"type": "string",
"default": "search",
"description": "Search previews or retrieve one complete question."
},
"house": {
"enum": [
"commons",
"lords"
],
"type": "string",
"description": "Commons or Lords; search only."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Search page size, default 10, cap 20; larger safe integers are capped. Omit in detail.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Question or answer content terms; search only."
},
"cursor": {
"type": "string",
"minLength": 1,
"description": "Opaque search continuation; repeat unchanged filters."
},
"answered": {
"type": "boolean",
"description": "True answered, false unanswered, omission either; search only."
},
"memberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Asking Members API ID; search only."
},
"tabledTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive tabling end YYYY-MM-DD; search only."
},
"answeredTo": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive answer end YYYY-MM-DD; search only."
},
"questionId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Positive decimal Questions API ID required in detail; UIN is not this ID."
},
"tabledFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive tabling start YYYY-MM-DD; search only."
},
"answeredFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive answer start YYYY-MM-DD; search only."
},
"contentCursor": {
"type": "string",
"minLength": 1,
"description": "Opaque lossless content continuation for this same selection."
},
"answeringBodyIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Official answering-body ID."
},
"maxItems": 20,
"minItems": 1,
"description": "Up to 20 answering-body IDs resolved through ukparl_lookup_reference; search only."
},
"answeringMemberId": {
"type": "string",
"pattern": "^[0-9]+$",
"description": "Answering Members API ID; search only, independent of asking memberId."
}
},
"additionalProperties": false
}