{"files":{"SKILL.md":"---\nname: dlx\ndescription: \"DLx API skill. Use when working with DLx for languages, lexemes. Covers 18 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# DLx\nAPI version: 0.3.1\n\n## Auth\nApiKey Authorization in header\n\n## Base URL\nhttps://api.digitallinguistics.io/v0\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /languages -- get all languages\n3. POST /languages -- create first language\n\n## Endpoints\n18 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Languages\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /languages | Get all Languages |\n| POST | /languages | Add a new Language |\n| PUT | /languages | Upsert (create or replace) a Language |\n| GET | /languages/{languageID} | Retrieve a Language by ID |\n| DELETE | /languages/{languageID} | Delete a Language by ID |\n| PATCH | /languages/{languageID} | Perform a partial update on a Language |\n| GET | /languages/{languageID}/lexemes | Get all Lexemes for a Language |\n| POST | /languages/{languageID}/lexemes | Add a new Lexeme to a Language |\n| PUT | /languages/{languageID}/lexemes | Upsert (add or replace) a Lexeme |\n| GET | /languages/{languageID}/lexemes/{lexemeID} | Get a Lexeme by ID |\n| DELETE | /languages/{languageID}/lexemes/{lexemeID} | Delete a Lexeme by ID |\n| PATCH | /languages/{languageID}/lexemes/{lexemeID} | Perform a partial update on a Lexeme |\n\n### Lexemes\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /lexemes | Get all Lexemes |\n| POST | /lexemes | Add a new Lexeme |\n| PUT | /lexemes | Upsert (add or replace) a Lexeme |\n| GET | /lexemes/{lexemeID} | Get a Lexeme by ID |\n| DELETE | /lexemes/{lexemeID} | Delete a Lexeme by ID |\n| PATCH | /lexemes/{lexemeID} | Perform a partial update on a Lexeme |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all languages?\" -> GET /languages\n- \"Create a language?\" -> POST /languages\n- \"Get language details?\" -> GET /languages/{languageID}\n- \"Delete a language?\" -> DELETE /languages/{languageID}\n- \"Partially update a language?\" -> PATCH /languages/{languageID}\n- \"List all lexemes?\" -> GET /languages/{languageID}/lexemes\n- \"Create a lexeme?\" -> POST /languages/{languageID}/lexemes\n- \"Get lexeme details?\" -> GET /languages/{languageID}/lexemes/{lexemeID}\n- \"Delete a lexeme?\" -> DELETE /languages/{languageID}/lexemes/{lexemeID}\n- \"Partially update a lexeme?\" -> PATCH /languages/{languageID}/lexemes/{lexemeID}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\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 DLx\n@base https://api.digitallinguistics.io/v0\n@version 0.3.1\n@auth ApiKey Authorization in header\n@endpoints 18\n@toc languages(12), lexemes(6)\n\n@group languages\n@endpoint GET /languages\n@desc Get all Languages\n@optional {continuation: any # The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results., deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifModifiedSince: any # The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string., maxItemCount: any # The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header., public: any # Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.}\n@returns(200) 200: Operation successful.\n\n@endpoint POST /languages\n@desc Add a new Language\n@required {body: map # A database resource to upsert}\n@returns(201) 201: The resource was created successfully.\n\n@endpoint PUT /languages\n@desc Upsert (create or replace) a Language\n@required {body: map # A database resource to upsert}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(201) 201: Upsert successful.\n\n@endpoint GET /languages/{languageID}\n@desc Retrieve a Language by ID\n@required {languageID: any # The ID of the Language to perform the operation on}\n@optional {deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifNoneMatch: any # If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.}\n@returns(200) 200: Operation successful.\n@errors {304:304: Not modified.}\n\n@endpoint DELETE /languages/{languageID}\n@desc Delete a Language by ID\n@required {languageID: any # The ID of the Language to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(204) 204: Delete operation successful.\n\n@endpoint PATCH /languages/{languageID}\n@desc Perform a partial update on a Language\n@required {languageID: any # The ID of the Language to perform the operation on, body: map # A database resource to upsert}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(200) 200: Update successful.\n\n@endpoint GET /languages/{languageID}/lexemes\n@desc Get all Lexemes for a Language\n@required {languageID: any # The ID of the Language to perform the operation on}\n@optional {continuation: any # The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results., deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifModifiedSince: any # The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string., maxItemCount: any # The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header., public: any # Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.}\n@returns(200) 200: Operation successful.\n\n@endpoint POST /languages/{languageID}/lexemes\n@desc Add a new Lexeme to a Language\n@required {languageID: any # The ID of the Language to perform the operation on}\n@returns(201) 201: The resource was created successfully.\n\n@endpoint PUT /languages/{languageID}/lexemes\n@desc Upsert (add or replace) a Lexeme\n@required {languageID: any # The ID of the Language to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(201) 201: Upsert successful.\n\n@endpoint GET /languages/{languageID}/lexemes/{lexemeID}\n@desc Get a Lexeme by ID\n@required {languageID: any # The ID of the Language to perform the operation on, lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifNoneMatch: any # If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.}\n@returns(200) 200: Operation successful.\n@errors {304:304: Not modified.}\n\n@endpoint DELETE /languages/{languageID}/lexemes/{lexemeID}\n@desc Delete a Lexeme by ID\n@required {languageID: any # The ID of the Language to perform the operation on, lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(204) 204: Delete operation successful.\n\n@endpoint PATCH /languages/{languageID}/lexemes/{lexemeID}\n@desc Perform a partial update on a Lexeme\n@required {languageID: any # The ID of the Language to perform the operation on, lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(200) 200: Update successful.\n\n@endgroup\n\n@group lexemes\n@endpoint GET /lexemes\n@desc Get all Lexemes\n@optional {continuation: any # The `dlx-continuation` header is used to send a continuation token with the request, when retrieving the next page of results., deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifModifiedSince: any # The `If-Modified-Since` header is used to retrieve only results modified since a given time. The value of this header must be a valid date string., languageID: any # The ID of the Language to perform the operation on, maxItemCount: any # The `dlx-max-item-count` header is used to limit the number of results to a certain amount at a time (by default all results will be returned). If there are more results to be returned, a continuation token will also be sent in the `dlx-continuation` header., public: any # Set this parameter to `true` to include all publicly-accessible resources, not just those that the user is listed as an Owner, Contributor, or Viewer for.}\n@returns(200) 200: Operation successful.\n\n@endpoint POST /lexemes\n@desc Add a new Lexeme\n@optional {languageID: any # The ID of the Language to perform the operation on}\n@returns(201) 201: The resource was created successfully.\n\n@endpoint PUT /lexemes\n@desc Upsert (add or replace) a Lexeme\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts., languageID: any # The ID of the Language to perform the operation on}\n@returns(201) 201: Upsert successful.\n\n@endpoint GET /lexemes/{lexemeID}\n@desc Get a Lexeme by ID\n@required {lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {deleted: any # Setting the `deleted` option to `true` will return results that have been marked for deletion, but not yet deleted from the database. Otherwise requests for a resource marked for deletion will return a 410 error., ifNoneMatch: any # If `If-None-Match` header is used with GET requests to check whether you already have the most up-to-date version of the resource, and therefore do not need the resource sent again. The value of the `If-None-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to reduce bandwidth.}\n@returns(200) 200: Operation successful.\n@errors {304:304: Not modified.}\n\n@endpoint DELETE /lexemes/{lexemeID}\n@desc Delete a Lexeme by ID\n@required {lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(204) 204: Delete operation successful.\n\n@endpoint PATCH /lexemes/{lexemeID}\n@desc Perform a partial update on a Lexeme\n@required {lexemeID: any # The ID of the Lexeme to perform the operation on}\n@optional {ifMatch: any # The `If-Match` header is used with PUT and DELETE requests to check whether you have the most up-to-date version of the resource before updating or deleting it. The value of the `If-Match` header is the ETag (`_etag`) property of the resource. It is recommended that your application use this header whenever possible to avoid data conflicts.}\n@returns(200) 200: Update successful.\n\n@endgroup\n\n@end\n"}}