Skip to contentSkip to navigationSkip to topbar
On this page

How to Use Marketplace Listings


This guide provides detailed instructions on how to install, set up, and use No-code Partner and Add-on Listings from Twilio Marketplace.


No-code Partner Listings

no-code-partner-listings page anchor

Installation

installation page anchor

Installing a No-code Partner Listing makes it available to configure and use on the Listing publisher's platform. To install, follow these steps:

  1. Navigate to the Marketplace Catalog in Twilio Console(link takes you to an external page) and choose a No-code Partner Listing.
  2. Select the Install button on the Listing details page.
  3. Accept the Listing publisher's Terms of Service and Privacy Policy.

After installation, the Configure tab becomes selectable from the Listing details page. To access the Listing details, visit the Installed Modules page in Console(link takes you to an external page) and select the Listing.

The Configure tab details what next step you'll need to take with the Listing publisher. Select the button under the tab to complete the onboarding process on the publisher's platform.


Publishers of Add-on Listings establish their own prices and use the Twilio Billing system. Twilio keeps track of the usage of each Listing, and the charges are deducted from your Account.

Installing an Add-on Listing makes it available to configure and use on your Twilio Account. To install, follow these steps:

  1. Navigate to the Marketplace Catalog in Twilio Console(link takes you to an external page) and choose an Add-on Listing.
  2. Select the Install button on the Listing details page.
  3. Accept the Listing publisher's Terms of Service and Privacy Policy.

After installation, the Configure tab becomes selectable from the Listing details page. To access the Listing details, visit the Installed Modules page in Console(link takes you to an external page) and select the Listing.

In the Configure tab, you can set up the Listing for integration with your Twilio products. This involves selecting the appropriate usage points and providing any additional configuration details required by the Listing. The table below details some of the configuration fields you can expect to see:

Configuration fieldDescriptionUser Configurable?
Installed Add-on SIDUnique identifier for the Listing instance. Used for debugging, billing queries, and support requests when communicating with the Listing publisher. Example: XBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNo
Unique nameA human-readable unique identifier used to invoke specific Listings and to consume their results. Example: twilio_caller_identityYes (suffix only)
Use inA list of Twilio product usage points that this Listing supports and is enabled forYes
Configuration parametersListing specific configuration parametersYes

The Configure tab also includes an Add Another Instance button. This feature allows you to add more instances of the same Add-on Listing, each with different configuration parameters. This can be useful in scenarios where you need different configurations of the same Listing, such as text analysis in various languages.

For more information about the supported Twilio Products and configuration parameters of a specific Listing, please refer to the Documentation tab on its Listing details page.

Once you've installed and set up your Listing, its invocation depends on the Twilio product you're integrating it with. The following table outlines how the usage of an Add-on Listing is triggered based on the specific Twilio product its being used in:

Twilio productHow to invoke Listing
LookupUse the AddOns parameter to specify the unique name of the Listing to be invoked. Use the format AddOns.<unique_name>.<parameter_name> to specify any additional run-time data required by the Listing.
Programmable SMSAll installed and configured Listings are automatically invoked for each incoming SMS. Add-on Listings are currently not supported for outbound SMS.
Programmable Voice - CallsAll installed and configured Listings are automatically invoked for each incoming call. Add-on Listings are currently not supported for outbound calls.
Programmable Voice - RecordingsAll installed and configured Listings are automatically invoked for each Recording.

The results from an Add-on Listing are delivered as a JSON object through the API of the Twilio product that the Listing is integrated with.

Twilio productHow to view Listing resultsSynchronous results?
LookupResults are in the add_ons parameter in the API response.Yes
Programmable SMSResults are in the AddOns parameter of the Incoming SMS webhook. POST callbacks only due to URL length constraints in GET callbacks.Yes
Programmable Voice - CallsResults are in the AddOns parameter of the Incoming Voice TwiML callback. POST callbacks only due to URL length constraints in GET callbacks.Yes
Programmable Voice - RecordingsResults availability is in the AddOns parameter of the callback to the URL specified in the Listing's configuration parameters.No

Synchronous results

synchronous-results page anchor

Listings that return results synchronously have the following development considerations:

  • SLA/Latency: Requests taking longer than 2000 ms are failed by Twilio and an error payload is sent. The developer is not billed.
  • Size limit: Listing result responses larger than 64 KB are failed by Twilio and an error payload is sent. The developer is not billed.

Synchronous results are returned immediately as a JSON object by the relevant Twilio API.

Sample synchronous results response

sample-synchronous-results-response page anchor
1
{
2
"status": "successful",
3
"message": null,
4
"code": null,
5
"results": {
6
"provider1_phone_reputation": {
7
"request_sid": "XRc1479687aadf64c62e6ab2b6e0077a1a",
8
"status": "successful",
9
"message": null,
10
"code": null,
11
"result": {
12
...
13
}
14
},
15
"provider6_sentiment": {
16
"request_sid": "XRb32a3b72dde3bb78af4d34416d4f14dc",
17
"status": "successful",
18
"message": null,
19
"code": null,
20
"result": {
21
...
22
}
23
}
24
}
25
}

The following tables detail the JSON object structure of the synchronous results response.

KeyDescription
statussuccessful or fail.
messageOnly present if status is fail, otherwise null. A descriptive message that explains what went wrong.
codeOnly present if status is fail, otherwise null. Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes.
resultsA JSON object with the Listing's unique name as the key, and the result for that Listing instance as the value. See the results object details in the table below.
results object details
results-object-details page anchor
KeyDescription
request_sidThe unique identifier for the request made with the Listing.
statussuccessful or fail.
messageOnly present if status is fail, otherwise null. A descriptive message that explains what went wrong.
codeOnly present if status is fail, otherwise null. Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes.
resultAn Listing instance's results as a JSON object. For details about the contents of this field, refer to the Documentation tab of the Add-on Listing's details page in Console(link takes you to an external page)

Add-ons that return results asynchronously have the following development considerations:

  • SLA/Latency: Results should be returned in a median time of three times of the audio duration and 99% under five times of the duration. Any request taking longer than ten times of the duration is failed by Twilio and an error payload is sent. The developer is not billed.
  • Size limit: Result responses larger than 100 MB are failed by Twilio and an error payload is sent. The developer is not billed.
  • Retention period: Results are only available to retrieve for 30 days. They can be accessed using the Add-on Results API .

When an Add-on Listing's results are ready, they are sent as a JSON object to the callback URL that was specified during the Listing's setup. The example below illustrates the structure of the nested JSON object that is included within the AddOns key of the callback.

Sample asynchronous results callback for a Recording Analysis Add-on Listing

sample-asynchronous-results-callback-for-a-recording-analysis-add-on-listing page anchor
1
{
2
"status": "successful",
3
"message": null,
4
"code": null,
5
"results": {
6
"speech_to_text_addon": {
7
"request_sid": "XR7b57f17eeae56053f034a8a819577e89",
8
"status": "successful",
9
"message": null,
10
"code": null,
11
"payload": [
12
{
13
"content_type":"application/json",
14
"url":"https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads/XH000001/Data"
15
},
16
{
17
"content_type":"audio/wav",
18
"url":"https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads/XH000002/Data"
19
}
20
],
21
"links": {
22
"add_on_result": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89",
23
"payloads": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx/AddOnResults/XR7b57f17eeae56053f034a8a819577e89/Payloads",
24
"recording": "https://api.twilio.com/2010-04-01/Accounts/AC05bxxx/Recordings/RE557cxxx"
25
}
26
}
27
}
28
}

The following tables detail the JSON object structure of the asynchronous results response.

KeyDescription
statussuccessful or fail.
messageOnly present if status is fail, otherwise null. A descriptive message that explains what went wrong.
codeOnly present if status is fail, otherwise null. Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes.
resultsA JSON object with the Listing's unique name as the key, and the results for that instance as the value. See the results object details in the table below.
KeyDescription
request_sidThe unique identifier for the request made with the Listing.
statussuccessful or fail.
messageOnly present if status is fail, otherwise null. A descriptive message that explains what went wrong.
codeOnly present if status is fail, otherwise null. Marketplace error codes are in the 61xxx range, see Error and Warning Dictionary for details on specific codes.
payloadAn array of objects containing URLs for the actual results. See the payload object details in the table below.
linksAn object containing URLs for reference media, e.g. recordings, that were used to generate the results. See the links object details in the table below.
KeyDescription
content_typeThe MIME type of the content returned by the Listing, such as application/json or audio/wav. For details about the returned content, refer to the Documentation tab of the Add-on Listing's details page in Console(link takes you to an external page).
urlA URL to access the payload content using the Add-on Results Payload Data subresource. Perform a GET request using your authenticated Twilio credentials to retrieve this data.