Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
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"
}
}
}Retrieves a call by ID (current behavior).
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"
}
}
}API Key for MCP server and external service authentication
API Secret for MCP server and external service authentication
Unique identifier of the call