Super SIM's SMS Commands API is currently in Public Beta . Some features are not yet implemented and others may be changed before the product is declared as Generally Available. Beta products are not covered by a Twilio SLA . Learn more about beta product support.
To avoid ambiguity throughout this page, Sim (initial cap) refers to the Sim API resource. SIM (all caps) refers to the physical Subscriber Identity Module (that is, a SIM card) associated with a Sim resource.
SMS Commands enable you to exchange machine-to-machine (M2M) messages with devices over SMS. In order to use SMS Commands, devices must be capable of receiving and sending SMS messages. The SIM does not require an addressable phone number to send or receive a SMS Command. SMS Commands have a maximum length of 160 single-byte characters.
If you'd like to try SMS Commands out straight away, check out our Get Started guide. Or read on for the full API documentation.
SMS Commands sent to your device, also known as Mobile Terminated (MT) SMS Commands, are initiated by making a POST
request to the SMS Commands API endpoint:
https://supersim.twilio.com/v1/SmsCommands
The SMS will be sent to your SIM asynchronously. When the SMS Command API is invoked to send an SMS Command to your device, a SMS Command resource will be created with status queued
. Learn more about the SMS Command states in the Status section below.
The SMS received by your device will always be from the number 000
. There is no publicly addressable phone number for your Super SIM. The only way to reach it via SMS is by using the SMS Commands API.
The SMS Commands API will continue to attempt to send an SMS to your Super SIM-powered device for up to 24 hours. This is to account for cases where your device has not yet come online when your request to send an SMS Command was submitted. The status of the SMS Command resource will remain as queued
until the first attempt to send it, after which its status will become sent
. The command's status will change to delivered
once there its delivery has been confirmed. If there is no delivery confirmation within the 24-hour period, the status will stay sent
.
You can receive status change notifications by providing a callback URL and method in your POST
request. You will receive an HTTP request to that callback URL each time the command's status changes.
All SMS sent from your device to 000
will be treated as SMS Commands. The status for all Mobile Originated (MO) SMS Commands will always be received
.
You can be automatically notified when an SMS is received from your Super SIM connected device by configuring the sms_commands_url
and sms_commands_method
properties of the Fleet resource to which the Sim resource has been assigned. When your Super SIM-connected device sends an SMS message to the reserved number 000
, an SMS Command resource will be created and your Fleet resource's sms_commands_url
will be sent a notification. The request made to your URL will include the same parameters as the SMS Commands Status Callback.
Currently all SMS, regardless of the number to which they were sent, are treated as SMS Commands, not just those sent to 000
. This may change in the future. To ensure that there is no interruption to your services if this changes, all SMS you wish to be treated as Commands should be sent to 000
.
The SMS Command resource performs asynchronous operations. To receive an asynchronous notification when a SMS Command resource has finished updating, provide a callback URL, and optionally a callback method parameter, when you create the SMS Command.
SMS Commands are retained for 30 days from the time they are created. SMS Commands older than 30 days will no longer be readable from this resource.
Customers may request that SMS Command data be deleted. If you wish to do so, please contact Twilio Support through the Console or Help Center. For more information on Twilio's data retention and deletion policy, please see this support document.
The unique string that we created to identify the SMS Command resource.
^HC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the Account that created the SMS Command resource.
^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The SID of the SIM that this SMS Command was sent to or from.
^HS[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The message body of the SMS Command sent to or from the SIM. For text mode messages, this can be up to 160 characters.
The status of the SMS Command. Can be: queued
, sent
, delivered
, received
or failed
. See the SMS Command Status Values for a description of each.
queued
sent
delivered
received
failed
The direction of the SMS Command. Can be to_sim
or from_sim
. The value of to_sim
is synonymous with the term mobile terminated
, and from_sim
is synonymous with the term mobile originated
.
to_sim
from_sim
The date and time in GMT when the resource was created specified in ISO 8601 format.
The date and time in GMT when the resource was last updated specified in ISO 8601 format.
The absolute URL of the SMS Command resource.
When the API is used to send an SMS to your device, the SMS Command resource status will be set to the statues queued
. The Status
property will be updated to sent
when an SMS is sent from Twilio Mobile Core to the cellular network to which your device is connected (the 'visited' network). If a delivery receipt (DLR) is received from your device, the status will be updated to delivered
. If at any point this process fails and the Command is no longer deliverable, the status will be updated to failed
and an error code will be indicated on the resource.
queued | The SMS Command is queued in our network waiting to be sent. |
---|---|
sent | The SMS Command has been sent to the SIM. |
delivered | The SMS Command has been delivered to the SIM and there was a delivery confirmation from the device. |
received | The SMS Command has been received from the SIM. |
failed | The SMS Command could not be sent. |
You can provide a callback method and callback URL to receive updates each time a SMS Command to your device's status changes. The request sent to the callback URL contains the following properties:
AccountSid | The SID of the Account that the SMS Command resource belongs to. |
---|---|
CommandSid | The unique string that we created to identify the SMS Command resource. |
SimSid | The receiving Super SIM's SID. |
SimUniqueName | The receiving Super SIM's UniqueName . |
Payload | The body of the SMS Command message. This value can be up to 160 characters of text. Binary mode is not supported. |
Direction | Indicates whether the Command is MT or MO. It has two possible values: to_sim or from_sim . |
Status | The delivery status of the SMS Command. |
ErrorCode | The error code (if any) associated with a failed SMS Command. Unless the status is failed , ErrorCode will not be present. |
ErrorMessage | A description of the error (if any) associated with a failed SMS Command. Unless the status is failed , ErrorMessage will not be present. |
POST https://supersim.twilio.com/v1/SmsCommands
application/x-www-form-urlencoded
The HTTP method we should use to call callback_url
. Can be: GET
or POST
and the default is POST.
GET
POST
The URL we should call using the callback_method
after we have sent the command.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function createSmsCommand() {11const smsCommand = await client.supersim.v1.smsCommands.create({12payload: "Payload",13sim: "Sim",14});1516console.log(smsCommand.sid);17}1819createSmsCommand();
1{2"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"payload": "Payload",4"date_created": "2015-07-30T20:00:00Z",5"date_updated": "2015-07-30T20:00:00Z",6"sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",7"sid": "HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",8"status": "queued",9"direction": "to_sim",10"url": "https://supersim.twilio.com/v1/SmsCommands/HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"11}
GET https://supersim.twilio.com/v1/SmsCommands/{Sid}
The SID of the SMS Command resource to fetch.
^HC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function fetchSmsCommand() {11const smsCommand = await client.supersim.v112.smsCommands("HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")13.fetch();1415console.log(smsCommand.sid);16}1718fetchSmsCommand();
1{2"sid": "HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"payload": "content of the command",5"sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",6"status": "queued",7"direction": "to_sim",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/SmsCommands/HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"11}
GET https://supersim.twilio.com/v1/SmsCommands
The maximum PageSize
you can request when reading SMS Commands is 100.
The SID or unique name of the Sim resource that SMS Command was sent to or from.
The status of the SMS Command. Can be: queued
, sent
, delivered
, received
or failed
. See the SMS Command Status Values for a description of each.
queued
sent
delivered
received
failed
The direction of the SMS Command. Can be to_sim
or from_sim
. The value of to_sim
is synonymous with the term mobile terminated
, and from_sim
is synonymous with the term mobile originated
.
to_sim
from_sim
How many resources to return in each list page. The default is 50, and the maximum is 1000.
1
Maximum: 1000
The page token. This is provided by the API.
1// Download the helper library from https://www.twilio.com/docs/node/install2const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";34// Find your Account SID and Auth Token at twilio.com/console5// and set the environment variables. See http://twil.io/secure6const accountSid = process.env.TWILIO_ACCOUNT_SID;7const authToken = process.env.TWILIO_AUTH_TOKEN;8const client = twilio(accountSid, authToken);910async function listSmsCommand() {11const smsCommands = await client.supersim.v1.smsCommands.list({ limit: 20 });1213smsCommands.forEach((s) => console.log(s.sid));14}1516listSmsCommand();
1{2"meta": {3"first_page_url": "https://supersim.twilio.com/v1/SmsCommands?Status=received&Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0",4"key": "sms_commands",5"next_page_url": null,6"page": 0,7"page_size": 50,8"previous_page_url": null,9"url": "https://supersim.twilio.com/v1/SmsCommands?Status=received&Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0"10},11"sms_commands": [12{13"sid": "HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",14"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",15"payload": "content of the command",16"sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",17"status": "received",18"direction": "from_sim",19"date_created": "2015-07-30T20:00:00Z",20"date_updated": "2015-07-30T20:00:00Z",21"url": "https://supersim.twilio.com/v1/SmsCommands/HCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"22}23]24}