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.
A Sim instance represents a single physical Super SIM:
https://supersim.twilio.com/v1/Sims
A Sim instance can be referenced in the API either by its unique sid
or a user-defined unique_name
:
1https://supersim.twilio.com/v1/Sims/{sid}2https://supersim.twilio.com/v1/Sims/{uniqueName}
Before a Super SIM can begin using data or sending/receiving SMS via Commands, the corresponding Sim instance must be assigned to a Fleet and activated.
Customers may request that Sim 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 identifies the Sim resource.
^HS[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
An application-defined string that uniquely identifies the resource. It can be used in place of the resource's sid
in the URL to address the resource.
The SID of the Account that the Super SIM belongs to.
^AC[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
The status of the Super SIM. Can be new
, ready
, active
, inactive
, or scheduled
. See the Super SIM Status Values for a description of each.
new
ready
active
inactive
scheduled
The unique ID of the Fleet configured for this SIM.
^HF[0-9a-fA-F]{32}$
Min length: 34
Max length: 34
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 table below describes the available status
values of a Sim instance:
Status | Description |
---|---|
new | The SIM has never been enabled and is waiting to be activated so that it can connect to the network. A Sim resource can exist in new status indefinitely at no charge, but once it is transitioned to ready or active , it cannot be returned to new . |
ready | The SIM can connect to the network and is capable of consuming network resources in accordance with its Fleet, but no monthly subscription fee will be charged . A Sim resource's status can only be updated to ready if it is currently new .Once the SIM has consumed 250KB of data, five SMS Commands have been sent to or received from the SIM, or three months have passed, the Sim resource's status will automatically transition to active .Use ready to enable and test your connectivity before devices are sent to customers or deployed into the field without incurring monthly fees. |
active | The SIM can connect to the network and is capable of consuming network resources in accordance with its Fleet. |
inactive | The SIM is blocked from connecting to the network. |
scheduled | The update is queued and will be processed when the network operator is ready. The Sim resource's status will automatically transition to the requested status when the update operation is completed. |
POST https://supersim.twilio.com/v1/Sims
All Super SIMs purchased through Console arrive pre-registered to the Twilio account which placed the order. To receive an unregistered Super SIM that is eligible to be added to your Account, you will have received the SIM either at an in-person event, such as a developer conference, or from an independent partner as part of their solution.
If you are interested in ordering unregistered SIMs for your use case, please contact sales-wireless@twilio.com to speak with an IoT Sales Specialist.
If you have a Super SIM that has not yet been registered to a Twilio Account, you can add it to your Account by providing the SIM's ICCID and the registration code. On a plastic multi-size SIM card, these two values are printed on the card. For an embedded SIM (MFF2), if you have a registrable SIM, you will need to obtain this information either from your vendor or from Twilio.
application/x-www-form-urlencoded
The 10-digit code required to claim the Super SIM for your Account.
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 createSim() {11const sim = await client.supersim.v1.sims.create({12iccid: "89883070000123456789",13registrationCode: "H3LL0W0RLD",14});1516console.log(sim.sid);17}1819createSim();
1{2"sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": "",5"status": "new",6"fleet_sid": null,7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
GET https://supersim.twilio.com/v1/Sims/{Sid}
The SID of the Sim resource to fetch.
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 fetchSim() {11const sim = await client.supersim.v112.sims("HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")13.fetch();1415console.log(sim.sid);16}1718fetchSim();
1{2"sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": "My SIM",5"status": "new",6"fleet_sid": null,7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
You can fetch a Sim resource by either its sid
or unique_name
. To find a Sim resource by a Super SIM's ICCID, use the iccid
query parameter while reading from the Sims resource.
GET https://supersim.twilio.com/v1/Sims
The status of the Sim resources to read. Can be new
, ready
, active
, inactive
, or scheduled
.
new
ready
active
inactive
scheduled
The ICCID associated with a Super SIM to filter the list by. Passing this parameter will always return a list containing zero or one SIMs.
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 listSim() {11const sims = await client.supersim.v1.sims.list({ limit: 20 });1213sims.forEach((s) => console.log(s.sid));14}1516listSim();
1{2"sims": [],3"meta": {4"first_page_url": "https://supersim.twilio.com/v1/Sims?Status=new&Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0",5"key": "sims",6"next_page_url": null,7"page": 0,8"page_size": 50,9"previous_page_url": null,10"url": "https://supersim.twilio.com/v1/Sims?Status=new&Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0"11}12}
You may need to find a Sim resource with just a Super SIM's ICCID. You can read the Sim resource by an ICCID using the iccid
query parameter. If a Sim resource for that ICCID is found, a list with one record will be returned. If a Sim resource for that ICCID is not found on your Account, an empty list will be returned.
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 listSim() {11const sims = await client.supersim.v1.sims.list({12iccid: "11111111111111111111",13limit: 20,14});1516sims.forEach((s) => console.log(s.iccid));17}1819listSim();
1{2"sims": [],3"meta": {4"first_page_url": "https://supersim.twilio.com/v1/Sims?Status=new&Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0",5"key": "sims",6"next_page_url": null,7"page": 0,8"page_size": 50,9"previous_page_url": null,10"url": "https://supersim.twilio.com/v1/Sims?Status=new&Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&PageSize=50&Page=0"11}12}
POST https://supersim.twilio.com/v1/Sims/{Sid}
The SID of the Sim resource to update.
application/x-www-form-urlencoded
An application-defined string that uniquely identifies the resource. It can be used in place of the resource's sid
in the URL to address the resource.
The new status of the resource. Can be: ready
, active
, or inactive
. See the Super SIM Status Values for more info.
ready
active
inactive
The SID or unique name of the Fleet to which the SIM resource should be assigned.
The URL we should call using the callback_method
after an asynchronous update has finished.
The HTTP method we should use to call callback_url
. Can be: GET
or POST
and the default is POST.
GET
POST
The SID of the Account to which the Sim resource should belong. The Account SID can only be that of the requesting Account or that of a Subaccount of the requesting Account. Only valid when the Sim resource's status is new.
Some Sim resource updates will be completed asynchronously. To receive a notification when a Sim resource has finished updating, provide a callback_url
and a callback_method
with your initial HTTP request.
When an update is handled asynchronously, the Sim resource will undergo multiple updates:
status
will be set to scheduled
as the update is placed in a queue.status
will transition to the final state.If a Sim resource's Fleet is changed as part of an asynchronous update, the existing value of the fleet_sid
property will be returned when the update request is accepted. When the update completes, the new value will be shown on the Sim resource.
In the scenarios below, "activating" means updating the Sim resource's status
to a value that will allow the Super SIM to use cellular network resources: either ready
or active
. Please refer to Status values for descriptions of each status.
The following update scenarios will be handled asynchronously:
When a Sim resource's status
is updated from new
to ready
or active
.
When a Sim resource's status
is updated from active
to inactive
.
When a Sim resource's status
is updated from inactive
to active
.
When a Sim resource is already ready
or active
and its Fleet is updated. When the update request is accepted, the Sim resource's status
will change to scheduled
. The Sim resource's fleet_sid
property will be unchanged at this point. If the update succeeds, the Sim resource's status
returns to ready
or active
and the Sim resource's fleet_sid
property now returns the new Fleet resource's SID.
If you provided a value for the callback_url
parameter in your update request, the asynchronous request made to that URL will contain the following parameters.
SimSid | The unique SID of the Sim resource that this callback is in reference to. |
---|---|
SimUniqueName | The Sim resource's unique_name if it has one. |
SimStatus | A string representing the Sim resource's status after the update completed. |
AccountSid | The unique SID of the Account that the Sim resource belongs to. |
If the callback_method
was set to POST
or not provided, the callback parameters will be delivered as HTML form parameters. If the callback_method
was set to GET
, the callback parameters will be delivered as a query string.
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 updateSim() {11const sim = await client.supersim.v112.sims("Sid")13.update({ uniqueName: "My SIM" });1415console.log(sim.uniqueName);16}1718updateSim();
1{2"sid": "Sid",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": "My SIM",5"status": "new",6"fleet_sid": null,7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
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 updateSim() {11const sim = await client.supersim.v112.sims("Sid")13.update({ fleet: "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" });1415console.log(sim.fleetSid);16}1718updateSim();
1{2"sid": "Sid",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": null,5"status": "new",6"fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
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 updateSim() {11const sim = await client.supersim.v112.sims("Sid")13.update({ fleet: "My Fleet" });1415console.log(sim.fleetSid);16}1718updateSim();
1{2"sid": "Sid",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": null,5"status": "new",6"fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
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 updateSim() {11const sim = await client.supersim.v1.sims("Sid").update({ status: "active" });1213console.log(sim.status);14}1516updateSim();
1{2"sid": "Sid",3"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"unique_name": "MySIM",5"status": "active",6"fleet_sid": null,7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
If you are using Subaccounts, you can transfer new
Super SIMs between your accounts.
While using the primary Account's credentials, use the account_sid
parameter to provide the Account SID of the Account you wish to own that Super SIM. Super SIMs can be moved between Accounts the following ways:
If the Super SIM you are moving is assigned to a Fleet, you must also pass the sid
or unique_name
of a Fleet resource that belongs to the new Account, or null
, in the fleet
parameter of your Update request.
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 updateSim() {11const sim = await client.supersim.v112.sims("Sid")13.update({ accountSid: "ACbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" });1415console.log(sim.accountSid);16}1718updateSim();
1{2"sid": "Sid",3"account_sid": "ACbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",4"unique_name": "MySIM",5"status": "new",6"fleet_sid": null,7"iccid": "89883070000123456789",8"date_created": "2015-07-30T20:00:00Z",9"date_updated": "2015-07-30T20:00:00Z",10"url": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",11"links": {12"billing_periods": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",13"sim_ip_addresses": "https://supersim.twilio.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"14}15}
It is possible to move inactive
SIMs between your accounts; however that feature is currently in Private Beta . If you need access to this feature, please contact your IoT Sales Specialist or contact support to request this feature be unlocked for your account. Please review the considerations below for your related resources may behave when an inactive
SIM is transferred.
You can also move inactive SIMs between your primary Account and its Subaccounts by updating the account_sid
property.
When you move a non-new SIM to a new Account, you will not get any results from the Sim BillingPeriod subresource until the current active Billing Period expires and a new one is created that will belong to the new Account, even if you reactivate the SIM. If the Billing Period on the previous Account has already expired (e.g. the SIM was left in inactive for a couple of months and is now going to be used again on the new Account), then a new Billing Period will be created on the new Account when the SIM is reactivated. Not knowing the Sim resource's Billing Period start and end dates will prevent you from being able to accurately determine how much of the SIM's data limit you've utilized unless you have saved this information outside of Twilio.
When you move a SIM to a new Account, the counter tracking data usage towards the SIM's data limit does not reset. This usage counter is tied to the SIM's Billing Period. If the SIM's status was active within the last 30 days, it's most recent active billing period may not have expired yet. Any usage incurred when the SIM belonged to the previous Account will still be counted towards the data limit inherited from the SIM's current Fleet. However, you will not see that usage on the new Account as the SIM's Usage Records do not transfer to the new Account.
Let's look at an example. If you have a SIM that belongs to Account A and its Billing Periods start/end on the 2nd of the month because that's when it was originally activated a few months ago and you use 5 MB between the 2nd and the 10th of the month. On the 10th you want to move it to Account B, a subaccount of Account A. You update the SIM's status to inactive and then move it to Account B. You assign it to a Fleet with a 15 MB data limit and reactivate the SIM and begin using it. Because the SIM was reactivated before it's current Billing Period expired, that existing Billing Period is re-used and it will continue to start/end on the 2nd of the month. However, because the same Billing Period is used and your data usage towards the data limit is linked to the Billing Period, the 5 MB's you used earlier in Billing Period (between the 2nd and the 10th) count towards the 15 MB data limit.
If you move a SIM between Accounts, the entire history of Settings Updates follows the SIM and will be returned from the SettingsUpdates resource when querying it with the new Account's credentials. You will no longer be able to view the Settings Updates for the SIM in the previous Account's results when querying the Settings Updates resource.