Transmit SMS API

Classic v1 REST API — fully supported, not deprecated. SMS sending with single-request multi-recipient batches and custom tracked-link domains, plus everything v2 does not carry: contacts, lists and custom fields, bulk CSV import, dedicated virtual numbers, inbound keywords, email-to-SMS and all campaign reporting. 35 operations, OpenAPI 3.0.0, JSON or XML responses. Authenticated with HTTP Basic (API key + account secret).

OpenAPI Specification

kudosity-transmit-sms-openapi-original.yml Raw ↑
{"openapi":"3.0.0","info":{"title":"Transmit SMS API","description":"<p>With so many SMS APIs on the market today, you might think that they all do the same thing: send text messages. But with our flexible and powerful suite of APIs, you can do more than that.</p>","version":"1.0.0"},"servers":[{"url":"https://api.transmitsms.com"}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use the `Authorization` header with the value `Basic {base64(api_key:api_secret)}`.\n- `api_key`: Your API key\n- `api_secret`: Your API secret\n"}}},"paths":{"/send-sms.json":{"post":{"tags":["SMS"],"summary":"Send SMS","description":"You can elect to pass us the recipient numbers from your database each time you make a call, or you can elect to store recipient data in a contact list and submit only the list_id to trigger the send. This is best for large databases. To add a list please refer to the add-list call.","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["message","to"],"properties":{"message":{"type":"string","description":"Message Content Can be up to 612 alphanumeric characters. A part is 160 characters for a single SMS or 153 characters per part for multi-part SMS. If the message contains Unicode UTF8 encoded characters such as emoji’s or non latin character sets, then a single part is 70 characters or 67 characters for multiple parts. More information on message length and encoding: <a href=\"https://support.transmitsms.com/support/solutions/articles/44001940835-sms-message-length-and-character-count\">SMS message length and character count</a>","example":"Hello, world!"},"to":{"type":"string","description":"Recipient Number/s Single number or set of up to 500 comma separated numbers to send the SMS to. Invalid numbers will be ignored. Number must be defined in E.164 international format. You can use countrycode parameter to format numbers that are in local format.","example":"61478038915"},"list_id":{"type":"integer","description":"Recipient list This ID is the numerical reference to one of your recipient lists. It is found in the URL and displayed on a destination list page in your account. A list ID can also be created using the add-list call.","example":12345},"countrycode":{"type":"string","description":"Format the to number in international format. 2 letter ISO 3166 format country code or country name. Automatically formats numbers to international format required for reliable SMS delivery. eg. In Australia 0422222222 will become 6142222222 when set to AU or Australia. If not set to numbers must be defined in E.164 international format.\n\n| COUNTRY | COUNTRY CODE     | LOCAL          | INTERNATIONAL          |\n|--------|--------------|----------------------|----------------------|\n| Australia    | au      | 0491570156        |61491570156    |\n| New Zealand    | nz  | 0212670129    |64212670129         |\n| United Kingdom   | gb       | 0750017696    |44750017696  |\n| United States    | us  | 2513551145        |12513551145   |\n","example":"US"},"from":{"type":"string","description":"Sender ID Usually a dedicated virtual mobile number (VMN) or short code found in the NUMBERS section of your account. If no value is set here, it will default to the shared Sender ID for the country you are sending to. Can also be an 11 character alphanumeric sender if available for the destination country. You will need to click on the Add Sender ID button found in the NUMBERS section of your account in order to request the use of an Alphanumeric Sender ID. Sender ID functionality varies by country. <a href=\"https://portal.transmitsms.com/s/article/Global-Sender-ID-Information\">Global Sender ID Information</a> Mobile and dedicated VMN's should be in international format. Alphanumeric senders (cannot be replied to) can have a maximum of 11 characters. No spaces. If opt out is required, using Custom Sender ID, use parameter [unsub-reply-link] in message to insert opt out link.","example":"Sender123"},"send_at":{"type":"string","format":"date-time","description":"Schedule a message at a specific time. Must be in ISO8601 format YYYY-MM-DD HH:MM:SS utilising UTC Timezone. Eg. 2020-04-27 06:00:00","example":"2024-04-24T12:00:00Z"},"validity":{"type":"integer","description":"Expire a message send if it is undeliverable Specify the maximum time to attempt to deliver. In minutes, 0 (zero) or not set implies maximum validity period. If a message is not delivered and not failed it is given a PENDING status in the system. These messages can be requested to be expired by the carrier after a certain time. This will return a DLR with a soft-bounce value. If no value is set, messages that remain in a PENDING state will be expired by the system automatically after 72hrs. <a href=\"https://support.transmitsms.com/support/solutions/articles/44001940868-what-does-a-message-with-a-pending-status-mean-\">What does a message with a pending status mean?</a>","example":1440},"replies_to_email":{"type":"string","description":"Send Replies to this Email Specify an email address to send responses to this message. Email will come from the email address @transmitsms.com eg. 0456789010@transmitsms.com NOTE: If expectation is for replies to this email to be returned to the recipient as SMS then the email address must be authorised to send messages in your account under the 'EMAIL SMS' section. Emails can also be authorised using the add-email call. <a href=\"https://support.transmitsms.com/support/solutions/articles/44001940840-how-to-set-up-email-sms\">How to set up Email SMS</a>","example":"example@example.com"},"tracked_link_url":{"type":"string","description":"Converts this URL into a unique shortened tracking link Converts this URL to unique tapth.is/xxxxxx tracking link for each contact. Inserted into message with variable [tracked-link]. Only one [tracked-link] can be defined per message.","example":"https://example.com"},"link_hits_callback":{"type":"string","description":"Send a link hit notification to this callback URL A URL on your system which we can call to notify you of a hit on your [tracked-link]. If required, this parameter can be different for each message sent. Will override the default DLR Callback URL if set in the SETTINGS section of your account.","example":"https://callback.example.com/linkhit"},"dlr_callback":{"type":"string","description":"Send a delivery notification to this callback URL A URL on your system which we can call to notify you of Delivery Receipts. If required, this parameter can be different for each message sent. Will override the default DLR Callback URL if set in the SETTINGS section of your account.","example":"https://callback.example.com/delivery"},"reply_callback":{"type":"string","description":"Send a reply notification to a callback URL A URL on your system which we can call to notify you of incoming messages. If required, this parameter can be different for each message sent. Will override the default Reply Callback URL if set in the SETTINGS section of your account.","example":"https://callback.example.com/reply"}}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"},"example":"<?xml version=\"1.0\"?>\n<response>\n    <message_id>339683245</message_id>\n    <send_at>2020-06-18 02:42:06</send_at>\n    <recipients>1</recipients>\n    <cost>0.087</cost>\n    <sms>1</sms>\n    <list>\n        <id>4070887</id>\n        <name>My Test List</name>\n    </list>\n    <delivery_stats>\n        <delivered>0</delivered>\n        <pending>0</pending>\n        <bounced>0</bounced>\n        <responses>0</responses>\n        <optouts>0</optouts>\n    </delivery_stats>\n    <error>\n        <code>SUCCESS</code>\n        <description>OK</description>\n        <header>200</header>\n    </error>\n</response>"},"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"integer","description":"Numeric ID assigned to the message sent. This can be used in conjunction with other calls to retrieve information and reporting about the message sent.","example":339683245},"send_at":{"type":"string","format":"date-time","description":"Date and time that message was sent from your account Returned in ISO8601 format YYYY-MM-DD HH:MM:SS in UTC Timezone.","example":"2020-06-18T02:42:06Z"},"recipients":{"type":"integer","description":"Recipient count. Count of number of recipients message was sent to either in list or to parameter.","example":1},"cost":{"type":"number","description":"Total cost of all messages. Returned as value per account currency to 3 decimal places 0.000","example":0.087},"sms":{"type":"integer","description":"Total number of message parts delivered. If the message is longer than 160 characters this will return count of all parts. Eg. if a 180 character message is delivered to 2 recipients. Value returned will be 4.","example":1},"list":{"type":"object","description":"Information about the list the message was sent Timezone.","properties":{"id":{"type":"integer","description":"This ID is the numerical reference to one of your recipient lists. It is found in the URL and displayed on a destination list page in your account. "},"name":{"type":"string","description":"Name of the list that message was sent to."}}},"delivery_stats":{"type":"object","description":"Delivery stats.","properties":{"delivered":{"type":"integer","description":"Number of delivered messages.","example":0},"pending":{"type":"integer","description":"Number of pending messages.","example":0},"bounced":{"type":"integer","description":"Number of bounced messages.","example":0},"responses":{"type":"integer","description":"Number of responses.","example":0},"optouts":{"type":"integer","description":"Number of opt-outs.","example":0}}},"error":{"type":"object","description":"Error messages related to this call:\n\n| CODE          | HEADER           | DESCRIPTION                                                           |\n|---------------|------------------|-----------------------------------------------------------------------|\n| LEDGER_ERROR  | 400              | There was a problem with payment. Please check the output for more details. |\n| LIST_EMPTY    | 400              | The list you provided doesn't have active recipients.                 |\n| RECIPIENTS_ERROR | 400            | No valid recipients left after validation.                            |\n","properties":{"code":{"type":"string","description":"Error code.","example":"SUCCESS"},"header":{"type":"integer","description":"Error code.","example":"400"},"description":{"type":"string","description":"Description of the error.","example":"OK"}}}}}}}}}}},"/add-contacts-bulk.json":{"post":{"tags":["Contacts & Lists"],"summary":"Bulk Add Contacts from CSV File","description":"Add bulk contacts to a list from a file\n\nThe add-contacts-bulk request can be used to add a CSV file of contacts to an existing list. It can also be used to create a new list and upload a CSV file of contacts to it. If a contact is added that already exists in a list, any existing data will be updated.\n\n**The return code 200 is only used to indicate that the API call has successfully hit our server. It in no way indicates if the contacts have been added\\updated successfully.\nTo find the status of an upload, including error messages, you must use the add-contacts-bulk-progress endpoint.**\n\n```\nCSV File Format and Example:\n        Firstname,Lastname,Mobile,\"Custom Field 1\"\n        Jane,Doe,61412345678,10.44\n\nThe minimum required for successful import is Mobile.\n\nThe order above must be followed.\n```","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["list_id","name"],"properties":{"list_id":{"type":"integer","description":"ID of the list to be added to. This ID is the numerical reference to one of your recipient lists. Required if name is not set."},"name":{"type":"string","description":"Name of the list to create and add contacts to. If set, a new list will be created with this name. The list ID will be returned in the API response. Required if list_id is not set."},"countrycode":{"type":"string","description":"Format the number in international format. 2-letter ISO 3166 format country code or country name. Automatically formats numbers to international format required for reliable SMS delivery."},"file_url":{"type":"string","description":"URL location of the CSV file containing the contact list.\n\n- Must be a direct URL to the file, cannot be a redirected URL. \n- Cannot be a file on a local machine.\n- File must contain a column with the header ‘mobile’\n- To maximise API performance no error will be returned if call fails. ID returned in response will be automatically deleted.\n- To get status of call use add-contacts-bulk-progress\n- Basic auth can be used to secure file eg. https://username:password@domain.com/file\n"},"field_n":{"type":"string","description":"Create or map a custom field.\n\n- There are 10 custom field slots available. The value n is the number of the custom field slot 1 through 10.\n- Create a field name using field_n=name e.g. field_1=email.\n- Headers in your file that match the custom field name will be automatically mapped. e.g. Column in CSV file named email will be automatically mapped to field_1=email.\n- If name contains spaces or symbols, other than letters or numbers, these must be URL encoded\n"}}}}}},"responses":{"200":{"description":"Successful response containing the list ID and error details.","content":{"application/json":{"schema":{"type":"object","properties":{"list_id":{"type":"integer","description":"Numeric ID of the list."},"error":{"type":"object","properties":{"code":{"type":"string","description":"Error code indicating the status of the operation."},"description":{"type":"string","description":"Description of the error status."}}}}}}}}}}},"/cancel-sms.json":{"post":{"tags":["SMS"],"summary":"Cancel SMS","description":"Messages scheduled can be cancelled using the message ID. Return a JSON or XML response by adding the appropriate extension to the base url (See examples).","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"Numeric ID assigned to the message sent."}}}}}},"responses":{"200":{"description":"OK","headers":{"Date":{"schema":{"type":"string","example":"Thu, 18 Jun 2020 11:20:59 GMT"}},"Content-Type":{"schema":{"type":"string","example":"text/xml; charset=utf-8"}},"Transfer-Encoding":{"schema":{"type":"string","example":"chunked"}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"Server":{"schema":{"type":"string","example":"nginx/1.14.2"}},"Expires":{"schema":{"type":"string","example":"Thu, 19 Nov 1981 08:52:00 GMT"}},"Cache-Control":{"schema":{"type":"string","example":"no-store, no-cache, must-revalidate"}},"Pragma":{"schema":{"type":"string","example":"no-cache"}},"X-Mashape-Billing":{"schema":{"type":"string","example":"Queries=1"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}},"Vary":{"schema":{"type":"string","example":"Accept-Encoding"}}},"content":{"text/plain":{"schema":{"type":"string"},"example":"<?xml version=\"1.0\"?>\n<response>\n    <success>OK</success>\n    <error>\n        <code>SUCCESS</code>\n        <description>OK</description>\n    </error>\n</response>"},"application/json":{"schema":{"type":"object"},"example":{"success":"OK","error":{"code":"SUCCESS","description":"OK"}}}}}}}},"/format-number.json":{"post":{"tags":["SMS"],"summary":"Format Number","description":"In the majority of cases, mobile phone number data coming from external systems is not ideal for SMS delivery. For highest reliability and to be able to route correctly a mobile number should be formatted in international format E.164\nNormally however a number is stored in a CRM or contact database in local format, with spaces, hyphens and other types of unwanted characters that can cause a delivery to fail. The format-number call is used to sanitise a number by combining the country and the number. eg.\n> Australia 0438 333 061 will become 61438333061\n> New Zealand 0212172782 will become 64212172782\n> USA (281) 869-1226 will become 12818691226","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["msisdn","countrycode"],"properties":{"msisdn":{"type":"integer","description":"Numeric to check Badly formatted number coming from source such as CRM or exported list."},"countrycode":{"type":"string","description":"2 letter ISO countrycode or country name <a href=\"https://support.transmitsms.com/support/solutions/articles/44001940675-global-sms-delivery-list\">Global SMS delivery list</a>"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"object","properties":{"countrycode":{"type":"integer","description":"International dialling code for destination country"},"nationalnumber":{"type":"integer","description":"Reformatted number without leading 0"},"national_leading_zeroes":{"type":"integer","description":"Unused, currently returns as per national_number"},"rawinput":{"type":"string","description":"Unused, always returns null"},"international":{"type":"integer","description":"Reformatted number in international format"},"type":{"type":"integer","description":"Returns numerical value depending on type of number.\n\n| VALUE | TYPE           |\n|-------|----------------|\n| 0     | Landline       |\n| 1     | Mobile Number  |\n| 10    | Invalid number |\n"},"isValid":{"type":"boolean","description":"Checks to see if number is valid. Returns true or false."}}},"error":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"}}}}},"example":{"number":{"countrycode":65,"nationalnumber":96112234,"national_leading_zeroes":96112234,"rawinput":null,"international":6596112234,"type":1,"isValid":true},"error":{"code":"SUCCESS","description":"OK"}}}}}}}},"/get-sms-responses.json":{"post":{"tags":["SMS"],"summary":"Get Responses by MessageID, Keyword or Mobile","description":"Responses to your outgoing messages can be picked up in a few different ways. Your DLR Callback URL in your account settings, is the default URL we post incoming DLR's to. You can also set the DLR Callback URL separately for individual messages, using a parameter on the send-sms call. You can also poll the following endpoints for responses.","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["message_id","keyword_id","keyword","number"],"properties":{"message_id":{"type":"integer","description":"Numeric ID assigned to the message sent. Required if **keyword_id** or **keyword is** not set."},"start":{"type":"string","format":"date-time","description":"A date within the last 12 months to start the report from. Must be in ISO8601 format YYYY-MM-DD HH:MM:SS utilizing UTC Timezone. If start and end date not supplied, will get everything from the last 30 days only."},"end":{"type":"string","format":"date-time","description":"A date within the last 12 months to end the report at. Must be in ISO8601 format YYYY-MM-DD HH:MM:SS utilizing UTC Timezone. If start and end date not supplied, will get everything from the last 30 days only."},"keyword_id":{"type":"integer","description":"Numeric ID assigned to the keyword. ID is assigned on creation of keyword in your account. A keyword can be created using add-keyword request. Keyword ID can be returned using the get-keyword request. NOTE A keyword IS NOT a specific string within the message. Required if **message_id** or **keyword** not set"},"keyword":{"type":"string","description":"Keyword name. Name is assigned on creation of keyword in your account. A keyword can be created using add-keyword request. Keyword name can be returned using the get-keyword request. NOTE A keyword IS NOT a specific string within the message. Required if **message_id** or **keyword** not set"},"number":{"type":"integer","description":"Filter results by Virtual Mobile Number (VMN). Get responses for messages containing a keyword received on a specific VMN. Numbers can be returned using the get-numbers request. Required if **keyword** not set"},"msisdn":{"type":"integer","description":"Filter results by Responder Mobile Number (VMN). Get responses to messages that were from a specific mobile number."},"include_original":{"type":"boolean","description":"Include text of message that reply was sent to."},"page":{"type":"integer","description":"Page number, for pagination."},"max":{"type":"integer","description":"Maximum results returned per page."}}}}}},"responses":{"200":{"description":"Successful response","content":{"text/plain":{"schema":{"type":"string"},"example":"<?xml version=\"1.0\"?>\n<response>\n    <page>\n        <count>1</count>\n        <number>1</number>\n    </page>\n    <total>1</total>\n    <responses>\n        <item>\n            <id>36573149</id>\n            <message_id>339814842</message_id>\n            <list_id>4070947</list_id>\n            <received_at>2020-06-23 10:03:44</received_at>\n            <first_name/>\n            <last_name/>\n            <msisdn>61478038915</msisdn>\n            <response>Hi There, this is a sample response</response>\n            <longcode>61429720235</longcode>\n            <original_message>This is my message, click on my link TapTh.is/hO2HL7b0</original_message>\n        </item>\n    </responses>\n    <error>\n        <code>SUCCESS</code>\n        <description>OK</description>\n    </error>\n</response>"},"application/json":{"schema":{"type":"object"},"example":{"page":{"count":1,"number":1},"total":1,"responses":[{"id":36573149,"message_id":339814842,"list_id":4070947,"received_at":"2020-06-23 10:03:44","first_name":null,"last_name":null,"msisdn":61478038915,"response":"Hi There, this is a sample response","longcode":61429720235,"original_message":"This is my message, click on my link TapTh.is/hO2HL7b0"}],"error":{"code":"SUCCESS","description":"OK"}}}}}}}},"/get-user-sms-responses.json":{"get":{"tags":["SMS"],"summary":"Get Responses by  Time Frame","description":"Gets the messsages from a defined timeframe.\n\n## Pagination\n\nThis endpoint supports pagination using the page/max pattern:\n\n**Parameters:**\n- `page`: Page number starting from 1 (default: 1)\n- `max`: Maximum results per page (default: 10, recommended: 10-100)\n- `mobile`: Required mobile number filter (E.164 format)\n- `start`/`end`: Optional date range filters\n\n**Response Structure:**\nThe response includes pagination metadata:\n- `page.count`: Total number of pages available\n- `page.number`: Current page number\n- `total`: Total count of SMS responses matching the filters\n\n**Navigation Examples:**\n```\n# First page of responses for a mobile number (default)\nGET /get-user-sms-responses.json?mobile=61478038915\n\n# Second page with 25 results per page\nGET /get-user-sms-responses.json?mobile=61478038915&page=2&max=25\n\n# Responses within date range with pagination\nGET /get-user-sms-responses.json?mobile=61478038915&start=2020-04-01T00:00:00Z&end=2020-04-30T23:59:59Z&max=50\n\n# Navigate through all pages\nGET /get-user-sms-responses.json?mobile=61478038915&page=1&max=20\nGET /get-user-sms-responses.json?mobile=61478038915&page=2&max=20\n# Continue until page.number >= page.count\n```\n\n**Best Practices:**\n- Use max=10-25 for UI display of conversation history\n- Use max=50-100 for data export or analysis tasks\n- Always specify date ranges for large datasets to improve performance\n- Check page.count to determine if more pages exist\n- Use sorting parameters (sort_field, order) to organize results effectively\n- Consider the mobile number is required - this endpoint is designed for per-contact message history","security":[{"basicAuth":[]}],"parameters":[{"in":"query","name":"mobile","schema":{"type":"integer"},"required":true,"description":"The mobile number of the recipient. Number must be defined in E.164 international format. You can use countrycode parameter to format numbers that are in local format.","example":61478038915},{"in":"query","name":"countrycode","schema":{"type":"string"},"description":"Format the mobile number to international format using 2-letter ISO 3166 country code or country name. 2 letter ISO 3166 format country code or country name. Automatically formats numbers to international format required for reliable SMS delivery. eg. In Australia 0422222222 will become 6142222222 when set to AU or Australia. If not set to numbers must be defined in E.164 international format.\n| COUNTRY        | COUNTRY CODE | LOCAL      | INTERNATIONAL |\n|----------------|--------------|------------|---------------|\n| Australia      | au           | 0491570156 | 61491570156   |\n| New Zealand    | nz           | 0212670129 | 64212670129   |\n| United Kingdom | gb           | 0750017696 | 44750017696   |\n| United States  | us           | 2513551145 | 12513551145   |\n","example":"au"},{"in":"query","name":"start","schema":{"type":"string","format":"date-time"},"description":"The start date and time to filter messages. Must be in ISO8601 format YYYY-MM-DD HH:MM:SS utilizing UTC Timezone. If start and end date not supplied, will get everything from the account registration to current date.","example":"2020-04-27 06:00:00"},{"in":"query","name":"end","schema":{"type":"string","format":"date-time"},"description":"The end date and time to filter messages. Must be in ISO8601 format YYYY-MM-DD HH:MM:SS utilizing UTC Timezone. If start and end date not supplied, will get everything from the account registration to current date.","example":"2020-04-27 06:00:00"},{"in":"query","name":"sort_field","schema":{"type":"string"},"description":"Sort by one of the following fields: delivery_status, message_id, datetime_send.\n","example":"delivery_status"},{"in":"query","name":"order","schema":{"type":"string"},"description":"Order by either ascending (asc) or descending (desc).","example":"asc"},{"in":"query","name":"page","schema":{"type":"integer"},"description":"Page number for pagination.","example":1},{"in":"query","name":"max","schema":{"type":"integer"},"description":"Maximum results returned per page.","example":10}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Numeric ID assigned to the message received."},"message_id":{"type":"integer","description":"Numeric ID assigned to the message that was responded to."},"list_id":{"type":"integer","description":"Numeric ID of the list that the original message was sent to. Returns 0 if message was not sent to a list."},"received_at":{"type":"string","format":"date-time","description":"Date and time that response was received to your account. Returned in ISO8601 format YYYY-MM-DD HH:MM:SS in UTC Timezone."},"first_name":{"type":"string","description":"First name of responder. Retrieved from list contact if available."},"last_name":{"type":"string","description":"Last name of responder. Retrieved from list contact if available."},"msisdn":{"type":"integer","description":"Mobile number of responder."},"error":{"type":"object","description":"Error messages related to this call. For general errors see the API Introduction.\n\n| CODE           | HEADER | DESCRIPTION                                                |\n|----------------|--------|------------------------------------------------------------|\n| FIELD_INVALID  | 400    | If you provide 'keyword', you must provide 'number'        |\n| FIELD_INVALID  | 400    | Field \"keyword_id\" has wrong type, expected type - numeric |\n| NO_ACCESS      | 400    | You do not have access to this ‘message’                   |\n","properties":{"CODE":{"type":"integer","description":"Error code."},"HEADER":{"type":"integer","description":"HTTP status code."},"DESCRIPTION":{"type":"string","description":"Description of the error."}}}}}},"text/plain":{"schema":{"type":"string"},"example":"<?xml version=\"1.0\"?>\n<response>\n    <page>\n        <count>1</count>\n        <number>1</number>\n    </page>\n    <total>4</total>\n    <responses>\n        <item>\n            <id>36573149</id>\n            <message_id>339814842</message_id>\n            <list_id>4070947</list_id>\n            <received_at>2020-06-23 10:03:44</received_at>\n            <first_name/>\n            <last_name/>\n            <msisdn>61478038915</msisdn>\n            <response>Hi There, this is a sample response</response>\n            <longcode>61429720235</longcode>\n        </item>\n        <item>\n            <id>36573132</id>\n            <message_id>340267059</message_id>\n            <list_id>4070887</list_id>\n            <received_at>2020-06-23 10:03:05</received_at>\n            <first_name>Ella</first_name>\n            <last_name>B</last_name>\n            <msisdn>61478038915</msisdn>\n            <response>I there, this is a sample response</response>\n            <longcode>61429625067</longcode>\n        </item>\n        <item>\n            <id>36283700</id>\n            <message_id>338808275</message_id>\n            <list_id>4070947</list_id>\n            <received_at>2020-06-15 01:15:49</received_at>\n            <first_name/>\n            <last_name/>\n            <msisdn>61478038915</msisdn>\n            <response>Received response</response>\n            <longcode>61436446702</longcode>\n        </item>\n        <item>\n            <id>36230542</id>\n            <message_id>338116740</message_id>\n            <list_id>4070947</list_id>\n            <received_at>2020-06-12 00:06:10</received_at>\n            <first_name/>\n            <last_name/>\n            <msisdn>61478038915</msisdn>\n            <response>Testing email sms</response>\n            <longcode>61429238797</longcode>\n        </item>\n    </responses>\n    <error>\n        <code>SUCCESS</code>\n        <description>OK</description>\n    </error>\n</response>"}}}}}},"/get-sms.json":{"post":{"tags":["Reporting"],"summary":"Get Message/Campaign Information","description":"\nThis will return information about the campaign, including the message, list etc. It will not however return individual messages with populated variables or tracking links. To retrieve final individual messages use **get-sms-delivery-status.**","security":[{"basicAuth":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"message_id":{"type":"integer","description":"Numeric ID assigned to the message sent.\nThis ID was returned in the send-sms response.\n"}},"required":["message_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"integer","description":"Numeric ID assigned to the message that was sent"},"send_at":{"type":"string","format":"date-time","description":"Date and time that message was sent from your account. Returned in ISO8601 format YYYY-MM-DD HH:MM:SS in UTC Timezone."},"recipients":{"type":"integer","description":"Number of recipients message was sent to"},"cost":{"type":"number","format":"double","description":"Total cost of all messages. Returned as value per account currency to 3 decimal places 0.000"},"sms":{"type":"integer","description":"Total number of message parts delivered. If the message is longer than 160 characters this will return count of all parts. Eg. if a 180 character message is delivered to 2 recipients. Value returned will be 4."},"message":{"type":"string","description":"Content of message sent"},"list":{"type":"string","description":"ID and name of list delivered to"},"delivery_stats":{"type":"object","description":"Report of messages delivered Count of different reporting stats we collect. Delivery reports are marked using a DLR (Delivery Receipt) or Acknowledgement (ACK) returned from the carrier, a DLR is a handset level report and an ACK is simply a response from the carrier that the request was received. Global carriers have different functionality available. See our <a href=\\\"https://support.transmitsms.com/support/solutions/articles/44001940675-global-sms-delivery-list\">Global Delivery List</a> for details.","properties":{"delivered":{"type":"integer","description":"Messages delivere

# --- truncated at 32 KB (115 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kudosity/refs/heads/main/openapi/kudosity-transmit-sms-openapi-original.yml