{"files":{"SKILL.md":"---\nname: winsms\ndescription: \"WINSMS API skill. Use when working with WINSMS for credits, sms, shortcode. Covers 11 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# WINSMS\nAPI version: 1.0.0\n\n## Auth\nApiKey AUTHORIZATION in header\n\n## Base URL\nhttps://api.winsms.co.za/api/rest/v1\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /credits/balance -- get your current winsms credit balance\n3. POST /credits/transfer -- create first transfer\n\n## Endpoints\n11 endpoints across 4 groups. See references/api-spec.lap for full details.\n\n### Credits\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /credits/balance | Get your current WinSMS credit balance |\n| POST | /credits/transfer | Transfer credits between main and sub accounts. |\n\n### Sms\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /sms/outgoing/send | Send SMS messages |\n| POST | /sms/outgoing/sendmulti | Send multiple different SMS messages |\n| POST | /sms/outgoing/status | Get SMS delivery statuses |\n| GET | /sms/scheduled | Get a list of scheduled SMS messages |\n| POST | /sms/scheduled/delete | Delete scheduled SMS messages and refund credits |\n| GET | /sms/incoming | Get a list of incoming SMS messages |\n| GET | /sms/incoming/optout | Get a list of incoming opt-out SMS messages |\n\n### Shortcode\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /shortcode/incoming | Get a list of incoming short/long code messages |\n\n### Subaccounts\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /subaccounts | Get a list of all Sub Accounts. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all balance?\" -> GET /credits/balance\n- \"Create a transfer?\" -> POST /credits/transfer\n- \"Create a send?\" -> POST /sms/outgoing/send\n- \"Create a sendmulti?\" -> POST /sms/outgoing/sendmulti\n- \"Create a status?\" -> POST /sms/outgoing/status\n- \"List all scheduled?\" -> GET /sms/scheduled\n- \"Create a delete?\" -> POST /sms/scheduled/delete\n- \"List all incoming?\" -> GET /sms/incoming\n- \"List all optout?\" -> GET /sms/incoming/optout\n- \"List all subaccounts?\" -> GET /subaccounts\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- 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 WINSMS\n@base https://api.winsms.co.za/api/rest/v1\n@version 1.0.0\n@auth ApiKey AUTHORIZATION in header\n@endpoints 11\n@toc credits(2), sms(7), shortcode(1), subaccounts(1)\n\n@group credits\n@endpoint GET /credits/balance\n@desc Get your current WinSMS credit balance\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 500: Internal Server Error}\n\n@endpoint POST /credits/transfer\n@desc Transfer credits between main and sub accounts.\n@required {creditTransferDetails: map # The details of the credit transfer. Sender account number, recipient account number, and number of credits to transfer.}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized, 404: Not found, 405: Method Not Allowed, 413: Payload Too Large, 415: Unsupported Media Type, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endgroup\n\n@group sms\n@endpoint POST /sms/outgoing/send\n@desc Send SMS messages\n@required {newMessageDetails: map # The message, recipients and delivery options of an SMS message to be sent.}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized, 404: Not found, 405: Method Not Allowed, 413: Payload Too Large, 415: Unsupported Media Type, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint POST /sms/outgoing/sendmulti\n@desc Send multiple different SMS messages\n@required {multiMessageDetails: map # The messages, recipients and delivery options of multiple SMS messages to be sent.}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized, 404: Not found, 405: Method Not Allowed, 413: Payload Too Large, 415: Unsupported Media Type, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint POST /sms/outgoing/status\n@desc Get SMS delivery statuses\n@required {messageStatusRequest: [int] # An array of WinSMS API Ids received after submitting messages to the ***/sms/outgoing/send*** endpoint.  A maximum of 1000 API Ids can be supplied in a single request.}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized, 404: Not found, 405: Method Not Allowed, 413: Payload Too Large, 415: Unsupported Media Type, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint GET /sms/scheduled\n@desc Get a list of scheduled SMS messages\n@optional {offset: any # ***Optional*** - The number of items to skip before starting to return results. Default 0. Minimum 0., limit: any # ***Optional*** - The number of items to return. Default 100. Minimum 1. Maximum 1000.}\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint POST /sms/scheduled/delete\n@desc Delete scheduled SMS messages and refund credits\n@required {messageDeleteRequest: [int] # An array of WinSMS API Ids received after submitting scheduled messages to the ***/sms/outgoing/send*** endpoint. A maximum of 1000 API Ids can be supplied in a single request.}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized, 404: Not found, 405: Method Not Allowed, 413: Payload Too Large, 415: Unsupported Media Type, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint GET /sms/incoming\n@desc Get a list of incoming SMS messages\n@optional {offset: any # ***Optional*** - The number of items to skip before starting to return results. Default 0. Minimum 0., limit: any # ***Optional*** - The number of items to return. Default 100. Minimum 1. Maximum 1000.}\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint GET /sms/incoming/optout\n@desc Get a list of incoming opt-out SMS messages\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 500: Internal Server Error}\n\n@endgroup\n\n@group shortcode\n@endpoint GET /shortcode/incoming\n@desc Get a list of incoming short/long code messages\n@optional {offset: any # ***Optional*** - The number of items to skip before starting to return results. Default 0. Minimum 0., limit: any # ***Optional*** - The number of items to return. Default 100. Minimum 1. Maximum 1000.}\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endgroup\n\n@group subaccounts\n@endpoint GET /subaccounts\n@desc Get a list of all Sub Accounts.\n@returns(200) OK\n@errors {401: Unauthorized, 404: Not found, 405: Method Not Allowed, 500: Internal Server Error}\n\n@endgroup\n\n@end\n"}}