Sim Resource

Access individual SIMs

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 Super SIM whether it be a physical SIM or digital eSIM profile. You will use the Sim instance to control an individual Super SIM's connectivity by assigning it to a Fleet and setting its status to values that will either allow the device using the Super SIM to connect to the cellular networks or have it be rejected.

https://supersim.api.korewireless.com/v1/Sims

You can refer to a Sim instance by its sid or unique_name.

https://supersim.api.korewireless.com/v1/Sims/{sid}
https://supersim.api.korewireless.com/v1/Sims/{unique_name}

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.

Status Values

The table below describes the available status values of a Sim instance:

StatusDescription

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.

API Authorization

Before you can make requests to this resource, you must have a valid bearer token. Review our API authorization guide to learn how to generate a token. Here's a curl example on how to define your access token in a header:

curl -X GET \
-H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
'https://supersim.api.korewireless.com/v1/Sims'

The examples below do not show the required Authorization header due to a bug. We're working on fixing that. In the meantime, be sure to include that in all of your requests.


Find a Sim resource by a Super SIM's ICCID

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.

Request
curl -X GET "https://supersim.api.korewireless.com/v1/Sims?Iccid=11111111111111111111&PageSize=20"
Response
{
  "sims": [
    {
      "sid": "HSXXXXXXXXXXXXXXX",
      "iccid": "11111111111111111111",
      "status": "new"
      ...
    }
  ],
  "meta": {
    "first_page_url": "https://supersim.api.korewireless.com/v1/Sims?Iccid=11111111111111111111&PageSize=50&Page=0",
    "key": "sims",
    "next_page_url": null,
    "page": 0,
    "page_size": 50,
    "previous_page_url": null,
    "url": "https://supersim.api.korewireless.com/v1/Sims?Iccid=11111111111111111111&PageSize=50&Page=0"
  }
}

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.

Update a Sim's Unique Name

Request
curl -X POST "https://supersim.api.korewireless.com/v1/Sims/Sid" \
--data-urlencode "UniqueName=My SIM" 
Response
{
  "sid": "Sid",
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "unique_name": "My SIM",
  "status": "new",
  "fleet_sid": null,
  "iccid": "89883070000123456789",
  "date_created": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "url": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "links": {
    "billing_periods": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",
    "sim_ip_addresses": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"
  }
}

Update a Sim's Fleet

Your Super SIM's permissions are controlled by its Fleet.

Request
curl -X POST "https://supersim.api.korewireless.com/v1/Sims/Sid" \
--data-urlencode "Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 
Response
{
  "sid": "Sid",
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "unique_name": null,
  "status": "new",
  "fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "iccid": "89883070000123456789",
  "date_created": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "url": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "links": {
    "billing_periods": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",
    "sim_ip_addresses": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"
  }
}

Update a Sim's Fleet by Unique Name

You can refer to a Fleet by its Unique Name when updating your Sim.

Request
curl -X POST "https://supersim.api.korewireless.com/v1/Sims/Sid" \
--data-urlencode "Fleet=My Fleet" 
Response
{
  "sid": "Sid",
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "unique_name": null,
  "status": "new",
  "fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "iccid": "89883070000123456789",
  "date_created": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "url": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "links": {
    "billing_periods": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",
    "sim_ip_addresses": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"
  }
}

Update a Sim's Status

Activate your Super SIM to connect to the network.

Request
curl -X POST "https://supersim.api.korewireless.com/v1/Sims/{sid}" \
--data-urlencode "Status=active" 
Response
{
  "sid": "Sid",
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "unique_name": "MySIM",
  "status": "active",
  "fleet_sid": null,
  "iccid": "89883070000123456789",
  "date_created": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "url": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "links": {
    "billing_periods": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",
    "sim_ip_addresses": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"
  }
}

Move Super SIMs between Child accounts

While using the parent 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:

  • From the parent account to a child account.

  • From a child account to the parent Account.

  • From a child account to another child account.

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.

Request
curl -X POST "https://supersim.api.korewireless.com/v1/Sims/{Sid}" \
--data-urlencode "AccountSid=ACbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Response
{
  "sid": "Sid",
  "account_sid": "ACbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "unique_name": "MySIM",
  "status": "new",
  "fleet_sid": null,
  "iccid": "89883070000123456789",
  "date_created": "2015-07-30T20:00:00Z",
  "date_updated": "2015-07-30T20:00:00Z",
  "url": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "links": {
    "billing_periods": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/BillingPeriods",
    "sim_ip_addresses": "https://supersim.api.korewireless.com/v1/Sims/HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IpAddresses"
  }
}

Moving Inactive SIMs Between Child Accouts

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 parent Account and its child accounts by updating the account_sid property.

Considerations when Moving Inactive SIMs

Current Billing Period

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 KORE.

Date Limit

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 child account 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.

Settings Updates History

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.

Asynchronous updates

Follow our guide for details on migrating asynchronous updates from Twilio to KORE.

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:

  • First, the Sim resource's status will be set to scheduled as the update is placed in a queue.

  • Finally, the Sim resource's 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.

Activating a Sim resource

When a Sim resource's status is updated from new to ready or active.

Deactivating a Sim resource

When a Sim resource's status is updated from active to inactive.

Reactivating a Sim resource

When a Sim resource's status is updated from inactive to active.

Changing an activated Sim resource's Fleet

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.

Callback values

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.

ParameterDescription

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.

Last updated