Skip to contentSkip to navigationSkip to topbar
On this page

RatePlan Resource


(information)

Info

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 Rate Plan determines the capabilities and restrictions of each and every Sim instance associated with it.

https://wireless.twilio.com/v1/RatePlans

Any number of Sim's can be assigned to the same Rate Plan. Each of those Sim's inherits the same capabilities and restrictions, such as whether or not each SIM can use data or SMS via Commands, how much data each SIM can use each month, and how usage will be billed. To change a SIM's capabilities and restrictions, it's Sim must be assigned to a different Rate Plan.

A Rate Plan instance can be referenced in the API either by its unique Sid or user-defined UniqueName.

1
https://wireless.twilio.com/v1/RatePlans/{Sid}
2
https://wireless.twilio.com/v1/RatePlans/{UniqueName}

RatePlan Properties

rateplan-properties page anchor
Property nameTypeRequiredDescriptionChild properties
sidSID<WP>Optional
Not PII

The unique string that we created to identify the RatePlan resource.

Pattern: ^WP[0-9a-fA-F]{32}$Min length: 34Max length: 34

unique_namestringOptional

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.


account_sidSID<AC>Optional

The SID of the Account that created the RatePlan resource.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

friendly_namestringOptional

The string that you assigned to describe the resource.


data_enabledbooleanOptional

Whether SIMs can use GPRS/3G/4G/LTE data connectivity.


data_meteringstringOptional

The model used to meter data usage. Can be: payg and quota-1, quota-10, and quota-50. Learn more about the available data metering models.


data_limitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month on the home network (T-Mobile USA). The metering period begins the day of activation and ends on the same day in the following month. Can be up to 2TB.

Default: 0

messaging_enabledbooleanOptional

Whether SIMs can make, send, and receive SMS using Commands.


voice_enabledbooleanOptional

Deprecated. Whether SIMs can make and receive voice calls.


national_roaming_enabledbooleanOptional

Whether SIMs can roam on networks other than the home network (T-Mobile USA) in the United States. See national roaming.


national_roaming_data_limitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month on non-home networks in the United States. The metering period begins the day of activation and ends on the same day in the following month. Can be up to 2TB.

Default: 0

international_roamingarray[string]Optional

The list of services that SIMs capable of using GPRS/3G/4G/LTE data connectivity can use outside of the United States. Can contain: data and messaging.


international_roaming_data_limitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month when roaming outside the United States. Can be up to 2TB.

Default: 0

date_updatedstring<date-time>Optional

The date and time in GMT when the resource was last updated specified in ISO 8601(link takes you to an external page) format.


urlstring<uri>Optional

The absolute URL of the resource.


PAYG vs Quota Data Plans

payg-vs-quota-data-plans page anchor

Quota Data Plans offer you a self-serve way to receive discounted data pricing in exchange for committing to a minimum dollar spend for each active SIM using the Rate Plan.

For low usage devices, the "Pay as you go" (PAYG) Data Plan is available. With PAYG data, you'll only pay for the data you consume, with no minimum data spend per SIM per month.

For higher usage devices, it is probably more cost effective to use a Quota-based Data Plan. With a Quota-based plan, you agree to a minimum data spend, or "Quota" level per SIM per month. In return, you will receive discount rates in every country, with more significant discounts for higher Quotas.

Even on a Quota plan, data is still priced per megabyte and metered at byte-level. But at the end of your SIM's billing month, you either pay for exactly what you consumed, or the Quota price, whichever is higher.

See Pricing(link takes you to an external page) for more information.


Each SIM's usage is measured independently. Data Limits specified by the Rate Plan are on a per SIM basis. For example, if a Rate Plan specifies a Data Limit of 5MB, every SIM on that Rate Plan will be allowed to consume 5MB of data.


National roaming grants a SIM the ability to roam onto other carrier networks in the United States in certain low coverage situations. This will allow a SIM to roam onto regional US networks like GCI(link takes you to an external page) in Alaska. The SIM will prioritize T-Mobile US, the 'home' network, when coverage is available.

National roaming pricing is different to standard data and Commands pricing. Before enabling national roaming on your Rate Plan, it is recommended to review the pricing.


(warning)

Warning

Usage Notifications are currently in Private Beta . If you would like access to this feature please contact your IoT Account Executive or contact customer support.

You can receive Usage Notifications for every Sim instance assigned to a Rate Plan, allowing you to programmatically respond before the Sim reaches its Data Limit.

An HTTP request will be made to the configurable usage_notification_url using the usage_notification_method.

Usage Notifications will be fired when your Sim's Data Usage is ~75%, ~90%, 100%. If your Sim used 100% of its Data Limit during the current usage period, an additional Usage Notification will be fired when your Sim's Data Limit resets and your SIM can resume using data. No Usage Notification will be fired when your usage period resets if your Sim did not use 100% of the Data Limit during the current usage period.

Usage Notifications have the following properties:

SimSidThe SID of the Sim.
SimUniqueNameUser provided string that uniquely identifies the Sim. Alternative to SimSid.
AccountSidThe unique ID of the Account that the Sim belongs to.
DataLimitTypeThe type of Data Limit to which the notification pertains. Either data_limit, international_roaming_data_limit, or national_roaming_data_limit.
DataLimitAmount of data usage allowed in the usage period. Once DataConsumed is greater than or equal to this value, the SIM will be blocked from using any additional data.
DataConsumedAmount of data usage from the current usage period that has been applied towards the DataLimit.
NextUsagePeriodThe date when the next usage period starts at which point the DataConsumed resets to 0.

Create a RatePlan resource

create-a-rateplan-resource page anchor
POST https://wireless.twilio.com/v1/RatePlans

Request body parameters

request-body-parameters page anchor
Encoding type:application/x-www-form-urlencoded
SchemaExample
Property nameTypeRequiredDescriptionChild properties
UniqueNamestringOptional

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.


FriendlyNamestringOptional

A descriptive string that you create to describe the resource. It does not have to be unique.


DataEnabledbooleanOptional

Whether SIMs can use GPRS/3G/4G/LTE data connectivity.


DataLimitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month on the home network (T-Mobile USA). The metering period begins the day of activation and ends on the same day in the following month. Can be up to 2TB and the default value is 1000.


DataMeteringstringOptional

The model used to meter data usage. Can be: payg and quota-1, quota-10, and quota-50. Learn more about the available data metering models.


MessagingEnabledbooleanOptional

Whether SIMs can make, send, and receive SMS using Commands.


VoiceEnabledbooleanOptional

Deprecated.


NationalRoamingEnabledbooleanOptional

Whether SIMs can roam on networks other than the home network (T-Mobile USA) in the United States. See national roaming.


InternationalRoamingarray[string]Optional

The list of services that SIMs capable of using GPRS/3G/4G/LTE data connectivity can use outside of the United States. Can contain: data and messaging.


NationalRoamingDataLimitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month on non-home networks in the United States. The metering period begins the day of activation and ends on the same day in the following month. Can be up to 2TB. See national roaming for more info.


InternationalRoamingDataLimitintegerOptional

The total data usage (download and upload combined) in Megabytes that the Network allows during one month when roaming outside the United States. Can be up to 2TB.

Create a Rate PlanLink to code sample: Create a Rate Plan
1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function createRatePlan() {
11
const ratePlan = await client.wireless.v1.ratePlans.create();
12
13
console.log(ratePlan.sid);
14
}
15
16
createRatePlan();

Output

1
{
2
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3
"unique_name": "unique_name",
4
"data_enabled": true,
5
"data_limit": 1000,
6
"data_limit_strategy": "block",
7
"data_metering": "payg",
8
"date_created": "2019-07-30T20:00:00Z",
9
"date_updated": "2019-07-30T20:00:00Z",
10
"friendly_name": "friendly_name",
11
"messaging_enabled": true,
12
"voice_enabled": true,
13
"national_roaming_enabled": true,
14
"national_roaming_data_limit": 1000,
15
"international_roaming": [
16
"data",
17
"messaging",
18
"voice"
19
],
20
"international_roaming_data_limit": 1000,
21
"sid": "WPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
22
"usage_notification_method": "POST",
23
"usage_notification_url": "https://callback.com",
24
"url": "https://wireless.twilio.com/v1/RatePlans/WPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
25
}

Fetch a RatePlan resource

fetch-a-rateplan-resource page anchor
GET https://wireless.twilio.com/v1/RatePlans/{Sid}

Property nameTypeRequiredPIIDescription
Sidstringrequired

The SID of the RatePlan resource to fetch.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function fetchRatePlan() {
11
const ratePlan = await client.wireless.v1.ratePlans("Sid").fetch();
12
13
console.log(ratePlan.sid);
14
}
15
16
fetchRatePlan();

Output

1
{
2
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3
"unique_name": "unique_name",
4
"data_enabled": true,
5
"data_limit": 1000,
6
"data_metering": "payg",
7
"date_created": "2019-07-30T20:00:00Z",
8
"date_updated": "2019-07-30T20:00:00Z",
9
"friendly_name": "friendly_name",
10
"messaging_enabled": true,
11
"voice_enabled": true,
12
"national_roaming_enabled": true,
13
"national_roaming_data_limit": 1000,
14
"international_roaming": [
15
"data",
16
"messaging",
17
"voice"
18
],
19
"international_roaming_data_limit": 1000,
20
"sid": "Sid",
21
"usage_notification_method": "POST",
22
"usage_notification_url": "https://callback.com",
23
"data_limit_strategy": "block",
24
"url": "https://wireless.twilio.com/v1/RatePlans/WPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
25
}

GET https://wireless.twilio.com/v1/RatePlans

Property nameTypeRequiredPIIDescription
PageSizeintegerOptional

How many resources to return in each list page. The default is 50, and the maximum is 1000.

Minimum: 1Maximum: 1000

PageintegerOptional

The page index. This value is simply for client state.

Minimum: 0

PageTokenstringOptional

The page token. This is provided by the API.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function listRatePlan() {
11
const ratePlans = await client.wireless.v1.ratePlans.list({ limit: 20 });
12
13
ratePlans.forEach((r) => console.log(r.sid));
14
}
15
16
listRatePlan();

Output

1
{
2
"meta": {
3
"first_page_url": "https://wireless.twilio.com/v1/RatePlans?PageSize=50&Page=0",
4
"key": "rate_plans",
5
"next_page_url": null,
6
"page": 0,
7
"page_size": 50,
8
"previous_page_url": null,
9
"url": "https://wireless.twilio.com/v1/RatePlans?PageSize=50&Page=0"
10
},
11
"rate_plans": []
12
}

Update a RatePlan resource

update-a-rateplan-resource page anchor
POST https://wireless.twilio.com/v1/RatePlans/{Sid}

(warning)

Warning

The only fields that can be updated on a Rate Plan after it has been created is its Unique Name and Friendly Name. If you need to alter your SIM's capabilities you must create a new Rate Plan and reassign the Sim to the new Rate Plan.

Property nameTypeRequiredPIIDescription
Sidstringrequired

The SID of the RatePlan resource to update.

Encoding type:application/x-www-form-urlencoded
SchemaExample
Property nameTypeRequiredDescriptionChild properties
UniqueNamestringOptional

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.


FriendlyNamestringOptional

A descriptive string that you create to describe the resource. It does not have to be unique.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function updateRatePlan() {
11
const ratePlan = await client.wireless.v1
12
.ratePlans("Sid")
13
.update({ uniqueName: "UniqueName" });
14
15
console.log(ratePlan.sid);
16
}
17
18
updateRatePlan();

Output

1
{
2
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
3
"unique_name": "UniqueName",
4
"data_enabled": true,
5
"data_limit": 1000,
6
"data_metering": "payg",
7
"date_created": "2019-07-30T20:00:00Z",
8
"date_updated": "2019-07-30T20:00:00Z",
9
"friendly_name": "friendly_name",
10
"messaging_enabled": true,
11
"voice_enabled": true,
12
"national_roaming_enabled": true,
13
"national_roaming_data_limit": 1000,
14
"international_roaming": [
15
"data",
16
"messaging",
17
"voice"
18
],
19
"international_roaming_data_limit": 1000,
20
"sid": "Sid",
21
"usage_notification_method": "POST",
22
"usage_notification_url": "https://callback.com",
23
"data_limit_strategy": "block",
24
"url": "https://wireless.twilio.com/v1/RatePlans/WPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
25
}

Delete a RatePlan resource

delete-a-rateplan-resource page anchor
DELETE https://wireless.twilio.com/v1/RatePlans/{Sid}

(warning)

Warning

You cannot delete a Rate Plan if there are any Sims assigned to it that have active or ready statuses.

Property nameTypeRequiredPIIDescription
Sidstringrequired

The SID of the RatePlan resource to delete.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function deleteRatePlan() {
11
await client.wireless.v1.ratePlans("Sid").remove();
12
}
13
14
deleteRatePlan();

Need some help?

Terms of service

Copyright © 2024 Twilio Inc.