{"files":{"SKILL.md":"---\nname: bills-api\ndescription: \"Bills API skill. Use when working with Bills for api. Covers 21 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Bills API\nAPI version: v1\n\n## Auth\nNo authentication required.\n\n## Base URL\nNot specified.\n\n## Setup\n1. No auth setup needed\n2. GET /api/v1/BillTypes -- returns a list of bill types.\n3. Explore available endpoints below\n\n## Endpoints\n21 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Api\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments | Returns a list of amendments. |\n| GET | /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments/{amendmentId} | Returns an amendment. |\n| GET | /api/v1/Bills/{billId}/NewsArticles | Returns a list of news articles for a Bill. |\n| GET | /api/v1/BillTypes | Returns a list of Bill types. |\n| GET | /api/v1/Bills | Returns a list of Bills. |\n| GET | /api/v1/Bills/{billId} | Return a Bill. |\n| GET | /api/v1/Bills/{billId}/Stages/{billStageId} | Returns a Bill stage. |\n| GET | /api/v1/Bills/{billId}/Stages | Returns all Bill stages. |\n| GET | /api/v1/Publications/{publicationId}/Documents/{documentId} | Return information on a document. |\n| GET | /api/v1/Publications/{publicationId}/Documents/{documentId}/Download | Return a document. |\n| GET | /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems | Returns a list of motions or amendments. |\n| GET | /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems/{pingPongItemId} | Returns amendment or motion detail. |\n| GET | /api/v1/PublicationTypes | Returns a list of publication types. |\n| GET | /api/v1/Bills/{billId}/Publications | Return a list of Bill publications. |\n| GET | /api/v1/Bills/{billId}/Stages/{stageId}/Publications | Return a list of Bill stage publications. |\n| GET | /api/v1/Rss/allbills.rss | Returns an Rss feed of all Bills. |\n| GET | /api/v1/Rss/publicbills.rss | Returns an Rss feed of public Bills. |\n| GET | /api/v1/Rss/privatebills.rss | Returns an Rss feed of private Bills. |\n| GET | /api/v1/Rss/Bills/{id}.rss | Returns an Rss feed of a certain Bill. |\n| GET | /api/v1/Sittings | Returns a list of Sittings. |\n| GET | /api/v1/Stages | Returns a list of Bill stages. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all Amendments?\" -> GET /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments\n- \"Get Amendment details?\" -> GET /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments/{amendmentId}\n- \"List all NewsArticles?\" -> GET /api/v1/Bills/{billId}/NewsArticles\n- \"List all BillTypes?\" -> GET /api/v1/BillTypes\n- \"List all Bills?\" -> GET /api/v1/Bills\n- \"Get Bill details?\" -> GET /api/v1/Bills/{billId}\n- \"Get Stage details?\" -> GET /api/v1/Bills/{billId}/Stages/{billStageId}\n- \"List all Stages?\" -> GET /api/v1/Bills/{billId}/Stages\n- \"Get Document details?\" -> GET /api/v1/Publications/{publicationId}/Documents/{documentId}\n- \"List all Download?\" -> GET /api/v1/Publications/{publicationId}/Documents/{documentId}/Download\n- \"List all PingPongItems?\" -> GET /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems\n- \"Get PingPongItem details?\" -> GET /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems/{pingPongItemId}\n- \"List all PublicationTypes?\" -> GET /api/v1/PublicationTypes\n- \"List all Publications?\" -> GET /api/v1/Bills/{billId}/Publications\n- \"List all allbills.rss?\" -> GET /api/v1/Rss/allbills.rss\n- \"List all publicbills.rss?\" -> GET /api/v1/Rss/publicbills.rss\n- \"List all privatebills.rss?\" -> GET /api/v1/Rss/privatebills.rss\n- \"List all Sittings?\" -> GET /api/v1/Sittings\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Bills API\n@version v1\n@endpoints 21\n@hint download_for_search\n@toc api(21)\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments\n@desc Returns a list of amendments.\n@required {billId: int(int32) # Amendments relating to a Bill with Bill ID specified, billStageId: int(int32) # Amendments relating to a Bill stage with Bill stage ID specified}\n@optional {SearchTerm: str, AmendmentNumber: str, Decision: str, MemberId: int(int32), Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{billStageId}/Amendments/{amendmentId}\n@desc Returns an amendment.\n@required {billId: int(int32) # Amendment relating to a bill with bill ID specified, billStageId: int(int32) # Amendment relating to a bill stage with bill stage ID specified, amendmentId: int(int32) # Amendment with amendment ID specified}\n@returns(200) {id: int(int32), billId: int(int32), billStageId: int(int32), statusIndicator: str?, decision: str, decisionExplanation: str?, sponsors: [map]?, amendmentId: int(int32), amendmentType: str, clause: int(int32)?, schedule: int(int32)?, pageNumber: int(int32)?, lineNumber: int(int32)?, amendmentPosition: str?, marshalledListText: str?, dNum: str?, amendmentLines: [map]?, explanatoryTextPrefix: str?, explanatoryText: str?, amendmentNote: str?, amendmentLocation: str?, mainHeader: str?} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/NewsArticles\n@desc Returns a list of news articles for a Bill.\n@required {billId: int(int32)}\n@optional {Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/BillTypes\n@desc Returns a list of Bill types.\n@optional {Category: str, Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Bills\n@desc Returns a list of Bills.\n@optional {SearchTerm: str, Session: int(int32), CurrentHouse: str, OriginatingHouse: str, MemberId: int(int32), DepartmentId: int(int32), BillStage: [int(int32)], BillStagesExcluded: [int(int32)], IsDefeated: bool, IsWithdrawn: bool, BillType: [int(int32)], SortOrder: str, BillIds: [int(int32)], IsInAmendableStage: bool, Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Bills/{billId}\n@desc Return a Bill.\n@required {billId: int(int32) # Bill with ID specified}\n@returns(200) {billId: int(int32), shortTitle: str?, formerShortTitle: str?, currentHouse: str, originatingHouse: str, lastUpdate: str(date-time), billWithdrawn: str(date-time)?, isDefeated: bool, billTypeId: int(int32), introducedSessionId: int(int32), includedSessionIds: [int(int32)]?, isAct: bool, currentStage: map{id: int(int32), stageId: int(int32), sessionId: int(int32), description: str?, abbreviation: str?, house: str, stageSittings: [map]?, sortOrder: int(int32)}, longTitle: str?, summary: str?, sponsors: [map]?, promoters: [map]?, petitioningPeriod: str?, petitionInformation: str?, agent: map{name: str?, address: str?, phoneNo: str?, email: str?, website: str?}} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{billStageId}\n@desc Returns a Bill stage.\n@required {billId: int(int32) # Bill stage relating to Bill with Bill ID specified, billStageId: int(int32) # Bill stage with ID specified}\n@returns(200) {id: int(int32), stageId: int(int32), sessionId: int(int32), description: str?, abbreviation: str?, house: str, stageSittings: [map]?, sortOrder: int(int32), committee: map{id: int(int32), name: str?, category: str?, house: str, url: str?}, nextStageBillStageId: int(int32)?, previousStageBillStageId: int(int32)?, lastUpdate: str(date-time), hasMotions: bool} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages\n@desc Returns all Bill stages.\n@required {billId: int(int32) # Stages relating to a Bill with Bill ID specified}\n@optional {Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Publications/{publicationId}/Documents/{documentId}\n@desc Return information on a document.\n@required {publicationId: int(int32) # Document with publication Id specified, documentId: int(int32) # Document with Id specified}\n@returns(200) {id: int(int32), filename: str?, contentType: str?, contentLength: int(int32)} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Publications/{publicationId}/Documents/{documentId}/Download\n@desc Return a document.\n@required {publicationId: int(int32) # Document with publication Id specified, documentId: int(int32) # Document with Id specified}\n@returns(200) OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems\n@desc Returns a list of motions or amendments.\n@required {billId: int(int32) # Motions or amendments relating to a Bill with Bill ID specified, billStageId: int(int32) # Motions or amendments relating to a Bill stage with Bill stage ID specified}\n@optional {SearchTerm: str, AmendmentNumber: str, Decision: str, MemberId: int(int32), Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{billStageId}/PingPongItems/{pingPongItemId}\n@desc Returns amendment or motion detail.\n@required {billId: int(int32) # Motions or amendments relating to a bill with bill ID specified, billStageId: int(int32) # Motions or amendments relating to a bill stage with bill stage ID specified, pingPongItemId: int(int32) # Motions or amendments with ping pong item ID specified}\n@returns(200) {type: str, amendment: map{id: int(int32), billId: int(int32), billStageId: int(int32), statusIndicator: str?, decision: str, decisionExplanation: str?, sponsors: [map]?, type: str, number: str?, summary: str?, amendmentGroups: [map]?}, motion: map{id: int(int32), billId: int(int32), billStageId: int(int32), statusIndicator: str?, decision: str, decisionExplanation: str?, sponsors: [map]?, type: str, number: str?, summary: str?, motionGroups: [map]?}} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/PublicationTypes\n@desc Returns a list of publication types.\n@optional {Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Bills/{billId}/Publications\n@desc Return a list of Bill publications.\n@required {billId: int(int32) # Publications relating to Bill with Bill ID specified}\n@returns(200) {billId: int(int32), publications: [map]?} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Bills/{billId}/Stages/{stageId}/Publications\n@desc Return a list of Bill stage publications.\n@required {billId: int(int32), stageId: int(int32)}\n@returns(200) {billStageId: int(int32), publications: [map]?, sittings: [map]?} # OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Rss/allbills.rss\n@desc Returns an Rss feed of all Bills.\n@returns(200) OK\n\n@endpoint GET /api/v1/Rss/publicbills.rss\n@desc Returns an Rss feed of public Bills.\n@returns(200) OK\n\n@endpoint GET /api/v1/Rss/privatebills.rss\n@desc Returns an Rss feed of private Bills.\n@returns(200) OK\n\n@endpoint GET /api/v1/Rss/Bills/{id}.rss\n@desc Returns an Rss feed of a certain Bill.\n@required {id: int(int32) # Id of Bill}\n@returns(200) OK\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/Sittings\n@desc Returns a list of Sittings.\n@optional {House: str, DateFrom: str(date-time), DateTo: str(date-time), Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/Stages\n@desc Returns a list of Bill stages.\n@optional {Skip: int(int32), Take: int(int32)}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32)} # OK\n@errors {400: Bad Request}\n\n@end\n"}}