{"files":{"SKILL.md":"---\nname: keyserv\ndescription: \"KeyServ API skill. Use when working with KeyServ for KeysApi, ProductsApi, SubscriptionsApi. Covers 24 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# KeyServ\nAPI version: 1.4.5\n\n## Auth\nApiKey X-Api-Key in header\n\n## Base URL\nhttps://keyserv.solutions\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /v1/KeysApi/Find/{serial} -- verify access\n3. POST /v1/ProductsApi/Count -- create first Count\n\n## Endpoints\n24 endpoints across 3 groups. See references/api-spec.lap for full details.\n\n### KeysApi\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/KeysApi/Find/{serial} |  |\n| GET | /v1/KeysApi/Current/{serial} |  |\n| GET | /v1/KeysApi/Custom/{serial} |  |\n| GET | /v1/KeysApi/Expiry/{serial} |  |\n\n### ProductsApi\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/ProductsApi/Count |  |\n| POST | /v1/ProductsApi/Find |  |\n| POST | /v1/ProductsApi/List |  |\n| PATCH | /v1/ProductsApi |  |\n| POST | /v1/ProductsApi |  |\n| POST | /v1/ProductsApi/Save |  |\n| DELETE | /v1/ProductsApi/{serial} |  |\n| POST | /v1/ProductsApi/{serial} |  |\n\n### SubscriptionsApi\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/SubscriptionsApi/Count |  |\n| POST | /v1/SubscriptionsApi/Find |  |\n| POST | /v1/SubscriptionsApi/List |  |\n| PUT | /v1/SubscriptionsApi |  |\n| POST | /v1/SubscriptionsApi |  |\n| PATCH | /v1/SubscriptionsApi/Disable |  |\n| POST | /v1/SubscriptionsApi/Disable |  |\n| PATCH | /v1/SubscriptionsApi/Enable |  |\n| POST | /v1/SubscriptionsApi/Enable |  |\n| POST | /v1/SubscriptionsApi/Save |  |\n| DELETE | /v1/SubscriptionsApi/{serial} |  |\n| POST | /v1/SubscriptionsApi/{serial} |  |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Get Find details?\" -> GET /v1/KeysApi/Find/{serial}\n- \"Get Current details?\" -> GET /v1/KeysApi/Current/{serial}\n- \"Get Custom details?\" -> GET /v1/KeysApi/Custom/{serial}\n- \"Get Expiry details?\" -> GET /v1/KeysApi/Expiry/{serial}\n- \"Create a Count?\" -> POST /v1/ProductsApi/Count\n- \"Create a Find?\" -> POST /v1/ProductsApi/Find\n- \"Create a List?\" -> POST /v1/ProductsApi/List\n- \"Create a ProductsApi?\" -> POST /v1/ProductsApi\n- \"Create a Save?\" -> POST /v1/ProductsApi/Save\n- \"Delete a ProductsApi?\" -> DELETE /v1/ProductsApi/{serial}\n- \"Create a SubscriptionsApi?\" -> POST /v1/SubscriptionsApi\n- \"Create a Disable?\" -> POST /v1/SubscriptionsApi/Disable\n- \"Create a Enable?\" -> POST /v1/SubscriptionsApi/Enable\n- \"Delete a SubscriptionsApi?\" -> DELETE /v1/SubscriptionsApi/{serial}\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- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\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 KeyServ\n@base https://keyserv.solutions\n@version 1.4.5\n@auth ApiKey X-Api-Key in header\n@endpoints 24\n@hint download_for_search\n@toc KeysApi(4), ProductsApi(8), SubscriptionsApi(12)\n\n@group KeysApi\n@endpoint GET /v1/KeysApi/Find/{serial}\n@required {serial: str(guid)}\n@returns(200)\n\n@endpoint GET /v1/KeysApi/Current/{serial}\n@required {serial: str(guid)}\n@returns(200)\n\n@endpoint GET /v1/KeysApi/Custom/{serial}\n@required {serial: str(guid)}\n@returns(200)\n\n@endpoint GET /v1/KeysApi/Expiry/{serial}\n@required {serial: str(guid)}\n@returns(200)\n\n@endgroup\n\n@group ProductsApi\n@endpoint POST /v1/ProductsApi/Count\n@returns(200)\n\n@endpoint POST /v1/ProductsApi/Find\n@optional {page: int(int32)}\n@returns(200)\n\n@endpoint POST /v1/ProductsApi/List\n@optional {page: int(int32)}\n@returns(200)\n\n@endpoint PATCH /v1/ProductsApi\n@returns(204)\n\n@endpoint POST /v1/ProductsApi\n@returns(204)\n\n@endpoint POST /v1/ProductsApi/Save\n@returns(201)\n\n@endpoint DELETE /v1/ProductsApi/{serial}\n@required {X-Api-Key: str(guid), serial: str(guid)}\n@returns(204)\n\n@endpoint POST /v1/ProductsApi/{serial}\n@required {X-Api-Key: str(guid), serial: str(guid)}\n@returns(204)\n\n@endgroup\n\n@group SubscriptionsApi\n@endpoint POST /v1/SubscriptionsApi/Count\n@returns(200)\n\n@endpoint POST /v1/SubscriptionsApi/Find\n@returns(200)\n\n@endpoint POST /v1/SubscriptionsApi/List\n@optional {page: int(int32)}\n@returns(200)\n\n@endpoint PUT /v1/SubscriptionsApi\n@returns(204)\n\n@endpoint POST /v1/SubscriptionsApi\n@returns(204)\n\n@endpoint PATCH /v1/SubscriptionsApi/Disable\n@returns(204)\n\n@endpoint POST /v1/SubscriptionsApi/Disable\n@returns(204)\n\n@endpoint PATCH /v1/SubscriptionsApi/Enable\n@returns(204)\n\n@endpoint POST /v1/SubscriptionsApi/Enable\n@returns(204)\n\n@endpoint POST /v1/SubscriptionsApi/Save\n@returns(201)\n\n@endpoint DELETE /v1/SubscriptionsApi/{serial}\n@required {X-Api-Key: str(guid), serial: str(guid), keep: bool}\n@returns(204)\n\n@endpoint POST /v1/SubscriptionsApi/{serial}\n@required {X-Api-Key: str(guid), serial: str(guid), keep: bool}\n@returns(204)\n\n@endgroup\n\n@end\n"}}