List Twilio integration accounts

Note: This endpoint is in preview and is subject to change. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/v2/integration-interfaces/twilio/accountshttps://api.ap2.datadoghq.com/api/v2/integration-interfaces/twilio/accountshttps://api.datadoghq.eu/api/v2/integration-interfaces/twilio/accountshttps://api.ddog-gov.com/api/v2/integration-interfaces/twilio/accountshttps://api.us2.ddog-gov.com/api/v2/integration-interfaces/twilio/accountshttps://api.uk1.datadoghq.com/api/v2/integration-interfaces/twilio/accountshttps://api.datadoghq.com/api/v2/integration-interfaces/twilio/accountshttps://api.us3.datadoghq.com/api/v2/integration-interfaces/twilio/accountshttps://api.us5.datadoghq.com/api/v2/integration-interfaces/twilio/accounts

Overview

List Twilio integration accounts. This endpoint requires the integrations_read permission.

Response

OK

Response payload for a list of Twilio integration accounts.

Expand All

Field

Type

Description

data [required]

[object]

List of Twilio integration accounts.

attributes [required]

object

Attributes of a Twilio integration account returned in responses.

authentication

 <oneOf>

Authentication configured on the Twilio integration account.

<auth_type=basic>

object

The basic authentication method and username configured on the account.

auth_type [required]

enum

The authentication method type. Allowed enum values: basic

default: basic

username [required]

string

Non-secret username or public identifier for the credential pair.

dataflows

object

Data Datadog collects from Twilio, keyed by dataflow id.

twilio-alerts-logs

object

Twilio Alert resource logs, which detail the errors and warnings raised when Twilio makes a webhook request to your server or when your application calls the Twilio REST API.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-call-summaries-logs

object

Twilio Call Summary resource logs, covering the metadata and performance of the calls made from your Twilio account. Requires Voice Insights Advanced Features to be enabled on the Twilio account; without it this dataflow collects no data.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-cloud-cost-metrics

object

Your Twilio cost data, so that Twilio spend can be broken down and attributed in Cloud Cost Management.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-events-logs

object

Twilio Event resource logs, which record virtually every action taken in your Twilio account, such as provisioning a phone number, changing account security settings, or deleting a recording. Actions are recorded whether they came from the REST API, a user in the Twilio Console, or Twilio itself. Cloud SIEM analyzes and correlates these logs to detect threats in real time.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

twilio-messages-logs

object

Twilio Message resource logs for inbound and outbound messages, used to track delivery and troubleshoot message errors. A log is produced when you send a message through the REST API, when Twilio executes a TwiML instruction, and when someone messages one of your Twilio numbers or channel addresses. Message bodies are never collected.

enabled

boolean

Whether Datadog collects this data.

status

object

Read-only collection status of a dataflow.

health

enum

Collection health of a single dataflow. Allowed enum values: DATAFLOW_HEALTH_OK,DATAFLOW_HEALTH_BROKEN,DATAFLOW_HEALTH_UNKNOWN

message

string

Human-readable detail, populated when the dataflow is not healthy.

updated_at

date-time

Time the status was last computed.

name [required]

string

Human-readable name of the Twilio integration account.

settings [required]

object

Settings configured on the Twilio integration account.

account_sid [required]

string

Twilio Account SID that uniquely identifies your Twilio account.

censor_logs

boolean

When enabled, Twilio phone numbers in the to field and SMS message bodies are censored for privacy.

id [required]

string

Server-generated unique identifier of the Twilio integration account.

type [required]

enum

The type of the integration account resource. Always integration-account. Allowed enum values: integration-account

default: integration-account

{
  "data": [
    {
      "attributes": {
        "authentication": {
          "auth_type": "basic",
          "username": "datadog"
        },
        "dataflows": {
          "twilio-alerts-logs": {
            "enabled": true,
            "status": {
              "health": "DATAFLOW_HEALTH_OK",
              "message": "",
              "updated_at": "2026-06-25T08:30:50Z"
            }
          },
          "twilio-call-summaries-logs": {
            "enabled": true,
            "status": {
              "health": "DATAFLOW_HEALTH_OK",
              "message": "",
              "updated_at": "2026-06-25T08:30:50Z"
            }
          },
          "twilio-cloud-cost-metrics": {
            "enabled": true,
            "status": {
              "health": "DATAFLOW_HEALTH_OK",
              "message": "",
              "updated_at": "2026-06-25T08:30:50Z"
            }
          },
          "twilio-events-logs": {
            "enabled": true,
            "status": {
              "health": "DATAFLOW_HEALTH_OK",
              "message": "",
              "updated_at": "2026-06-25T08:30:50Z"
            }
          },
          "twilio-messages-logs": {
            "enabled": true,
            "status": {
              "health": "DATAFLOW_HEALTH_OK",
              "message": "",
              "updated_at": "2026-06-25T08:30:50Z"
            }
          }
        },
        "name": "twilio-prod",
        "settings": {
          "account_sid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
          "censor_logs": true
        }
      },
      "id": "953a0060-81ec-4221-aed4-d4733b59cd96",
      "type": "integration-account"
    }
  ]
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/integration-interfaces/twilio/accounts" \ -H "Accept: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}"
"""
List Twilio integration accounts returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.twilio_integration_api import TwilioIntegrationApi

configuration = Configuration()
configuration.access_token = environ["DD_BEARER_TOKEN"]
configuration.unstable_operations["list_twilio_integration_accounts"] = True
with ApiClient(configuration) as api_client:
    api_instance = TwilioIntegrationApi(api_client)
    response = api_instance.list_twilio_integration_accounts()

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" python3 "example.py"
# List Twilio integration accounts returns "OK" response

require "datadog_api_client"
DatadogAPIClient.configure do |config|
  config.access_token = ENV["DD_BEARER_TOKEN"]
  config.unstable_operations["v2.list_twilio_integration_accounts".to_sym] = true
end
api_instance = DatadogAPIClient::V2::TwilioIntegrationAPI.new
p api_instance.list_twilio_integration_accounts()

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" rb "example.rb"
// List Twilio integration accounts returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	ctx := datadog.NewDefaultContext(context.Background())
	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
	configuration := datadog.NewConfiguration()
	configuration.SetUnstableOperationEnabled("v2.ListTwilioIntegrationAccounts", true)
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewTwilioIntegrationApi(apiClient)
	resp, r, err := api.ListTwilioIntegrationAccounts(ctx)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `TwilioIntegrationApi.ListTwilioIntegrationAccounts`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `TwilioIntegrationApi.ListTwilioIntegrationAccounts`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" go run "main.go"
// List Twilio integration accounts returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.TwilioIntegrationApi;
import com.datadog.api.client.v2.model.TwilioIntegrationAccountsResponse;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
    defaultClient.setUnstableOperationEnabled("v2.listTwilioIntegrationAccounts", true);
    TwilioIntegrationApi apiInstance = new TwilioIntegrationApi(defaultClient);

    try {
      TwilioIntegrationAccountsResponse result = apiInstance.listTwilioIntegrationAccounts();
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println(
          "Exception when calling TwilioIntegrationApi#listTwilioIntegrationAccounts");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" java "Example.java"
// List Twilio integration accounts returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_twilio_integration::TwilioIntegrationAPI;

#[tokio::main]
async fn main() {
    let mut configuration = datadog::Configuration::new();
    configuration.set_unstable_operation_enabled("v2.ListTwilioIntegrationAccounts", true);
    let api = TwilioIntegrationAPI::with_config(configuration);
    let resp = api.list_twilio_integration_accounts().await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * List Twilio integration accounts returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration({
  authMethods: {
    AuthZ: {
      accessToken: process.env.DD_BEARER_TOKEN as string,
    },
  },
});
configuration.unstableOperations["v2.listTwilioIntegrationAccounts"] = true;
const apiInstance = new v2.TwilioIntegrationApi(configuration);

apiInstance
  .listTwilioIntegrationAccounts()
  .then((data: v2.TwilioIntegrationAccountsResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"