Get call by ID
curl --request GET \
--url https://api.zudu.ai/api/calls/{callId} \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'import requests
url = "https://api.zudu.ai/api/calls/{callId}"
headers = {
"X-API-KEY": "<api-key>",
"X-API-SECRET": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://api.zudu.ai/api/calls/{callId}', 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.zudu.ai/api/calls/{callId}",
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-API-SECRET: <api-key>"
],
]);
$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.zudu.ai/api/calls/{callId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-SECRET", "<api-key>")
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.zudu.ai/api/calls/{callId}")
.header("X-API-KEY", "<api-key>")
.header("X-API-SECRET", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zudu.ai/api/calls/{callId}")
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-API-SECRET"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Call retrieved successfully",
"status": "success",
"error": null,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"agent_id": "agent-123",
"call_id": "call-456",
"organization_id": "org-789",
"call_status": "ONGOING",
"call_type": "PHONE_CALL",
"direction": "INBOUND",
"from_number": "+1234567890",
"to_number": "+0987654321",
"start_timestamp": 1703097600000,
"end_timestamp": null,
"call_duration": null,
"disconnection_reason": null,
"recording_url": "https://storage.azure.com/recordings/call-456.mp4",
"public_log_url": "https://api.example.com/logs/call-456",
"opt_out_sensitive_data_storage": false,
"metadata": {
"customer_id": "cust-001",
"priority": "high",
"campaign": "summer-2024"
},
"events": [
{
"timestamp": 1703097600000,
"event": "Call created",
"session_time": 0,
"data": {}
},
{
"timestamp": 1703097630000,
"event": "Call started - INBOUND",
"session_time": 0,
"data": {
"direction": "INBOUND",
"from": "+1234567890",
"to": "+0987654321"
}
}
],
"transcript": "Hello, thank you for calling. How can I help you today?",
"transcript_object": [
{
"role": "assistant",
"content": "Hello, thank you for calling. How can I help you today?",
"timestamp": 1703097635000,
"words": [
{
"word": "Hello",
"start": 1703097635000,
"end": 1703097635500
}
]
}
],
"transcript_with_tool_calls": [],
"latency": {
"e2e": {
"max": 450.2,
"min": 120.1,
"num": 15,
"p50": 250.5,
"p90": 380.8,
"p95": 420.3,
"p99": 445.1,
"values": [
120.1,
180.3,
250.5,
380.8,
450.2
]
},
"llm": {
"max": 180.5,
"min": 80.2,
"num": 8,
"p50": 125.3,
"p90": 160.1,
"p95": 170.8,
"p99": 178.2,
"values": [
80.2,
90.1,
125.3,
160.1,
180.5
]
}
},
"call_analysis": null,
"call_cost": {
"combined_cost": 0.15,
"product_costs": [
{
"product": "inbound_call",
"cost": 0.1,
"unit_price": 0.02
},
{
"product": "llm_usage",
"cost": 0.05,
"unit_price": 0.001
}
],
"total_duration_seconds": 300,
"total_duration_unit_price": 0.02,
"total_one_time_price": 0.05
},
"telephony_identifier": {
"call_sid": "CA1234567890abcdef1234567890abcdef",
"conference_sid": "CF1234567890abcdef1234567890abcdef"
}
}
}Calls
Get call by ID
Retrieves a call by ID (current behavior).
GET
/
api
/
calls
/
{callId}
Get call by ID
curl --request GET \
--url https://api.zudu.ai/api/calls/{callId} \
--header 'X-API-KEY: <api-key>' \
--header 'X-API-SECRET: <api-key>'import requests
url = "https://api.zudu.ai/api/calls/{callId}"
headers = {
"X-API-KEY": "<api-key>",
"X-API-SECRET": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', 'X-API-SECRET': '<api-key>'}
};
fetch('https://api.zudu.ai/api/calls/{callId}', 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.zudu.ai/api/calls/{callId}",
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-API-SECRET: <api-key>"
],
]);
$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.zudu.ai/api/calls/{callId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-API-SECRET", "<api-key>")
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.zudu.ai/api/calls/{callId}")
.header("X-API-KEY", "<api-key>")
.header("X-API-SECRET", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zudu.ai/api/calls/{callId}")
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-API-SECRET"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Call retrieved successfully",
"status": "success",
"error": null,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"agent_id": "agent-123",
"call_id": "call-456",
"organization_id": "org-789",
"call_status": "ONGOING",
"call_type": "PHONE_CALL",
"direction": "INBOUND",
"from_number": "+1234567890",
"to_number": "+0987654321",
"start_timestamp": 1703097600000,
"end_timestamp": null,
"call_duration": null,
"disconnection_reason": null,
"recording_url": "https://storage.azure.com/recordings/call-456.mp4",
"public_log_url": "https://api.example.com/logs/call-456",
"opt_out_sensitive_data_storage": false,
"metadata": {
"customer_id": "cust-001",
"priority": "high",
"campaign": "summer-2024"
},
"events": [
{
"timestamp": 1703097600000,
"event": "Call created",
"session_time": 0,
"data": {}
},
{
"timestamp": 1703097630000,
"event": "Call started - INBOUND",
"session_time": 0,
"data": {
"direction": "INBOUND",
"from": "+1234567890",
"to": "+0987654321"
}
}
],
"transcript": "Hello, thank you for calling. How can I help you today?",
"transcript_object": [
{
"role": "assistant",
"content": "Hello, thank you for calling. How can I help you today?",
"timestamp": 1703097635000,
"words": [
{
"word": "Hello",
"start": 1703097635000,
"end": 1703097635500
}
]
}
],
"transcript_with_tool_calls": [],
"latency": {
"e2e": {
"max": 450.2,
"min": 120.1,
"num": 15,
"p50": 250.5,
"p90": 380.8,
"p95": 420.3,
"p99": 445.1,
"values": [
120.1,
180.3,
250.5,
380.8,
450.2
]
},
"llm": {
"max": 180.5,
"min": 80.2,
"num": 8,
"p50": 125.3,
"p90": 160.1,
"p95": 170.8,
"p99": 178.2,
"values": [
80.2,
90.1,
125.3,
160.1,
180.5
]
}
},
"call_analysis": null,
"call_cost": {
"combined_cost": 0.15,
"product_costs": [
{
"product": "inbound_call",
"cost": 0.1,
"unit_price": 0.02
},
{
"product": "llm_usage",
"cost": 0.05,
"unit_price": 0.001
}
],
"total_duration_seconds": 300,
"total_duration_unit_price": 0.02,
"total_one_time_price": 0.05
},
"telephony_identifier": {
"call_sid": "CA1234567890abcdef1234567890abcdef",
"conference_sid": "CF1234567890abcdef1234567890abcdef"
}
}
}Notes
- Returns full call data, not just status.
Authorizations
API Key for MCP server and external service authentication
API Secret for MCP server and external service authentication
Path Parameters
Unique identifier of the call
⌘I