List calls
curl --request GET \
--url https://api.talkpilot.io/v1/agents/{agentId}/calls \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.talkpilot.io/v1/agents/{agentId}/calls"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.talkpilot.io/v1/agents/{agentId}/calls', 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.talkpilot.io/v1/agents/{agentId}/calls",
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>"
],
]);
$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.talkpilot.io/v1/agents/{agentId}/calls"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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.talkpilot.io/v1/agents/{agentId}/calls")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.talkpilot.io/v1/agents/{agentId}/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "call-uuid-1",
"call_id": "lk_call_abc123",
"customer_name": "Hans Meier",
"customer_request": "Frage zu Rechnung #1234",
"phone_number": "+491701234567",
"duration": 180,
"done": true,
"general_success": true,
"disconnection_reason": "user_hangup",
"call_summary": "Kunde fragte nach Rechnung...",
"employee": "Max Mustermann",
"note": null,
"agent_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-03-19T10:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}Calls
List calls
Returns calls for the specified agent with optional filtering.
Results are ordered by created_at descending (newest first).
Soft-deleted calls are excluded by default. Calls permanently deleted in
the Dashboard trash are never returned, not even with include_deleted=true.
GET
/
v1
/
agents
/
{agentId}
/
calls
List calls
curl --request GET \
--url https://api.talkpilot.io/v1/agents/{agentId}/calls \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.talkpilot.io/v1/agents/{agentId}/calls"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.talkpilot.io/v1/agents/{agentId}/calls', 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.talkpilot.io/v1/agents/{agentId}/calls",
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>"
],
]);
$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.talkpilot.io/v1/agents/{agentId}/calls"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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.talkpilot.io/v1/agents/{agentId}/calls")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.talkpilot.io/v1/agents/{agentId}/calls")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "call-uuid-1",
"call_id": "lk_call_abc123",
"customer_name": "Hans Meier",
"customer_request": "Frage zu Rechnung #1234",
"phone_number": "+491701234567",
"duration": 180,
"done": true,
"general_success": true,
"disconnection_reason": "user_hangup",
"call_summary": "Kunde fragte nach Rechnung...",
"employee": "Max Mustermann",
"note": null,
"agent_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-03-19T10:30:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}Authorizations
API key for external access. Format: tp_live_<32-hex-chars>.
Create keys in the TalkPilot Dashboard under Settings > API.
Path Parameters
Agent UUID
Query Parameters
Page number
Required range:
x >= 1Items per page
Required range:
1 <= x <= 100Filter by completion status
Filter calls created after this date (ISO 8601)
Filter calls created before this date (ISO 8601)
Filter by caller phone number (exact match)
Search in customer name, phone number, or call summary
Include soft-deleted calls