{"files":{"SKILL.md":"---\nname: statutory-instruments-api\ndescription: \"Statutory Instruments API skill. Use when working with Statutory Instruments for api. Covers 16 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Statutory Instruments 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/LayingBody -- verify access\n\n## Endpoints\n\n16 endpoints across 1 groups. See references/api-spec.lap for full details.\n\n### api\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/v1/BusinessItem/{id} | Returns business item by ID. |\n| GET | /api/v1/LayingBody | Returns all laying bodies. |\n| GET | /api/v1/Procedure | Returns all procedures. |\n| GET | /api/v1/Procedure/{id} | Returns procedure by ID. |\n| GET | /api/v1/ProposedNegativeStatutoryInstrument | Returns a list of proposed negative statutory instruments. |\n| GET | /api/v1/ProposedNegativeStatutoryInstrument/{id} | Returns proposed negative statutory instrument by ID. |\n| GET | /api/v1/ProposedNegativeStatutoryInstrument/{id}/BusinessItems | Returns business items belonging to a proposed negative statutory instrument. |\n| GET | /api/v1/StatutoryInstrument | Returns a list of statutory instruments. |\n| GET | /api/v1/StatutoryInstrument/{id} | Returns a statutory instrument by ID. |\n| GET | /api/v1/StatutoryInstrument/{id}/BusinessItems | Returns business items belonging to statutory instrument with ID. |\n| GET | /api/v2/ActOfParliament | Search through Acts of Parliament |\n| GET | /api/v2/ActOfParliament/{id} | Search individual Act of Parliament by ID |\n| GET | /api/v2/StatutoryInstrument | Search through statutory instruments and proposed negatives |\n| GET | /api/v2/StatutoryInstrument/{instrumentId} | Get individual statutory instrument or proposed negative by id |\n| GET | /api/v2/StatutoryInstrument/{instrumentId}/BusinessItems | Get business items associated with a particular instrument |\n| GET | /api/v2/Timeline/{timelineId}/BusinessItems | Get business items associated with a particular timeline |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get BusinessItem details?\" -> GET /api/v1/BusinessItem/{id}\n- \"List all LayingBody?\" -> GET /api/v1/LayingBody\n- \"List all Procedure?\" -> GET /api/v1/Procedure\n- \"Get Procedure details?\" -> GET /api/v1/Procedure/{id}\n- \"List all ProposedNegativeStatutoryInstrument?\" -> GET /api/v1/ProposedNegativeStatutoryInstrument\n- \"Get ProposedNegativeStatutoryInstrument details?\" -> GET /api/v1/ProposedNegativeStatutoryInstrument/{id}\n- \"List all BusinessItems?\" -> GET /api/v1/ProposedNegativeStatutoryInstrument/{id}/BusinessItems\n- \"List all StatutoryInstrument?\" -> GET /api/v1/StatutoryInstrument\n- \"Get StatutoryInstrument details?\" -> GET /api/v1/StatutoryInstrument/{id}\n- \"List all BusinessItems?\" -> GET /api/v1/StatutoryInstrument/{id}/BusinessItems\n- \"List all ActOfParliament?\" -> GET /api/v2/ActOfParliament\n- \"Get ActOfParliament details?\" -> GET /api/v2/ActOfParliament/{id}\n- \"List all StatutoryInstrument?\" -> GET /api/v2/StatutoryInstrument\n- \"Get StatutoryInstrument details?\" -> GET /api/v2/StatutoryInstrument/{instrumentId}\n- \"List all BusinessItems?\" -> GET /api/v2/StatutoryInstrument/{instrumentId}/BusinessItems\n- \"List all BusinessItems?\" -> GET /api/v2/Timeline/{timelineId}/BusinessItems\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get statutory-instruments-api -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search statutory-instruments-api\n```\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 Statutory Instruments API\n@version v1\n@endpoints 16\n@toc api(16)\n\n@endpoint GET /api/v1/BusinessItem/{id}\n@desc Returns business item by ID.\n@required {id: str # Business item with the ID specified}\n@optional {LaidPaper: str # Business item by laid paper type}\n@returns(200) {value: map{id: str?, statutoryInstrumentId: str?, stepName: str?, itemDate: str(date-time)?, houses: [map]?, link: str?, laidPaperType: str, sequence: int(int32), statutoryInstrumentUri: str(uri)?, businessItemUri: str(uri)?, houseUri: str(uri)?, houseName: str?, procedureStepUri: str(uri)?, workpackageProcedureUri: str(uri)?, houseId: str?, procedureStepId: str?}, links: [map]?} # The requested business item\n@errors {400: Bad Request, 404: If the item doesn't exist}\n\n@endpoint GET /api/v1/LayingBody\n@desc Returns all laying bodies.\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n\n@endpoint GET /api/v1/Procedure\n@desc Returns all procedures.\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n\n@endpoint GET /api/v1/Procedure/{id}\n@desc Returns procedure by ID.\n@required {id: str # Procedure with the ID specified}\n@returns(200) {value: map{id: str?, uri: str?, name: str?, description: str?}, links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/ProposedNegativeStatutoryInstrument\n@desc Returns a list of proposed negative statutory instruments.\n@optional {Name: str # Proposed negative statutory instruments with the name provided, RecommendedForProcedureChange: bool # Proposed negative statutory instruments recommended for procedure change, DepartmentId: int(int32) # Proposed negative statutory instruments with the department ID specified, LayingBodyId: str # Proposed negative statutory instruments with the laying body ID specified, Skip: int(int32) # The number of records to skip from the first, default is 0, Take: int(int32) # The number of records to return, default is 20}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/ProposedNegativeStatutoryInstrument/{id}\n@desc Returns proposed negative statutory instrument by ID.\n@required {id: str # Proposed negative statutory instrument with the ID specified}\n@returns(200) {value: map{id: str?, commonsLayingDate: str(date-time)?, commonsPublishedDate: str(date-time)?, lordsLayingDate: str(date-time)?, lordsPublishedDate: str(date-time)?, uri: str?, name: str?, departmentId: int(int32)?, layingBodyId: str?, layingBodyName: str?, procedureUri: str?, procedureName: str?, procedure: map{id: str?, uri: str?, name: str?}, layingBodyDepartment: map{departmentId: int(int32)?, name: str?, id: str?}, link: str?, statutoryInstrumentPaperId: str?, statutoryInstrumentPaperName: str?, statutoryInstrument: map{id: str?, name: str?}}, links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/ProposedNegativeStatutoryInstrument/{id}/BusinessItems\n@desc Returns business items belonging to a proposed negative statutory instrument.\n@required {id: str # Business items belonging to proposed negative statutory instrument with the ID specified}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/StatutoryInstrument\n@desc Returns a list of statutory instruments.\n@optional {Name: str # Statutory instruments with the name specified, StatutoryInstrumentType: str # Statutory instruments where the statutory instrument type is the type provided, ScheduledDebate: bool # Statutory instrument which contains a scheduled debate, MotionToStop: bool # Statutory instruments which contains a motion to stop, ConcernsRaisedByCommittee: bool # Statutory instruments which contains concerns raised by committee, ParliamentaryProcessConcluded: str # Statutory instruments where the parliamentary process is concluded or notconcluded, DepartmentId: int(int32) # Statutory instruments with the department ID specified, LayingBodyId: str # Statutory instruments with the laying body ID specified, House: str # Statutory instruments laid in the house specified, Skip: int(int32) # The number of records to skip from the first, default is 0, Take: int(int32) # The number of records to return, default is 20}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v1/StatutoryInstrument/{id}\n@desc Returns a statutory instrument by ID.\n@required {id: str # Statutory instrument with the ID specified}\n@returns(200) {value: map{id: str?, commonsLayingDate: str(date-time)?, commonsPublishedDate: str(date-time)?, lordsLayingDate: str(date-time)?, lordsPublishedDate: str(date-time)?, uri: str?, name: str?, departmentId: int(int32)?, layingBodyId: str?, layingBodyName: str?, procedureUri: str?, procedureName: str?, procedure: map{id: str?, uri: str?, name: str?}, layingBodyDepartment: map{departmentId: int(int32)?, name: str?, id: str?}, link: str?, paperNumber: int(int32)?, paperYear: str?, paperPrefix: str?, paperMadeDate: str(date-time), paperComingIntoForceDate: str(date-time)?, paperComingIntoForceNote: str?, proposedNegativeStatutoryInstrumentPaperId: str?, proposedNegativeStatutoryInstrumentPaperName: str?, proposedNegativeStatutoryInstrument: map{id: str?, name: str?}}, links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v1/StatutoryInstrument/{id}/BusinessItems\n@desc Returns business items belonging to statutory instrument with ID.\n@required {id: str # Business items belonging to statutory instrument with the ID specified}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v2/ActOfParliament\n@desc Search through Acts of Parliament\n@optional {Id: [str] # Acts of Parliament with the IDs specified., Name: str # Acts of Parliament with the name specified.}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v2/ActOfParliament/{id}\n@desc Search individual Act of Parliament by ID\n@required {id: str}\n@returns(200) {id: str?, name: str?, link: str?, number: int(int32)?, royalAssent: str(date-time)?, year: int(int32)?} # Success\n@errors {404: Not Found}\n\n@endpoint GET /api/v2/StatutoryInstrument\n@desc Search through statutory instruments and proposed negatives\n@optional {Name: str # Statutory instruments with the name specified, Procedure: str # Statutory instruments made under the specified procedure, ScheduledDebate: bool # Statutory instrument which contains a scheduled debate, MotionToStop: bool # Statutory instruments which contains a motion to stop, ConcernsRaisedByCommittee: bool # Statutory instruments which contains concerns raised by committee, ParliamentaryProcessConcluded: bool # Statutory instruments where the parliamentary process is concluded or notconcluded, DepartmentId: int(int32) # Statutory instruments with the department ID specified, LayingBodyId: str # Statutory instruments with the laying body ID specified, RecommendedForProcedureChange: bool # Statutory instruments recommended for procedure change, ActOfParliamentId: [str] # Statutory instruments with the Act of Parliament ID specified, House: str # Statutory instruments laid in the house specified, Skip: int(int32) # The number of records to skip from the first, default is 0, Take: int(int32) # The number of records to return, default is 20}\n@returns(200) {items: [map]?, totalResults: int(int32), itemsPerPage: int(int32), links: [map]?} # Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v2/StatutoryInstrument/{instrumentId}\n@desc Get individual statutory instrument or proposed negative by id\n@required {instrumentId: str # Id of instrument requested}\n@returns(200) {value: map{id: str?, name: str?, paperPrefix: str?, paperNumber: int(int32)?, paperYear: str?, procedure: map{id: str?, name: str?}, paperMadeDate: str(date-time)?, commonsLayingDate: str(date-time)?, lordsLayingDate: str(date-time)?, workpackageId: str?, followedByInstrument: map{id: str?, name: str?, procedure: map{id: str?, name: str?}}, precededByInstrument: map{id: str?, name: str?, procedure: map{id: str?, name: str?}}, paperComingIntoForceDate: str(date-time)?, paperComingIntoForceNote: str?, layingBody: map{departmentId: int(int32)?, id: str?, name: str?}, enablingActs: [map]?, timelines: [map]?, link: str?}, links: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/v2/StatutoryInstrument/{instrumentId}/BusinessItems\n@desc Get business items associated with a particular instrument\n@required {instrumentId: str # Id of instrument to get business items for}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@endpoint GET /api/v2/Timeline/{timelineId}/BusinessItems\n@desc Get business items associated with a particular timeline\n@required {timelineId: str # Id of timeline to get business items for}\n@returns(200) Success\n@errors {400: Bad Request}\n\n@end\n"}}