Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Add-on Management API


This guide describes the APIs you can use to retrieve available and installed Add-ons. You can also use it to install specific Add-ons, and to manage any extensions they have. This API complements the Add-on capabilities exposed in the Console.

This API is currently in Developer Preview.

(information)

Info

The Add-on Management API only supports Add-ons that are in General Availability (GA) or Beta state. Add-ons that are labeled as Coming Soon or Developer Preview are not accessible via the API and must be managed in the Console.

While this API is in Developer Preview, it should be accessed via the following base domain:


_10
https://preview.twilio.com

The API may also be accessed via Next-gen helper libraries.


The Available Add-ons API

offerings page anchor

The Available Add-ons API provides detailed descriptions of the Add-ons currently available to be installed by an Account. This API does not allow you to mutate any of the records.

URIs

offerings-uri page anchor

_10
/marketplace/AvailableAddOns
_10
/marketplace/AvailableAddOns/{AddOnSid}

Property nameTypePIIDescription
sidSID<XB>
Not PII

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

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

friendly_namestring

The string that you assigned to describe the resource.


descriptionstring

A short description of the Add-on's functionality.


pricing_typestring

How customers are charged for using this Add-on.


configuration_schemaobject

The JSON object with the configuration that must be provided when installing a given Add-on.


urlstring<uri>

The absolute URL of the resource.


linksobject<uri-map>

The URLs of related resources.

Available Add-ons List resource

available-add-ons-list-resource page anchor

HTTP GET

http-get page anchor

Returns a list of Available Add-on resources.

List available Add-On resources

list-available-add-on-resources page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listAvailableAddOn() {
_18
const availableAddOns = await client.preview.marketplace.availableAddOns.list(
_18
{ limit: 20 }
_18
);
_18
_18
availableAddOns.forEach((a) => console.log(a.friendlyName));
_18
}
_18
_18
listAvailableAddOn();

Output

_34
{
_34
"available_add_ons": [
_34
{
_34
"sid": "XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_34
"friendly_name": "VoiceBase High Accuracy Transcription",
_34
"description": "Automatic Transcription and Keyword Extract...",
_34
"pricing_type": "per minute",
_34
"configuration_schema": {
_34
"type": "object",
_34
"properties": {
_34
"bad_words": {
_34
"type": "boolean"
_34
}
_34
},
_34
"required": [
_34
"bad_words"
_34
]
_34
},
_34
"url": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_34
"links": {
_34
"extensions": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions"
_34
}
_34
}
_34
],
_34
"meta": {
_34
"page": 0,
_34
"page_size": 50,
_34
"first_page_url": "https://preview.twilio.com/marketplace/AvailableAddOns?PageSize=50&Page=0",
_34
"previous_page_url": null,
_34
"url": "https://preview.twilio.com/marketplace/AvailableAddOns?PageSize=50&Page=0",
_34
"next_page_url": null,
_34
"key": "available_add_ons"
_34
}
_34
}

Available Add-on Instance resource

available-add-on-instance-resource page anchor

Returns a single instance of an Available Add-on resource.

Return an instance of an Available Add-On

return-an-instance-of-an-available-add-on page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function fetchAvailableAddOn() {
_18
const availableAddOn = await client.preview.marketplace
_18
.availableAddOns("XB85b56ed9ce713e0ac62342b901233193")
_18
.fetch();
_18
_18
console.log(availableAddOn.friendlyName);
_18
}
_18
_18
fetchAvailableAddOn();

Output

_21
{
_21
"sid": "XB85b56ed9ce713e0ac62342b901233193",
_21
"friendly_name": "VoiceBase High Accuracy Transcription",
_21
"description": "Automatic Transcription and Keyword Extract...",
_21
"pricing_type": "per minute",
_21
"configuration_schema": {
_21
"type": "object",
_21
"properties": {
_21
"bad_words": {
_21
"type": "boolean"
_21
}
_21
},
_21
"required": [
_21
"bad_words"
_21
]
_21
},
_21
"url": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_21
"links": {
_21
"extensions": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions"
_21
}
_21
}


The Available Add-on Extensions API

the-available-add-on-extensions-api page anchor

The Available Add-on Extension subresource details where a given Available Add-on can be invoked.


_10
/marketplace/AvailableAddOns/{AddOnSid}/Extensions

Property nameTypePIIDescription
sidSID<XF>

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

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

available_add_on_sidSID<XB>

The SID of the AvailableAddOn resource to which this extension applies.

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

friendly_namestring

The string that you assigned to describe the resource.


product_namestring

The name of the Product this Extension is used within.


unique_namestring

An application-defined string that uniquely identifies the resource.


urlstring<uri>

The absolute URL of the resource.

Available Add-on Extensions List resource

available-add-on-extensions-list-resource page anchor

Returns a list of Extension resources that detail the invocation points for the Available Add-on.

List Extension resources for an Available Add-on

list-extension-resources-for-an-available-add-on page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listAvailableAddOnExtension() {
_18
const extensions = await client.preview.marketplace
_18
.availableAddOns("XB85b56ed9ce713e0ac62342b901233193")
_18
.extensions.list({ limit: 20 });
_18
_18
extensions.forEach((e) => console.log(e.sid));
_18
}
_18
_18
listAvailableAddOnExtension();

Output

_21
{
_21
"extensions": [
_21
{
_21
"sid": "XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_21
"available_add_on_sid": "XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_21
"friendly_name": "Incoming Voice Call",
_21
"product_name": "Programmable Voice",
_21
"unique_name": "voice-incoming",
_21
"url": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_21
}
_21
],
_21
"meta": {
_21
"page": 0,
_21
"page_size": 50,
_21
"first_page_url": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions?PageSize=50&Page=0",
_21
"previous_page_url": null,
_21
"url": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions?PageSize=50&Page=0",
_21
"next_page_url": null,
_21
"key": "extensions"
_21
}
_21
}


The Installed Add-ons API

the-installed-add-ons-api page anchor

The Installed Add-ons API allows you to install, configure, and manage Add-ons for an account. An Add-on may be installed multiple times on a given account, each with a different Add-on configuration. Upon installation, the Add-on is identified by an AddOnConfigurationSid property.


_10
/marketplace/InstalledAddOns
_10
/marketplace/InstalledAddOns/{AddOnConfigurationSid}

Property nameTypePIIDescription
sidSID<XE>

The unique string that we created to identify the InstalledAddOn resource. This Sid can also be found in the Console on that specific Add-ons page as the 'Available Add-on Sid'.

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

account_sidSID<AC>

The SID of the Account that created the InstalledAddOn resource.

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

friendly_namestring

The string that you assigned to describe the resource.


descriptionstring

A short description of the Add-on's functionality.


configurationobject

The JSON object that represents the current configuration of installed Add-on.


unique_namestring

An application-defined string that uniquely identifies the resource.


date_updatedstring<date-time>

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>

The absolute URL of the resource.


linksobject<uri-map>

The URLs of related resources.

Installed Add-ons List resource

installed-add-ons-list-resource page anchor

Returns a list of Installed Add-ons associated with the given account.

List the Installed Add-ons associated with a given account

list-the-installed-add-ons-associated-with-a-given-account page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listInstalledAddOn() {
_18
const installedAddOns = await client.preview.marketplace.installedAddOns.list(
_18
{ limit: 20 }
_18
);
_18
_18
installedAddOns.forEach((i) => console.log(i.friendlyName));
_18
}
_18
_18
listInstalledAddOn();

Output

_30
{
_30
"installed_add_ons": [
_30
{
_30
"sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_30
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_30
"friendly_name": "VoiceBase High Accuracy Transcription",
_30
"description": "Automatic Transcription and Keyword Extract...",
_30
"configuration": {
_30
"bad_words": true
_30
},
_30
"unique_name": "voicebase_high_accuracy_transcription",
_30
"date_created": "2016-04-07T23:52:28Z",
_30
"date_updated": "2016-04-07T23:52:28Z",
_30
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_30
"links": {
_30
"extensions": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions",
_30
"available_add_on": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_30
}
_30
}
_30
],
_30
"meta": {
_30
"page": 0,
_30
"page_size": 50,
_30
"first_page_url": "https://preview.twilio.com/marketplace/InstalledAddOns?PageSize=50&Page=0",
_30
"previous_page_url": null,
_30
"url": "https://preview.twilio.com/marketplace/InstalledAddOns?PageSize=50&Page=0",
_30
"next_page_url": null,
_30
"key": "installed_add_ons"
_30
}
_30
}

Installed Add-on Instance resource

installed-add-on-instance-resource page anchor

Returns a single instance of an Installed Add-on associated with the given account.

Return an instance of an Installed Add-on for an account

return-an-instance-of-an-installed-add-on-for-an-account page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function fetchInstalledAddOn() {
_18
const installedAddOn = await client.preview.marketplace
_18
.installedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_18
.fetch();
_18
_18
console.log(installedAddOn.friendlyName);
_18
}
_18
_18
fetchInstalledAddOn();

Output

_17
{
_17
"sid": "XE85b56ed9ce713e0ac62342b901233193",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "VoiceBase High Accuracy Transcription",
_17
"description": "Automatic Transcription and Keyword Extract...",
_17
"configuration": {
_17
"bad_words": true
_17
},
_17
"unique_name": "voicebase_high_accuracy_transcription",
_17
"date_created": "2016-04-07T23:52:28Z",
_17
"date_updated": "2016-04-07T23:52:28Z",
_17
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"links": {
_17
"extensions": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions",
_17
"available_add_on": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_17
}
_17
}

Allows you to install an Available Add-on to the account.

Property nameTypeRequiredPIIDescription
AvailableAddOnSidSID<XB>required

The SID of the AvaliableAddOn to install.

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

AcceptTermsOfServicebooleanrequired

Whether the Terms of Service were accepted.


ConfigurationobjectOptional

The JSON object that represents the configuration of the new Add-on being installed.


UniqueNamestringOptional

An application-defined string that uniquely identifies the resource. This value must be unique within the Account.

Install an Available Add-on to an account

install-an-available-add-on-to-an-account page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_26
// Download the helper library from https://www.twilio.com/docs/node/install
_26
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_26
_26
// Find your Account SID and Auth Token at twilio.com/console
_26
// and set the environment variables. See http://twil.io/secure
_26
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_26
const authToken = process.env.TWILIO_AUTH_TOKEN;
_26
const client = twilio(accountSid, authToken);
_26
_26
async function createInstalledAddOn() {
_26
const installedAddOn =
_26
await client.preview.marketplace.installedAddOns.create({
_26
acceptTermsOfService: true,
_26
availableAddOnSid: "XB85b56ed9ce713e0ac62342b901233193",
_26
configuration: {
_26
callback_method: "POST",
_26
callback_url: "https://your.callback.url",
_26
"include-keywords": true,
_26
"include-topics": true,
_26
},
_26
});
_26
_26
console.log(installedAddOn.friendlyName);
_26
}
_26
_26
createInstalledAddOn();

Output

_17
{
_17
"sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "VoiceBase High Accuracy Transcription",
_17
"description": "Automatic Transcription and Keyword Extract...",
_17
"configuration": {
_17
"bad_words": true
_17
},
_17
"unique_name": "voicebase_high_accuracy_transcription_1",
_17
"date_created": "2016-04-07T23:52:28Z",
_17
"date_updated": "2016-04-07T23:52:28Z",
_17
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"links": {
_17
"extensions": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions",
_17
"available_add_on": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_17
}
_17
}

Allows you to update an Installed Add-on's configuration by supplying a JSON object that uses the schema exposed by the Available Add-on.

Property nameTypeRequiredPIIDescription
SidSID<XE>required

The SID of the InstalledAddOn resource to update.

Pattern: ^XE[0-9a-fA-F]{32}$Min length: 34Max length: 34
Property nameTypeRequiredPIIDescription
ConfigurationobjectOptional

Valid JSON object that conform to the configuration schema exposed by the associated AvailableAddOn resource. This is only required by Add-ons that need to be configured


UniqueNamestringOptional

An application-defined string that uniquely identifies the resource. This value must be unique within the Account.

Update the configuration of an Installed Add-on

update-the-configuration-of-an-installed-add-on page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_25
// Download the helper library from https://www.twilio.com/docs/node/install
_25
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_25
_25
// Find your Account SID and Auth Token at twilio.com/console
_25
// and set the environment variables. See http://twil.io/secure
_25
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_25
const authToken = process.env.TWILIO_AUTH_TOKEN;
_25
const client = twilio(accountSid, authToken);
_25
_25
async function updateInstalledAddOn() {
_25
const installedAddOn = await client.preview.marketplace
_25
.installedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_25
.update({
_25
configuration: {
_25
callback_method: "POST",
_25
callback_url: "https://your.callback.url",
_25
"include-keywords": true,
_25
"include-topics": true,
_25
},
_25
});
_25
_25
console.log(installedAddOn.configuration);
_25
}
_25
_25
updateInstalledAddOn();

Output

_17
{
_17
"sid": "XE85b56ed9ce713e0ac62342b901233193",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "VoiceBase High Accuracy Transcription",
_17
"description": "Automatic Transcription and Keyword Extract...",
_17
"configuration": {
_17
"bad_words": true
_17
},
_17
"unique_name": "voicebase_high_accuracy_transcription_2",
_17
"date_created": "2016-04-07T23:52:28Z",
_17
"date_updated": "2016-04-07T23:52:28Z",
_17
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"links": {
_17
"extensions": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions",
_17
"available_add_on": "https://preview.twilio.com/marketplace/AvailableAddOns/XBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_17
}
_17
}

Uninstalls the Add-on from the account. If the Add-on is currently assigned to an Incoming Phone Number, the API will return a 400 error to inform the user that they must first remove the assignment. Successful responses will return no content.


The Installed Add-on Extensions API

the-installed-add-on-extensions-api page anchor

An Extension identifies a Twilio product, or an integration point in a Twilio product, where the Add-on is invoked. Examples of Extensions include Record Verb, Dial Verb, the Lookup API, Incoming Voice Call, Incoming SMS, etc.

The Installed Add-on Extensions API provides you with the ability to view and configure when an Installed Add-on is invoked.

To allow you to control the roll-out of Add-ons, by default all Extensions will be disabled. This means you will need to make additional API requests to enable Extensions before they can use the installed Add-on. This will give you the opportunity to first associate an Installed Add-on with an Incoming Phone Number before enabling any Extensions.

The following table lists the currently supported Extensions. Each Add-on typically supports a subset of these Extensions.

Product NameFriendly NameUnique Name
LookupLookupslookup-api
Programmable SMSIncoming SMS Messagesms-incoming
TaskRouterCreate TaskRouter Taskstaskrouter-create-task
Programmable VoiceIncoming Voice Callvoice-incoming
Programmable VoiceRecord Verb Recordingsrecording-verb
Programmable VoiceOutgoing Call (API) Recordingsrecording-api
Programmable VoiceConference Recordingsrecording-conference
Programmable VoiceDial Verb Recordingsrecording-dial

_10
/marketplace/InstalledAddOns/{AddOnConfigurationSid}/Extensions
_10
/marketplace/InstalledAddOns/{AddOnConfigurationSid}/Extensions/{AddOnExtensionSid}

Property nameTypePIIDescription
sidSID<XF>

The unique string that we created to identify the InstalledAddOn Extension resource.

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

installed_add_on_sidSID<XE>

The SID of the InstalledAddOn resource to which this extension applies.

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

friendly_namestring

The string that you assigned to describe the resource.


product_namestring

The name of the Product this Extension is used within.


unique_namestring

An application-defined string that uniquely identifies the resource.


enabledboolean

Whether the Extension will be invoked.


urlstring<uri>

The absolute URL of the resource.

Installed Add-on Extensions List resource

installed-add-on-extensions-list-resource page anchor

Returns a list of Extensions where the Add-on can be invoked.

List Extensions where a given Add-on can be invoked

list-extensions-where-a-given-add-on-can-be-invoked page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listInstalledAddOnExtension() {
_18
const extensions = await client.preview.marketplace
_18
.installedAddOns("XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_18
.extensions.list({ limit: 20 });
_18
_18
extensions.forEach((e) => console.log(e.enabled));
_18
}
_18
_18
listInstalledAddOnExtension();

Output

_22
{
_22
"extensions": [
_22
{
_22
"sid": "XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_22
"installed_add_on_sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_22
"friendly_name": "Incoming Voice Call",
_22
"product_name": "Programmable Voice",
_22
"unique_name": "voice-incoming",
_22
"enabled": true,
_22
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_22
}
_22
],
_22
"meta": {
_22
"page": 0,
_22
"page_size": 50,
_22
"first_page_url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions?PageSize=50&Page=0",
_22
"previous_page_url": null,
_22
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions?PageSize=50&Page=0",
_22
"next_page_url": null,
_22
"key": "extensions"
_22
}
_22
}

Installed Add-on Extension Instance resource

installed-add-on-extension-instance-resource page anchor

Returns a single instance of an Add-on Extension resource.

Return an instance of an Add-on Extension resource

return-an-instance-of-an-add-on-extension-resource page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function fetchInstalledAddOnExtension() {
_19
const extension = await client.preview.marketplace
_19
.installedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_19
.extensions("XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.fetch();
_19
_19
console.log(extension.enabled);
_19
}
_19
_19
fetchInstalledAddOnExtension();

Output

_10
{
_10
"sid": "XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_10
"installed_add_on_sid": "XE85b56ed9ce713e0ac62342b901233193",
_10
"friendly_name": "Incoming Voice Call",
_10
"product_name": "Programmable Voice",
_10
"unique_name": "voice-incoming",
_10
"enabled": true,
_10
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_10
}

Allows you to activate or deactivate an Extension associated with the Installed Add-on.

Property nameTypeRequiredPIIDescription
InstalledAddOnSidSID<XE>required

The SID of the InstalledAddOn resource with the extension to update.

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

SidSID<XF>required

The SID of the InstalledAddOn Extension resource to update.

Pattern: ^XF[0-9a-fA-F]{32}$Min length: 34Max length: 34
Property nameTypeRequiredPIIDescription
Enabledbooleanrequired

Whether the Extension should be invoked.

Activate or deactivate an Extension point associated with an Installed Add-on

activate-or-deactivate-an-extension-point-associated-with-an-installed-add-on page anchor
Node.js
Python
C#
Java
PHP
Ruby
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function updateInstalledAddOnExtension() {
_19
const extension = await client.preview.marketplace
_19
.installedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_19
.extensions("XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.update({ enabled: true });
_19
_19
console.log(extension.enabled);
_19
}
_19
_19
updateInstalledAddOnExtension();

Output

_10
{
_10
"sid": "XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_10
"installed_add_on_sid": "XE85b56ed9ce713e0ac62342b901233193",
_10
"friendly_name": "Incoming Voice Call",
_10
"product_name": "Programmable Voice",
_10
"unique_name": "voice-incoming",
_10
"enabled": true,
_10
"url": "https://preview.twilio.com/marketplace/InstalledAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
_10
}


The Incoming Phone Number Assigned Add-ons API

the-incoming-phone-number-assigned-add-ons-api page anchor

The Incoming Phone Number Assigned Add-ons subresource details which Add-ons have been assigned to a given Twilio phone number. Assigning an Add-on to a specific Twilio phone number limits the invocation of that Add-on to Calls or Messages on that particular phone number.

Add-ons enabled for Recordings and TaskRouter do not support phone number assignments.


_10
/2010-04-01/IncomingPhoneNumbers/{PhoneNumberSid}/AssignedAddOns
_10
/2010-04-01/IncomingPhoneNumbers/{PhoneNumberSid}/AssignedAddOns/{AddOnConfigurationSid}
_10
/2010-04-01/IncomingPhoneNumbers/{PhoneNumberSid}/AssignedAddOns/{AddOnConfigurationSid}/Extensions

As a subresource, this API will expose the same properties as the Installed Add-ons API.

Phone Number Assigned Add-on List resource

phone-number-assigned-add-on-list-resource page anchor

Returns of a list of the Installed Add-ons assigned to the given Incoming Phone Number.

List Installed Add-ons assigned to an Incoming Phone Number

list-installed-add-ons-assigned-to-an-incoming-phone-number page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_18
// Download the helper library from https://www.twilio.com/docs/node/install
_18
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_18
_18
// Find your Account SID and Auth Token at twilio.com/console
_18
// and set the environment variables. See http://twil.io/secure
_18
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_18
const authToken = process.env.TWILIO_AUTH_TOKEN;
_18
const client = twilio(accountSid, authToken);
_18
_18
async function listIncomingPhoneNumberAssignedAddOn() {
_18
const assignedAddOns = await client
_18
.incomingPhoneNumbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_18
.assignedAddOns.list({ limit: 20 });
_18
_18
assignedAddOns.forEach((a) => console.log(a.description));
_18
}
_18
_18
listIncomingPhoneNumberAssignedAddOn();

Output

_29
{
_29
"end": 0,
_29
"first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns.json?PageSize=50&Page=0",
_29
"next_page_uri": null,
_29
"page": 0,
_29
"page_size": 50,
_29
"previous_page_uri": null,
_29
"assigned_add_ons": [
_29
{
_29
"sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_29
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_29
"resource_sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_29
"friendly_name": "VoiceBase High Accuracy Transcription",
_29
"description": "Automatic Transcription and Keyword Extract...",
_29
"configuration": {
_29
"bad_words": true
_29
},
_29
"unique_name": "voicebase_high_accuracy_transcription",
_29
"date_created": "Thu, 07 Apr 2016 23:52:28 +0000",
_29
"date_updated": "Thu, 07 Apr 2016 23:52:28 +0000",
_29
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
_29
"subresource_uris": {
_29
"extensions": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions.json"
_29
}
_29
}
_29
],
_29
"start": 0,
_29
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns.json?PageSize=50&Page=0"
_29
}

Phone Number Assigned Add-on Instance resource

phone-number-assigned-add-on-instance-resource page anchor

Returns a single instance of an Installed Add-on assigned to a given Incoming Phone Number.

Return an instance of an Installed Add-on assigned to an Incoming Phone Number

return-an-instance-of-an-installed-add-on-assigned-to-an-incoming-phone-number page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function fetchIncomingPhoneNumberAssignedAddOn() {
_19
const assignedAddOn = await client
_19
.incomingPhoneNumbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.assignedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_19
.fetch();
_19
_19
console.log(assignedAddOn.sid);
_19
}
_19
_19
fetchIncomingPhoneNumberAssignedAddOn();

Output

_17
{
_17
"sid": "XE85b56ed9ce713e0ac62342b901233193",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"resource_sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "VoiceBase High Accuracy Transcription",
_17
"description": "Automatic Transcription and Keyword Extract...",
_17
"configuration": {
_17
"bad_words": true
_17
},
_17
"unique_name": "voicebase_high_accuracy_transcription",
_17
"date_created": "Thu, 07 Apr 2016 23:52:28 +0000",
_17
"date_updated": "Thu, 07 Apr 2016 23:52:28 +0000",
_17
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
_17
"subresource_uris": {
_17
"extensions": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions.json"
_17
}
_17
}

Allows you to assign an Installed Add-on to an Incoming Phone Number. The Add-on will only be invoked for the associated Incoming Phone Number.

Property nameTypeRequiredPIIDescription
AccountSidSID<AC>required

The SID of the Account that will create the resource.

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

ResourceSidSID<PN>required

The SID of the Phone Number to assign the Add-on.

Pattern: ^PN[0-9a-fA-F]{32}$Min length: 34Max length: 34
Property nameTypeRequiredPIIDescription
InstalledAddOnSidSID<XE>required

The SID that identifies the Add-on installation.

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

Assign an Installed Add-on to an Incoming Phone Number

assign-an-installed-add-on-to-an-incoming-phone-number page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_20
// Download the helper library from https://www.twilio.com/docs/node/install
_20
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_20
_20
// Find your Account SID and Auth Token at twilio.com/console
_20
// and set the environment variables. See http://twil.io/secure
_20
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_20
const authToken = process.env.TWILIO_AUTH_TOKEN;
_20
const client = twilio(accountSid, authToken);
_20
_20
async function createIncomingPhoneNumberAssignedAddOn() {
_20
const assignedAddOn = await client
_20
.incomingPhoneNumbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_20
.assignedAddOns.create({
_20
installedAddOnSid: "XE85b56ed9ce713e0ac62342b901233193",
_20
});
_20
_20
console.log(assignedAddOn.sid);
_20
}
_20
_20
createIncomingPhoneNumberAssignedAddOn();

Output

_17
{
_17
"sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"resource_sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_17
"friendly_name": "VoiceBase High Accuracy Transcription",
_17
"description": "Automatic Transcription and Keyword Extract...",
_17
"configuration": {
_17
"bad_words": true
_17
},
_17
"unique_name": "voicebase_high_accuracy_transcription",
_17
"date_created": "Thu, 07 Apr 2016 23:52:28 +0000",
_17
"date_updated": "Thu, 07 Apr 2016 23:52:28 +0000",
_17
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
_17
"subresource_uris": {
_17
"extensions": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions.json"
_17
}
_17
}

Deleting an Assigned Add-on instance resource will remove the binding between the Add-on and the Incoming Phone Number. Successful responses will return no content.


Phone Number Assigned Add-on Extensions

phone-number-assigned-add-on-extensions page anchor

As a subresource, this API will expose the same properties in the Installed Add-ons Extension API.

Assigned Add-on Extension List Resource

assigned-add-on-extension-list-resource page anchor

Returns a list of the Extensions for the Installed Add-on assigned to the given Incoming Phone Number.

List Extensions for the Installed Add-on assigned to the given Incoming Phone Number

list-extensions-for-the-installed-add-on-assigned-to-the-given-incoming-phone-number page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_19
// Download the helper library from https://www.twilio.com/docs/node/install
_19
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_19
_19
// Find your Account SID and Auth Token at twilio.com/console
_19
// and set the environment variables. See http://twil.io/secure
_19
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_19
const authToken = process.env.TWILIO_AUTH_TOKEN;
_19
const client = twilio(accountSid, authToken);
_19
_19
async function listIncomingPhoneNumberAssignedAddOnExtension() {
_19
const extensions = await client
_19
.incomingPhoneNumbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_19
.assignedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_19
.extensions.list({ limit: 20 });
_19
_19
extensions.forEach((e) => console.log(e.sid));
_19
}
_19
_19
listIncomingPhoneNumberAssignedAddOnExtension();

Output

_23
{
_23
"end": 0,
_23
"first_page_uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions.json?PageSize=50&Page=0",
_23
"next_page_uri": null,
_23
"page": 0,
_23
"page_size": 50,
_23
"previous_page_uri": null,
_23
"extensions": [
_23
{
_23
"sid": "XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23
"assigned_add_on_sid": "XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23
"resource_sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_23
"friendly_name": "Incoming Voice Call",
_23
"product_name": "Programmable Voice",
_23
"unique_name": "voice-incoming",
_23
"enabled": true,
_23
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
_23
}
_23
],
_23
"start": 0,
_23
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions.json?PageSize=50&Page=0"
_23
}

Assigned Add-on Extension Instance resource

assigned-add-on-extension-instance-resource page anchor

Returns a single Extension for the Installed Add-on assigned to the given Incoming Phone Number.

Return a single Extension for the Installed Add-on assigned to an Incoming Phone Number

return-a-single-extension-for-the-installed-add-on-assigned-to-an-incoming-phone-number page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_20
// Download the helper library from https://www.twilio.com/docs/node/install
_20
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
_20
_20
// Find your Account SID and Auth Token at twilio.com/console
_20
// and set the environment variables. See http://twil.io/secure
_20
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_20
const authToken = process.env.TWILIO_AUTH_TOKEN;
_20
const client = twilio(accountSid, authToken);
_20
_20
async function fetchIncomingPhoneNumberAssignedAddOnExtension() {
_20
const extension = await client
_20
.incomingPhoneNumbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
_20
.assignedAddOns("XE85b56ed9ce713e0ac62342b901233193")
_20
.extensions("XF025b77384a62367bd120b7ce60250d7b")
_20
.fetch();
_20
_20
console.log(extension.sid);
_20
}
_20
_20
fetchIncomingPhoneNumberAssignedAddOnExtension();

Output

_11
{
_11
"sid": "XF025b77384a62367bd120b7ce60250d7b",
_11
"assigned_add_on_sid": "XE85b56ed9ce713e0ac62342b901233193",
_11
"resource_sid": "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
_11
"friendly_name": "Incoming Voice Call",
_11
"product_name": "Programmable Voice",
_11
"unique_name": "voice-incoming",
_11
"uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers/PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AssignedAddOns/XEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Extensions/XFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
_11
"enabled": true
_11
}


Rate this page: