# Call Summaries Resource

A **Call Summary** provides an overview of

* metadata, and
* quality metrics

for a single call.

Using the **Call Summaries Resource**, you can [get a list of Call Summaries](#code-read-multiple-call-summaries).

To get the Call Summary for an individual call use the **[Call Summary Resource](/docs/voice/voice-insights/api/call/call-summary-resource)**.

> \[!NOTE]
>
> [Voice Insights Advanced Features](/docs/voice/voice-insights/advanced-features) must be active to use this API Resource.

> \[!NOTE]
>
> A completed Call Summary may take up to a half hour to generate, but a partial summary record will be available within ten minutes of a call ending.

## Call Summary properties

The following table contains the top-level properties of a single Call Summary instance.

A Call Summary is a complex data structure with several of the top-level properties constituting nested objects.

The top level contains `attributes` and `properties` objects, and each edge of a call has metrics for both directions of the media stream as well as properties and summarized metrics. Further information for these object-typed properties can be found on the **[Details: Call Summary](/docs/voice/voice-insights/api/call/details-call-summary)** page.

Whether a particular edge is present will depend on the call type. A Voice SDK call will have an `sdk_edge` and a `client_edge`. A SIP trunking call will have a `sip_edge` and a `carrier_edge`. A SIP domain or `<Dial><Sip>` call will have only a `sip_edge`. A PSTN call will have only a `carrier_edge`**.** See **[Understanding Twilio Media Edges](/docs/voice/voice-insights/api/call/understanding-edges)** for a conceptual explanation.

```json
{"type":"object","refName":"insights.v1.call_summaries","modelName":"insights_v1_call_summaries","properties":{"account_sid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^AC[0-9a-fA-F]{32}$","nullable":true,"description":"The unique SID identifier of the Account."},"call_sid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^CA[0-9a-fA-F]{32}$","nullable":true,"description":"The unique SID identifier of the Call."},"answered_by":{"type":"string","nullable":true,"description":"The Answered By value for the summarized call based on `Answering Machine Detection (AMD)`. One of `unknown`, `machine_start`, `machine_end_beep`, `machine_end_silence`, `machine_end_other`, `human` or `fax`. Refer to [AMD](/docs/voice/answering-machine-detection) for more detail.","enum":["unknown","machine_start","machine_end_beep","machine_end_silence","machine_end_other","human","fax"],"refName":"call_summaries_enum_answered_by","modelName":"call_summaries_enum_answered_by"},"call_type":{"type":"string","nullable":true,"description":"The Call Type of the summarized Call. One of `carrier`, `sip`, `trunking` or `client`.","enum":["carrier","sip","trunking","client","whatsapp"],"refName":"call_summaries_enum_call_type","modelName":"call_summaries_enum_call_type"},"call_state":{"type":"string","nullable":true,"description":"The Call State of the summarized Call. One of `ringing`, `completed`, `busy`, `fail`, `noanswer`, `canceled`, `answered`, `undialed`.","enum":["ringing","completed","busy","fail","noanswer","canceled","answered","undialed"],"refName":"call_summaries_enum_call_state","modelName":"call_summaries_enum_call_state"},"processing_state":{"type":"string","nullable":true,"description":"The Processing State of the Call Summary. The Processing State will be `partial` until the assembly of the Call Summary finishes, which occurs approximately 30 minutes after Call end. Then the Processing State changes to `complete`","enum":["complete","partial"],"refName":"call_summaries_enum_processing_state","modelName":"call_summaries_enum_processing_state"},"created_time":{"type":"string","format":"date-time","nullable":true,"description":"The time at which the Call was created, given in ISO 8601 format. Can be different from `start_time` in the event of queueing due to CPS"},"start_time":{"type":"string","format":"date-time","nullable":true,"description":"The time at which the Call was started, given in ISO 8601 format."},"end_time":{"type":"string","format":"date-time","nullable":true,"description":"The time at which the Call was ended, given in ISO 8601 format."},"duration":{"type":"integer","nullable":true,"description":"Duration between when the call was initiated and the call was ended"},"connect_duration":{"type":"integer","nullable":true,"description":"Duration between when the call was answered and when it ended"},"from":{"nullable":true,"description":"The calling party.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"to":{"nullable":true,"description":"The called party.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"carrier_edge":{"nullable":true,"description":"Contains metrics and properties for the Twilio media gateway of a PSTN call."},"client_edge":{"nullable":true,"description":"Contains metrics and properties for the Twilio media gateway of a Client call."},"sdk_edge":{"nullable":true,"description":"Contains metrics and properties for the SDK sensor library for Client calls."},"sip_edge":{"nullable":true,"description":"Contains metrics and properties for the Twilio media gateway of a SIP Interface or Trunking call."},"tags":{"type":"array","nullable":true,"description":"Tags applied to calls by Voice Insights analysis indicating a condition that could result in subjective degradation of the call quality.","items":{"type":"string"}},"url":{"type":"string","format":"uri","nullable":true,"description":"The URL of this resource."},"attributes":{"nullable":true,"description":"Attributes capturing call-flow-specific details."},"properties":{"nullable":true,"description":"Contains edge-agnostic call-level details."},"trust":{"nullable":true,"description":"Contains trusted communications details including Branded Call and verified caller ID."},"annotation":{"nullable":true}}}
```

## Read multiple Call Summary resources

`GET https://insights.twilio.com/v1/Voice/Summaries`

### Query parameters

```json
[{"name":"From","in":"query","description":"A calling party. Could be an E.164 number, a SIP URI, or a Twilio Client registered name.","schema":{"type":"string"},"x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},{"name":"To","in":"query","description":"A called party. Could be an E.164 number, a SIP URI, or a Twilio Client registered name.","schema":{"type":"string"},"x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},{"name":"FromCarrier","in":"query","description":"An origination carrier.","schema":{"type":"string"}},{"name":"ToCarrier","in":"query","description":"A destination carrier.","schema":{"type":"string"},"examples":{"readWithCarrier":{"value":"AT&T Wireless"}}},{"name":"FromCountryCode","in":"query","description":"A source country code based on phone number in From.","schema":{"type":"string"}},{"name":"ToCountryCode","in":"query","description":"A destination country code. Based on phone number in To.","schema":{"type":"string"}},{"name":"VerifiedCaller","in":"query","description":"A boolean flag indicating whether or not the caller was verified using SHAKEN/STIR.One of 'true' or 'false'.","schema":{"type":"boolean"},"examples":{"readWithTrust":{"value":true}}},{"name":"HasTag","in":"query","description":"A boolean flag indicating the presence of one or more [Voice Insights Call Tags](/docs/voice/voice-insights/api/call/details-call-tags).","schema":{"type":"boolean"},"examples":{"readWithSubaccount":{"value":true}}},{"name":"StartTime","in":"query","description":"A Start time of the calls. xm (x minutes), xh (x hours), xd (x days), 1w, 30m, 3d, 4w or datetime-ISO. Defaults to 4h.","schema":{"type":"string"},"examples":{"readWithCarrier":{"value":"4h"},"readWithSubaccount":{"value":"7d"},"readWithTrust":{"value":"1d"},"readWithAbnormalSession":{"value":"15d"}}},{"name":"EndTime","in":"query","description":"An End Time of the calls. xm (x minutes), xh (x hours), xd (x days), 1w, 30m, 3d, 4w or datetime-ISO. Defaults to 0m.","schema":{"type":"string"}},{"name":"CallType","in":"query","description":"A Call Type of the calls. One of `carrier`, `sip`, `trunking` or `client`.","schema":{"type":"string"},"examples":{"readWithSubaccount":{"value":"client"},"readWithAbnormalSession":{"value":"sip,trunking"}}},{"name":"CallState","in":"query","description":"A Call State of the calls. One of `ringing`, `completed`, `busy`, `fail`, `noanswer`, `canceled`, `answered`, `undialed`.","schema":{"type":"string"},"examples":{"readWithAbnormalSession":{"value":"completed"}}},{"name":"Direction","in":"query","description":"A Direction of the calls. One of `outbound_api`, `outbound_dial`, `inbound`, `trunking_originating`, `trunking_terminating`.","schema":{"type":"string"},"examples":{"readWithTrust":{"value":"outbound_api,outbound_dial,trunking_terminating"}}},{"name":"ProcessingState","in":"query","description":"A Processing State of the Call Summaries. One of `completed`, `partial` or `all`.","schema":{"type":"string","enum":["completed","started","partial","all"],"refName":"call_summaries_enum_processing_state_request","modelName":"call_summaries_enum_processing_state_request"}},{"name":"SortBy","in":"query","description":"A Sort By criterion for the returned list of Call Summaries. One of `start_time` or `end_time`.","schema":{"type":"string","enum":["start_time","end_time"],"refName":"call_summaries_enum_sort_by","modelName":"call_summaries_enum_sort_by"}},{"name":"Subaccount","in":"query","description":"A unique SID identifier of a Subaccount.","schema":{"type":"string","minLength":34,"maxLength":34,"pattern":"^AC[0-9a-fA-F]{32}$"},"examples":{"readWithSubaccount":{"value":"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab"}}},{"name":"AbnormalSession","in":"query","description":"A boolean flag indicating an abnormal session where the last SIP response was not 200 OK.","schema":{"type":"boolean"},"examples":{"readWithAbnormalSession":{"value":true}}},{"name":"AnsweredBy","in":"query","description":"An Answered By value for the calls based on `Answering Machine Detection (AMD)`. One of `unknown`, `machine_start`, `machine_end_beep`, `machine_end_silence`, `machine_end_other`, `human` or `fax`.","schema":{"type":"string","enum":["unknown","machine_start","machine_end_beep","machine_end_silence","machine_end_other","human","fax"],"refName":"call_summaries_enum_answered_by","modelName":"call_summaries_enum_answered_by"},"examples":{"readWithCarrier":{"value":"machine_start"}}},{"name":"AnsweredByAnnotation","in":"query","description":"Either machine or human.","schema":{"type":"string"},"examples":{"readWithAnnotationParameters":{"value":"human"}}},{"name":"ConnectivityIssueAnnotation","in":"query","description":"A Connectivity Issue with the calls. One of `no_connectivity_issue`, `invalid_number`, `caller_id`, `dropped_call`, or `number_reachability`.","schema":{"type":"string"},"examples":{"readWithAnnotationParameters":{"value":"invalid_number,dropped_call"}}},{"name":"QualityIssueAnnotation","in":"query","description":"A subjective Quality Issue with the calls. One of `no_quality_issue`, `low_volume`, `choppy_robotic`, `echo`, `dtmf`, `latency`, `owa`, `static_noise`.","schema":{"type":"string"},"examples":{"readWithAnnotationParameters":{"value":"choppy_robotic,echo"}}},{"name":"SpamAnnotation","in":"query","description":"A boolean flag indicating spam calls.","schema":{"type":"boolean"},"examples":{"readWithAnnotationParameters":{"value":true}}},{"name":"CallScoreAnnotation","in":"query","description":"A Call Score of the calls. Use a range of 1-5 to indicate the call experience score, with the following mapping as a reference for the rated call [5: Excellent, 4: Good, 3 : Fair, 2 : Poor, 1: Bad].","schema":{"type":"string"},"examples":{"readWithAnnotationParameters":{"value":"1,2"}}},{"name":"BrandedEnabled","in":"query","description":"A boolean flag indicating whether or not the calls were branded using Twilio Branded Calls. One of 'true' or 'false'","schema":{"type":"boolean"},"examples":{"readWithCarrier":{"value":true}}},{"name":"VoiceIntegrityEnabled","in":"query","description":"A boolean flag indicating whether or not the phone number had voice integrity enabled.One of 'true' or 'false'","schema":{"type":"boolean"},"examples":{"readWithCarrier":{"value":true}}},{"name":"BrandedBundleSid","in":"query","description":"A unique SID identifier of the Branded Call.","schema":{"type":"string"}},{"name":"BrandedLogo","in":"query","description":"Indicates whether the branded logo was displayed during the in_brand branded call. Possible values are true (logo was present) or false (logo was not present).","schema":{"type":"boolean"}},{"name":"BrandedType","in":"query","description":"Indicates whether the Branded Call is in_band vs out_of_band.","schema":{"type":"string"}},{"name":"BrandedUseCase","in":"query","description":"Specifies the user-defined purpose for the call, as provided during the setup of in_band branded calling.","schema":{"type":"string"}},{"name":"BrandedCallReason","in":"query","description":"Specifies the user-defined reason for the call, which will be displayed to the end user on their mobile device during an in_band branded call.","schema":{"type":"string"}},{"name":"VoiceIntegrityBundleSid","in":"query","description":"A unique SID identifier of the Voice Integrity Profile.","schema":{"type":"string"}},{"name":"VoiceIntegrityUseCase","in":"query","description":"A Voice Integrity Use Case . Is of type enum. One of 'abandoned_cart', 'appointment_reminders', 'appointment_scheduling', 'asset_management', 'automated_support', 'call_tracking', 'click_to_call', 'contact_tracing', 'contactless_delivery', 'customer_support', 'dating/social', 'delivery_notifications', 'distance_learning', 'emergency_notifications', 'employee_notifications', 'exam_proctoring', 'field_notifications', 'first_responder', 'fraud_alerts', 'group_messaging', 'identify_&_verification', 'intelligent_routing', 'lead_alerts', 'lead_distribution', 'lead_generation', 'lead_management', 'lead_nurturing', 'marketing_events', 'mass_alerts', 'meetings/collaboration', 'order_notifications', 'outbound_dialer', 'pharmacy', 'phone_system', 'purchase_confirmation', 'remote_appointments', 'rewards_program', 'self-service', 'service_alerts', 'shift_management', 'survey/research', 'telehealth', 'telemarketing', 'therapy_(individual+group)'.","schema":{"type":"string"}},{"name":"BusinessProfileIdentity","in":"query","description":"A Business Identity of the calls. Is of type enum. One of 'direct_customer', 'isv_reseller_or_partner'. ","schema":{"type":"string"}},{"name":"BusinessProfileIndustry","in":"query","description":"A Business Industry of the calls. Is of type enum. One of 'automotive', 'agriculture', 'banking', 'consumer', 'construction', 'education', 'engineering', 'energy', 'oil_and_gas', 'fast_moving_consumer_goods', 'financial', 'fintech', 'food_and_beverage', 'government', 'healthcare', 'hospitality', 'insurance', 'legal', 'manufacturing', 'media', 'online', 'professional_services', 'raw_materials', 'real_estate', 'religion', 'retail', 'jewelry', 'technology', 'telecommunications', 'transportation', 'travel', 'electronics', 'not_for_profit' ","schema":{"type":"string"}},{"name":"BusinessProfileBundleSid","in":"query","description":"A unique SID identifier of the Business Profile.","schema":{"type":"string"}},{"name":"BusinessProfileType","in":"query","description":"A Business Profile Type of the calls. Is of type enum. One of 'primary', 'secondary'.","schema":{"type":"string"}},{"name":"PageSize","in":"query","description":"How many resources to return in each list page. The default is 50, and the maximum is 1000.","schema":{"type":"integer","format":"int64","minimum":1,"maximum":1000}},{"name":"Page","in":"query","description":"The page index. This value is simply for client state.","schema":{"type":"integer","minimum":0}},{"name":"PageToken","in":"query","description":"The page token. This is provided by the API.","schema":{"type":"string"}}]
```

Read multiple Call Summaries

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(limit=20)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries = CallSummaries.reader().limit(20).read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read([], 20);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(limit: 20)

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?PageSize=25&Page=0"
  },
  "call_summaries": []
}
```

Read multiple Call Summaries from to/from specific carriers for a data range

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    startTime: "4h",
    toCarrier: "AT&T Wireless",
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(
    to_carrier="AT&T Wireless", start_time="4h", limit=20
)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(
            toCarrier: "AT&T Wireless", startTime: "4h", limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries =
            CallSummaries.reader().setToCarrier("AT&T Wireless").setStartTime("4h").limit(20).read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetToCarrier("AT&T Wireless")
	params.SetStartTime("4h")
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read(
    [
        "toCarrier" => "AT&T Wireless",
        "startTime" => "4h",
    ],
    20
);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(
                   to_carrier: 'AT&T Wireless',
                   start_time: '4h',
                   limit: 20
                 )

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list \
   --to-carrier "AT&T Wireless" \
   --start-time 4h
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?ToCarrier=AT%26T%20Wireless&StartTime=4h&PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?ToCarrier=AT%26T+Wireless&AnsweredBy=machine_start&VoiceIntegrityEnabled=true&StartTime=4h&BrandedEnabled=true&PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?ToCarrier=AT%26T+Wireless&AnsweredBy=machine_start&VoiceIntegrityEnabled=true&StartTime=4h&BrandedEnabled=true&PageSize=25&Page=0"
  },
  "call_summaries": [
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T03:40:25Z",
      "start_time": "2021-08-25T03:40:25Z",
      "end_time": "2021-08-25T03:40:45Z",
      "duration": 20,
      "connect_duration": 20,
      "call_type": "carrier",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "T-Mobile USA, Inc.",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 40.83885,
          "lon": -74.04568
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "carrier": "AT&T Wireless",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 33.42767,
          "lon": -86.886475
        },
        "country_code": "US"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxxx",
          "direction": "inbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 202,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.48209,
              "avg": 0.483035
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 218,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.51868,
              "avg": 0.364434
            }
          }
        }
      },
      "tags": [
        "high_packet_loss",
        "high_jitter"
      ],
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 121,
        "disconnected_by": "callee",
        "direction": "inbound"
      },
      "trust": {
        "verified_caller": {
          "verified": true
        },
        "branded": {
          "enabled": true,
          "display_name": "Owl bank",
          "long_display_name": "Owl bank Ltd",
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "logo": true,
          "type": "in_band",
          "use_case": "Customer Care",
          "call_reason": "Branded CTIA"
        },
        "business_profile": {
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "identity": "direct_customer",
          "industry": "BANKING",
          "type": "corporate"
        },
        "voice_integrity": {
          "enabled": true,
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "use_case": "customer_support"
        }
      },
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    },
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T02:20:25Z",
      "start_time": "2021-08-25T02:20:25Z",
      "end_time": "2021-08-25T02:40:45Z",
      "duration": 18,
      "connect_duration": 18,
      "call_type": "carrier",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "T-Mobile USA, Inc.",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 40.83885,
          "lon": -74.04568
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "carrier": "AT&T Wireless",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 33.42767,
          "lon": -86.886475
        },
        "country_code": "US"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxxx",
          "direction": "inbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 100,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.48209,
              "avg": 0.483035
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 102,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.51868,
              "avg": 0.364434
            }
          }
        }
      },
      "tags": null,
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 121,
        "disconnected_by": "callee",
        "direction": "inbound"
      },
      "trust": {
        "verified_caller": {
          "verified": true
        },
        "branded": {
          "enabled": true,
          "display_name": "Owl bank",
          "long_display_name": "Owl bank Ltd",
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "logo": true,
          "type": "in_band",
          "use_case": "Customer Care",
          "call_reason": "Branded CTIA"
        },
        "business_profile": {
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "identity": "direct_customer",
          "industry": "BANKING",
          "type": "corporate"
        },
        "voice_integrity": {
          "enabled": true,
          "bundle_sid": "BU5ceeea51b1424478fc541dfef0e2b167",
          "use_case": "customer_support"
        }
      },
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    }
  ]
}
```

Read multiple Call Summaries from a subaccount with detected issues

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    callType: "client",
    hasTag: true,
    startTime: "7d",
    subaccount: "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(
    has_tag=True,
    start_time="7d",
    call_type="client",
    subaccount="ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
    limit=20,
)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(
            hasTag: true,
            startTime: "7d",
            callType: "client",
            subaccount: "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
            limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries = CallSummaries.reader()
                                                       .setHasTag(true)
                                                       .setStartTime("7d")
                                                       .setCallType("client")
                                                       .setSubaccount("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab")
                                                       .limit(20)
                                                       .read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetHasTag(true)
	params.SetStartTime("7d")
	params.SetCallType("client")
	params.SetSubaccount("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab")
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read(
    [
        "hasTag" => true,
        "startTime" => "7d",
        "callType" => "client",
        "subaccount" => "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
    ],
    20
);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(
                   has_tag: true,
                   start_time: '7d',
                   call_type: 'client',
                   subaccount: 'ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab',
                   limit: 20
                 )

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list \
   --has-tag \
   --start-time 7d \
   --call-type client \
   --subaccount ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?HasTag=true&StartTime=7d&CallType=client&Subaccount=ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab&PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?CallType=client&StartTime=7d&HasTag=true&Subaccount=ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab&PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?CallType=client&StartTime=7d&HasTag=true&Subaccount=ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab&PageSize=25&Page=0"
  },
  "call_summaries": [
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
      "created_time": "2021-08-25T04:16:35Z",
      "start_time": "2021-08-25T04:16:36Z",
      "end_time": "2021-08-25T04:16:42Z",
      "duration": 7,
      "connect_duration": 6,
      "call_type": "client",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "client:+15555555555",
        "connection": "twilio_sdk"
      },
      "to": {
        "callee": "client:TBBXXXXXXXXXXXX",
        "connection": "twilio_sdk"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "twilio_media_ip": "54.xxx.xx.xxx",
          "external_media_ip": "54.xxx.xx.xxx",
          "edge_location": "xxxxxx",
          "direction": "inbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 252,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 5.60994,
              "avg": 0.933334
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 229,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.960786,
              "avg": 0.399859
            }
          }
        }
      },
      "carrier_edge": null,
      "tags": [
        "high_pdd"
      ],
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 58,
        "disconnected_by": "callee",
        "direction": "inbound"
      },
      "trust": null,
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    },
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
      "created_time": "2021-08-25T04:16:35Z",
      "start_time": "2021-08-25T04:16:37Z",
      "end_time": "2021-08-25T04:16:40Z",
      "duration": 5,
      "connect_duration": 3,
      "call_type": "client",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "Verizon",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 40.83885,
          "lon": -74.04568
        },
        "country_code": "US"
      },
      "to": {
        "callee": "client:TBBTXXXXXX",
        "connection": "twilio_sdk"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "twilio_media_ip": "54.xxx.xx.xxx",
          "external_media_ip": "54.xxx.xx.xxx",
          "edge_location": "xxxxx",
          "direction": "outbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 110,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.05918,
              "avg": 0.461966
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 147,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.869174,
              "avg": 0.319674
            }
          }
        }
      },
      "carrier_edge": null,
      "tags": null,
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 35,
        "disconnected_by": "callee",
        "direction": "outbound_api"
      },
      "trust": null,
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    }
  ]
}
```

Read multiple Call Summaries for outbound calls signed with SHAKEN/STIR

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    direction: "outbound_api,outbound_dial,trunking_terminating",
    startTime: "1d",
    verifiedCaller: true,
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(
    verified_caller=True,
    start_time="1d",
    direction="outbound_api,outbound_dial,trunking_terminating",
    limit=20,
)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(
            verifiedCaller: true,
            startTime: "1d",
            direction: "outbound_api,outbound_dial,trunking_terminating",
            limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries = CallSummaries.reader()
                                                       .setVerifiedCaller(true)
                                                       .setStartTime("1d")
                                                       .setDirection("outbound_api,outbound_dial,trunking_terminating")
                                                       .limit(20)
                                                       .read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetVerifiedCaller(true)
	params.SetStartTime("1d")
	params.SetDirection("outbound_api,outbound_dial,trunking_terminating")
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read(
    [
        "verifiedCaller" => true,
        "startTime" => "1d",
        "direction" => "outbound_api,outbound_dial,trunking_terminating",
    ],
    20
);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(
                   verified_caller: true,
                   start_time: '1d',
                   direction: 'outbound_api,outbound_dial,trunking_terminating',
                   limit: 20
                 )

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list \
   --verified-caller \
   --start-time 1d \
   --direction outbound_api,outbound_dial,trunking_terminating
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?VerifiedCaller=true&StartTime=1d&Direction=outbound_api%2Coutbound_dial%2Ctrunking_terminating&PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?Direction=outbound_api%2Coutbound_dial%2Ctrunking_terminating&StartTime=1d&VerifiedCaller=true&PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?Direction=outbound_api%2Coutbound_dial%2Ctrunking_terminating&StartTime=1d&VerifiedCaller=true&PageSize=25&Page=0"
  },
  "call_summaries": [
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T14:31:18Z",
      "start_time": "2021-08-25T14:31:22Z",
      "end_time": "2021-08-25T14:32:02Z",
      "duration": 44,
      "connect_duration": 41,
      "call_type": "trunking",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "ACS",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 60.268353,
          "lon": -141.13632
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "carrier": "Hawaiian Telcom, Inc. - HI",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 20.956036,
          "lon": -157.23793
        },
        "country_code": "US"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "twilio_media_ip": "54.xxx.xx.xx",
          "twilio_signaling_ip": "54.xxx.xx.xx",
          "external_signaling_ip": "54.xxx.xx.xx",
          "sip_call_id": "xxxxx@0.0.0.0",
          "user_agent": "xxxx",
          "edge_location": "xxxxx",
          "trunk_sid": "xxxxxxx",
          "direction": "inbound"
        },
        "metrics": {
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 1953,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.76407,
              "avg": 0.23138
            },
            "latency": {
              "max": 0.386,
              "avg": 0.3765
            }
          }
        }
      },
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxx",
          "direction": "outbound"
        }
      },
      "tags": [
        "silence"
      ],
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 1990,
        "disconnected_by": "caller",
        "direction": "trunking_terminating"
      },
      "trust": {
        "verified_caller": {
          "verified": true
        }
      },
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    },
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T14:03:31Z",
      "start_time": "2021-08-25T14:03:32Z",
      "end_time": "2021-08-25T14:03:38Z",
      "duration": 7,
      "connect_duration": 6,
      "call_type": "carrier",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "T-Mobile USA, Inc.",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 40.83885,
          "lon": -74.04568
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "carrier": "T-Mobile USA, Inc.",
        "connection": "mobile",
        "number_prefix": "1555",
        "location": {
          "lat": 34.186115,
          "lon": -118.43555
        },
        "country_code": "US"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxx",
          "direction": "outbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 229,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.10303,
              "avg": 0.449886
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 273,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.410031,
              "avg": 0.295951
            }
          }
        }
      },
      "tags": null,
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 315,
        "disconnected_by": "callee",
        "direction": "outbound_api"
      },
      "trust": {
        "verified_caller": {
          "verified": true
        }
      },
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    },
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-24T22:28:17Z",
      "start_time": "2021-08-24T22:28:20Z",
      "end_time": "2021-08-24T22:28:23Z",
      "duration": 4,
      "connect_duration": 3,
      "call_type": "carrier",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "Hawaiian Telcom, Inc. - HI",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 20.956036,
          "lon": -157.23793
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "connection": "pstn"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": null,
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxx",
          "direction": "outbound"
        },
        "metrics": {
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 103,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.596712,
              "avg": 0.251725
            }
          }
        }
      },
      "tags": [
        "silence"
      ],
      "attributes": null,
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 105,
        "disconnected_by": "caller",
        "direction": "outbound_dial"
      },
      "trust": null,
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    }
  ]
}
```

Read multiple Call Summaries for SIP calls which did not end in 200 OK

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    abnormalSession: true,
    callState: "completed",
    callType: "sip,trunking",
    startTime: "15d",
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(
    start_time="15d",
    call_type="sip,trunking",
    call_state="completed",
    abnormal_session=True,
    limit=20,
)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(
            startTime: "15d",
            callType: "sip,trunking",
            callState: "completed",
            abnormalSession: true,
            limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries = CallSummaries.reader()
                                                       .setStartTime("15d")
                                                       .setCallType("sip,trunking")
                                                       .setCallState("completed")
                                                       .setAbnormalSession(true)
                                                       .limit(20)
                                                       .read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetStartTime("15d")
	params.SetCallType("sip,trunking")
	params.SetCallState("completed")
	params.SetAbnormalSession(true)
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read(
    [
        "startTime" => "15d",
        "callType" => "sip,trunking",
        "callState" => "completed",
        "abnormalSession" => true,
    ],
    20
);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(
                   start_time: '15d',
                   call_type: 'sip,trunking',
                   call_state: 'completed',
                   abnormal_session: true,
                   limit: 20
                 )

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list \
   --start-time 15d \
   --call-type sip,trunking \
   --call-state completed \
   --abnormal-session
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?StartTime=15d&CallType=sip%2Ctrunking&CallState=completed&AbnormalSession=true&PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?CallType=sip%2Ctrunking&CallState=completed&StartTime=15d&AbnormalSession=true&PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?CallType=sip%2Ctrunking&CallState=completed&StartTime=15d&AbnormalSession=true&PageSize=25&Page=0"
  },
  "call_summaries": [
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T14:46:40Z",
      "start_time": "2021-08-25T14:46:40Z",
      "end_time": "2021-08-25T14:46:52Z",
      "duration": 12,
      "connect_duration": 12,
      "call_type": "sip",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "XO Communications, Inc.",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 40.83885,
          "lon": -74.04568
        },
        "country_code": "US"
      },
      "to": {
        "callee": "sip:xxxx@xx.xxx.xx.xxx",
        "connection": "sip_interface"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "twilio_media_ip": "xx.xxx.xx.xxx",
          "twilio_signaling_ip": "xx.xx.xx.xx",
          "external_media_ip": "xx.xxx.xx.xxx",
          "external_signaling_ip": "xx.xxx.xx.xxx",
          "sip_call_id": "xxxxxxxx@0.0.0.0",
          "edge_location": "xxxxx",
          "direction": "outbound"
        },
        "metrics": {
          "inbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_received": 525,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 0.554729,
              "avg": 0.229541
            }
          },
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 245,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.03548,
              "avg": 0.344092
            }
          }
        }
      },
      "client_edge": null,
      "carrier_edge": null,
      "tags": null,
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 255,
        "disconnected_by": "callee",
        "direction": "outbound_dial"
      },
      "trust": null,
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    },
    {
      "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "created_time": "2021-08-25T14:31:18Z",
      "start_time": "2021-08-25T14:31:22Z",
      "end_time": "2021-08-25T14:32:02Z",
      "duration": 44,
      "connect_duration": 41,
      "call_type": "trunking",
      "call_state": "completed",
      "answered_by": "machine_start",
      "from": {
        "caller": "+15555555555",
        "carrier": "ACS",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 60.268353,
          "lon": -141.13632
        },
        "country_code": "US"
      },
      "to": {
        "callee": "+15555555556",
        "carrier": "Hawaiian Telcom, Inc. - HI",
        "connection": "landline",
        "number_prefix": "1555",
        "location": {
          "lat": 20.956036,
          "lon": -157.23793
        },
        "country_code": "US"
      },
      "processing_state": "complete",
      "sdk_edge": null,
      "sip_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "twilio_media_ip": "54.xxx.xx.xx",
          "twilio_signaling_ip": "54.xxx.xx.xx",
          "external_signaling_ip": "54.xxx.xx.xx",
          "sip_call_id": "xxxxx@0.0.0.0",
          "user_agent": "xxxx",
          "edge_location": "xxxxx",
          "trunk_sid": "xxxxxxx",
          "direction": "inbound"
        },
        "metrics": {
          "outbound": {
            "codec": 0,
            "codec_name": "pcmu",
            "packets_sent": 1953,
            "packets_lost": 0,
            "packets_loss_percentage": 0,
            "jitter": {
              "max": 1.76407,
              "avg": 0.23138
            },
            "latency": {
              "max": 0.386,
              "avg": 0.3765
            }
          }
        }
      },
      "client_edge": null,
      "carrier_edge": {
        "properties": {
          "media_region": "us1",
          "signaling_region": "us1",
          "edge_location": "xxxx",
          "direction": "outbound"
        }
      },
      "tags": [
        "silence"
      ],
      "attributes": {
        "conference_participant": false
      },
      "properties": {
        "last_sip_response_num": 200,
        "pdd_ms": 1990,
        "disconnected_by": "caller",
        "direction": "trunking_terminating"
      },
      "trust": {
        "verified_caller": {
          "verified": true
        }
      },
      "annotation": null,
      "url": "https://insights.twilio.com/v1/Voice/Summaries"
    }
  ]
}
```

Read multiple Call Summaries with annotations

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listCallSummaries() {
  const callSummaries = await client.insights.v1.callSummaries.list({
    answeredBy: "human",
    callScoreAnnotation: "1",
    connectivityIssueAnnotation: "no_connectivity_issue",
    qualityIssueAnnotation: "latency",
    spamAnnotation: false,
    startTime: "15d",
    limit: 20,
  });

  callSummaries.forEach((c) => console.log(c.accountSid));
}

listCallSummaries();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call_summaries = client.insights.v1.call_summaries.list(
    start_time="15d",
    answered_by="human",
    connectivity_issue_annotation="no_connectivity_issue",
    quality_issue_annotation="latency",
    spam_annotation=False,
    call_score_annotation="1",
    limit=20,
)

for record in call_summaries:
    print(record.account_sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Insights.V1;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var callSummaries = await CallSummariesResource.ReadAsync(
            startTime: "15d",
            answeredBy: CallSummariesResource.AnsweredByEnum.Human,
            connectivityIssueAnnotation: "no_connectivity_issue",
            qualityIssueAnnotation: "latency",
            spamAnnotation: false,
            callScoreAnnotation: "1",
            limit: 20);

        foreach (var record in callSummaries) {
            Console.WriteLine(record.AccountSid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.insights.v1.CallSummaries;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<CallSummaries> callSummaries = CallSummaries.reader()
                                                       .setStartTime("15d")
                                                       .setAnsweredBy(CallSummaries.AnsweredBy.HUMAN)
                                                       .setConnectivityIssueAnnotation("no_connectivity_issue")
                                                       .setQualityIssueAnnotation("latency")
                                                       .setSpamAnnotation(false)
                                                       .setCallScoreAnnotation("1")
                                                       .limit(20)
                                                       .read();

        for (CallSummaries record : callSummaries) {
            System.out.println(record.getAccountSid());
        }
    }
}
```

```go
// Download the helper library from https://www.twilio.com/docs/go/install
package main

import (
	"fmt"
	"github.com/twilio/twilio-go"
	insights "github.com/twilio/twilio-go/rest/insights/v1"
	"os"
)

func main() {
	// Find your Account SID and Auth Token at twilio.com/console
	// and set the environment variables. See http://twil.io/secure
	// Make sure TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN exists in your environment
	client := twilio.NewRestClient()

	params := &insights.ListCallSummariesParams{}
	params.SetStartTime("15d")
	params.SetAnsweredBy("human")
	params.SetConnectivityIssueAnnotation("no_connectivity_issue")
	params.SetQualityIssueAnnotation("latency")
	params.SetSpamAnnotation(false)
	params.SetCallScoreAnnotation("1")
	params.SetLimit(20)

	resp, err := client.InsightsV1.ListCallSummaries(params)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		for record := range resp {
			if resp[record].AccountSid != nil {
				fmt.Println(*resp[record].AccountSid)
			} else {
				fmt.Println(resp[record].AccountSid)
			}
		}
	}
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$callSummaries = $twilio->insights->v1->callSummaries->read(
    [
        "startTime" => "15d",
        "answeredBy" => "human",
        "connectivityIssueAnnotation" => "no_connectivity_issue",
        "qualityIssueAnnotation" => "latency",
        "spamAnnotation" => false,
        "callScoreAnnotation" => "1",
    ],
    20
);

foreach ($callSummaries as $record) {
    print $record->accountSid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

call_summaries = @client
                 .insights
                 .v1
                 .call_summaries
                 .list(
                   start_time: '15d',
                   answered_by: 'human',
                   connectivity_issue_annotation: 'no_connectivity_issue',
                   quality_issue_annotation: 'latency',
                   spam_annotation: false,
                   call_score_annotation: '1',
                   limit: 20
                 )

call_summaries.each do |record|
   puts record.account_sid
end
```

```bash
# Install the twilio-cli from https://twil.io/cli

twilio api:insights:v1:voice:summaries:list \
   --start-time 15d \
   --answered-by human \
   --connectivity-issue-annotation no_connectivity_issue \
   --quality-issue-annotation latency \
   --call-score-annotation 1
```

```bash
curl -X GET "https://insights.twilio.com/v1/Voice/Summaries?StartTime=15d&AnsweredBy=human&ConnectivityIssueAnnotation=no_connectivity_issue&QualityIssueAnnotation=latency&SpamAnnotation=false&CallScoreAnnotation=1&PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "page": 0,
    "page_size": 25,
    "first_page_url": "https://insights.twilio.com/v1/Voice/Summaries?PageSize=25&Page=0",
    "previous_page_url": null,
    "next_page_url": null,
    "key": "call_summaries",
    "url": "https://insights.twilio.com/v1/Voice/Summaries?PageSize=25&Page=0"
  },
  "call_summaries": []
}
```
