Get Call History Metrics
curl --request GET \
--url https://api.trillet.ai/v2/api/call-history/metrics \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>'import requests
url = "https://api.trillet.ai/v2/api/call-history/metrics"
headers = {
"x-api-key": "<api-key>",
"x-workspace-id": "<x-workspace-id>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-workspace-id': '<x-workspace-id>'}
};
fetch('https://api.trillet.ai/v2/api/call-history/metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trillet.ai/v2/api/call-history/metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-workspace-id: <x-workspace-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.trillet.ai/v2/api/call-history/metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-workspace-id", "<x-workspace-id>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.trillet.ai/v2/api/call-history/metrics")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v2/api/call-history/metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-workspace-id"] = '<x-workspace-id>'
response = http.request(request)
puts response.read_body{
"totalCalls": 150,
"completedCalls": 120,
"failedCalls": 10,
"averageDuration": 180,
"totalCost": 45.50
}
Calls
Get Call History Metrics
Retrieve aggregated metrics and analytics for call history records in your workspace.
GET
/
v2
/
api
/
call-history
/
metrics
Get Call History Metrics
curl --request GET \
--url https://api.trillet.ai/v2/api/call-history/metrics \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>'import requests
url = "https://api.trillet.ai/v2/api/call-history/metrics"
headers = {
"x-api-key": "<api-key>",
"x-workspace-id": "<x-workspace-id>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-api-key': '<api-key>', 'x-workspace-id': '<x-workspace-id>'}
};
fetch('https://api.trillet.ai/v2/api/call-history/metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trillet.ai/v2/api/call-history/metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>",
"x-workspace-id: <x-workspace-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.trillet.ai/v2/api/call-history/metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-workspace-id", "<x-workspace-id>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.trillet.ai/v2/api/call-history/metrics")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v2/api/call-history/metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["x-workspace-id"] = '<x-workspace-id>'
response = http.request(request)
puts response.read_body{
"totalCalls": 150,
"completedCalls": 120,
"failedCalls": 10,
"averageDuration": 180,
"totalCost": 45.50
}
Headers
string
required
API key used for authenticating requests to the API.
string
required
Workspace identifier for the API.
Query Parameters
string
Filter metrics by a specific agent ID.
string
Filter by call status (e.g., “completed”, “failed”, “no-answer”).
string
Filter by call direction (“inbound”, “outbound”, “bidirectional”).
string
Filter by call flow ID.
string
JSON string with startDate and endDate in ISO format. Example:
{"startDate":"2024-01-01","endDate":"2024-01-31"}string
Filter by call type: “sip” or “web”.
string
Full-text search across caller name, phone numbers, and call ID. Accepts any phone format —
+1 (845) 630-1653, 18456301653, or 8456301653 all match the same record.string
Filter metrics to calls originating from a specific phone number. Non-digit characters are stripped automatically. Requires at least 7 digits.
string
Filter metrics to calls directed to a specific phone number. Same normalization as
fromPhone.Response Fields
number
Total number of calls matching the filters.
number
Number of completed calls.
number
Number of failed calls.
number
Average call duration in seconds.
number
Total cost of all calls.
{
"totalCalls": 150,
"completedCalls": 120,
"failedCalls": 10,
"averageDuration": 180,
"totalCost": 45.50
}
