{"files":{"SKILL.md":"---\nname: erskine-may-api\ndescription: \"Erskine May API skill. Use when working with Erskine May for api. Covers 11 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Erskine May 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/IndexTerm/browse -- returns a list of index terms by start letter.\n3. Explore available endpoints below\n\n## Endpoints\n11 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Api\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/Chapter/{chapterNumber} | Returns a single chapter overview by chapter number. |\n| GET | /api/IndexTerm/browse | Returns a list of index terms by start letter. |\n| GET | /api/IndexTerm/{indexTermId} | Returns an index term by id. |\n| GET | /api/Part | Returns a list of all parts. |\n| GET | /api/Part/{partNumber} | Returns a part by part number. |\n| GET | /api/Search/IndexTermSearchResults/{searchTerm} | Returns a list of index terms which contain the search term. |\n| GET | /api/Search/Paragraph/{reference} | Returns a section overview by reference. |\n| GET | /api/Search/ParagraphSearchResults/{searchTerm} | Returns a list of paragraphs which contain the search term. |\n| GET | /api/Search/SectionSearchResults/{searchTerm} | Returns a list of sections which contain the search term. |\n| GET | /api/Section/{sectionId} | Returns a section by section id. |\n| GET | /api/Section/{sectionId},{step} | Returns a section overview by section id and step. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get Chapter details?\" -> GET /api/Chapter/{chapterNumber}\n- \"List all browse?\" -> GET /api/IndexTerm/browse\n- \"Get IndexTerm details?\" -> GET /api/IndexTerm/{indexTermId}\n- \"List all Part?\" -> GET /api/Part\n- \"Get Part details?\" -> GET /api/Part/{partNumber}\n- \"Get IndexTermSearchResult details?\" -> GET /api/Search/IndexTermSearchResults/{searchTerm}\n- \"Get Paragraph details?\" -> GET /api/Search/Paragraph/{reference}\n- \"Get ParagraphSearchResult details?\" -> GET /api/Search/ParagraphSearchResults/{searchTerm}\n- \"Get SectionSearchResult details?\" -> GET /api/Search/SectionSearchResults/{searchTerm}\n- \"Get Section details?\" -> GET /api/Section/{sectionId}\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 Erskine May API\n@version v1\n@endpoints 11\n@toc api(11)\n\n@endpoint GET /api/Chapter/{chapterNumber}\n@desc Returns a single chapter overview by chapter number.\n@required {chapterNumber: int(int32) # Chapter overview with the chapter number specified}\n@returns(200) {partNumber: int(int32), number: int(int32), title: str?, description: str?, sections: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/IndexTerm/browse\n@desc Returns a list of index terms by start letter.\n@optional {startLetter: str # Index terms by start letter, skip: int(int32)=0 # The number of records to skip from the first, default is 0., take: int(int32)=20 # The number of records to return, default is 20, maximum is 20.}\n@returns(200) {searchTerm: str?, skip: int(int32), take: int(int32), totalResults: int(int32), searchResults: [map]?, searchTerms: [str]?, suggestedSearch: str?} # Success\n\n@endpoint GET /api/IndexTerm/{indexTermId}\n@desc Returns an index term by id.\n@required {indexTermId: int(int32) # Index term by if}\n@returns(200) {id: int(int32), term: str?, displayAs: str?, seeLinks: [map]?, references: [map]?, parentTerm: map{id: int(int32), term: str?, displayAs: str?, seeLinks: [map]?, references: [map]?, parentTerm: map{id: int(int32), term: str?, displayAs: str?, seeLinks: [map]?, references: [map]?, parentTerm: map{id: int(int32), term: str?, displayAs: str?, seeLinks: [map]?, references: [map]?, parentTerm: map, childTerms: [map]?}, childTerms: [map]?}, childTerms: [map]?}, childTerms: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/Part\n@desc Returns a list of all parts.\n@returns(200) Success\n\n@endpoint GET /api/Part/{partNumber}\n@desc Returns a part by part number.\n@required {partNumber: int(int32) # Part by part number}\n@returns(200) {number: int(int32), title: str?, description: str?, chapters: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/Search/IndexTermSearchResults/{searchTerm}\n@desc Returns a list of index terms which contain the search term.\n@required {searchTerm: str # Index terms which contain search term.}\n@optional {skip: int(int32)=0 # The number of records to skip from the first, default is 0., take: int(int32)=20 # The number of records to return, default is 20, maximum is 20.}\n@returns(200) {searchTerm: str?, skip: int(int32), take: int(int32), totalResults: int(int32), searchResults: [map]?, searchTerms: [str]?, suggestedSearch: str?} # Success\n\n@endpoint GET /api/Search/Paragraph/{reference}\n@desc Returns a section overview by reference.\n@required {reference: str # Section overview by reference.}\n@returns(200) {id: int(int32), title: str?, titleChain: str?, subSections: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/Search/ParagraphSearchResults/{searchTerm}\n@desc Returns a list of paragraphs which contain the search term.\n@required {searchTerm: str # Paragraphs which contain search term in their content.}\n@optional {skip: int(int32)=0 # The number of records to skip from the first, default is 0., take: int(int32)=20 # The number of records to return, default is 20, maximum is 20.}\n@returns(200) {searchTerm: str?, skip: int(int32), take: int(int32), totalResults: int(int32), searchResults: [map]?, searchTerms: [str]?, suggestedSearch: str?} # Success\n\n@endpoint GET /api/Search/SectionSearchResults/{searchTerm}\n@desc Returns a list of sections which contain the search term.\n@required {searchTerm: str # Sections which contain search term in their title.}\n@optional {skip: int(int32)=0 # The number of records to skip from the first, default is 0., take: int(int32)=20 # The number of records to return, default is 20, maximum is 20.}\n@returns(200) {searchTerm: str?, skip: int(int32), take: int(int32), totalResults: int(int32), searchResults: [map]?, searchTerms: [str]?, suggestedSearch: str?} # Success\n\n@endpoint GET /api/Section/{sectionId}\n@desc Returns a section by section id.\n@required {sectionId: int(int32) # Section by id.}\n@returns(200) {id: int(int32), title: str?, titleChain: str?, subSections: [map]?, parentSectionId: int(int32)?, parentSectionTitle: str?, chapterNumber: int(int32), chapterTitle: str?, partNumber: int(int32), partTitle: str?, contentHtml: str?, isUpdated: bool, updatedDate: str(date-time)?, footnotes: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@endpoint GET /api/Section/{sectionId},{step}\n@desc Returns a section overview by section id and step.\n@required {sectionId: int(int32) # Section by id., step: int(int32) # Number of sections to step over from given section.}\n@returns(200) {id: int(int32), title: str?, titleChain: str?, subSections: [map]?} # Success\n@errors {400: Bad Request, 404: Not Found}\n\n@end\n"}}