{"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 -- verify access\n3. POST /credits/transfer -- create first transfer\n\n## Endpoints\n\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\n\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 incoming?\" -> GET /shortcode/incoming\n- \"List all subaccounts?\" -> GET /subaccounts\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- List endpoints may support pagination; check for limit, offset, or cursor params\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get winsms -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search winsms\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 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"}}