curl --request GET \
--url https://api.talkpilot.io/v1/agents/{agentId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.talkpilot.io/v1/agents/{agentId}"
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}', 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}",
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}"
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}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.talkpilot.io/v1/agents/{agentId}")
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{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Rezeption Bot",
"phone_number": "+4930123456",
"is_active": true,
"language": "de",
"formality": "formal",
"llm_provider": "openai",
"llm_model": "gpt-4.1",
"llm_temperature": 0.7,
"tts_provider": "cartesia",
"voice_id": "sarah",
"realtime_voice": null,
"speaking_rate": 1,
"stt_provider": "deepgram",
"prompt": "Du bist ein freundlicher Rezeptionsbot...",
"greeting": "Guten Tag, wie kann ich Ihnen helfen?",
"post_call_webhook_url": "https://example.com/webhook",
"schedule": {
"timezone": "Europe/Berlin",
"rules": [
{
"days": [
1,
2,
3,
4,
5
],
"start_time": "08:00",
"end_time": "18:00"
}
]
},
"backup_agent_id": null,
"allow_greeting_interruption": true,
"short_calls_auto_edit": false,
"track_caller_name": true,
"transfer_timeout_seconds": 30,
"created_at": "2025-06-01T10:00:00Z",
"updated_at": "2025-06-15T14:30:00Z"
}Get agent details
Returns the full configuration of a single agent.
curl --request GET \
--url https://api.talkpilot.io/v1/agents/{agentId} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.talkpilot.io/v1/agents/{agentId}"
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}', 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}",
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}"
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}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.talkpilot.io/v1/agents/{agentId}")
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{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Rezeption Bot",
"phone_number": "+4930123456",
"is_active": true,
"language": "de",
"formality": "formal",
"llm_provider": "openai",
"llm_model": "gpt-4.1",
"llm_temperature": 0.7,
"tts_provider": "cartesia",
"voice_id": "sarah",
"realtime_voice": null,
"speaking_rate": 1,
"stt_provider": "deepgram",
"prompt": "Du bist ein freundlicher Rezeptionsbot...",
"greeting": "Guten Tag, wie kann ich Ihnen helfen?",
"post_call_webhook_url": "https://example.com/webhook",
"schedule": {
"timezone": "Europe/Berlin",
"rules": [
{
"days": [
1,
2,
3,
4,
5
],
"start_time": "08:00",
"end_time": "18:00"
}
]
},
"backup_agent_id": null,
"allow_greeting_interruption": true,
"short_calls_auto_edit": false,
"track_caller_name": true,
"transfer_timeout_seconds": 30,
"created_at": "2025-06-01T10:00:00Z",
"updated_at": "2025-06-15T14:30:00Z"
}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
Response
Agent details
Language code: de, en, fr, es
formal = Sie, informal = Du
formal, informal azure, openai, gemini, gemini_live, gemini_live_cascade, openai_realtime, openai_realtime_cascade, groq Model identifier, e.g. gpt-4.1, gemini-2.5-flash, meta-llama/llama-4-scout-17b-16e-instruct, llama-3.3-70b-versatile, llama-3.1-8b-instant
0 <= x <= 2cartesia, elevenlabs, gemini_live, openai_realtime Voice identifier for TTS
Voice for native realtime providers (OpenAI/Gemini)
0.5 <= x <= 2Speech-to-text provider (null for native realtime)
deepgram, elevenlabs, mistral, groq Words the speech recognizer should prefer (names, products); max 100
100System prompt for the agent
50000Initial greeting message when call starts
2000Personalised greetings. The first variant whose conditions all match the
caller wins; otherwise greeting is spoken. A variant is only spoken when
every placeholder in it has a value.
Show child attributes
Show child attributes
Webhook URL called after each call completes
Agent business hours. When set, the agent only accepts calls during the specified time windows. Outside hours, calls go to the backup agent.
Show child attributes
Show child attributes
Fallback agent when outside the schedule
Allow callers to interrupt the greeting
Automatically mark very short calls as done
Ask for and track the caller's name
Timeout in seconds for call transfers (5-45)
5 <= x <= 45German state for public-holiday handling; DE = nationwide holidays only
DE, BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, NRW, RP, SL, SN, ST, SH, TH Play ambient background audio during the call
office, cafe, home_office 0 <= x <= 1Play a subtle sound while the agent waits for the LLM
0 <= x <= 1On-device voice-focus enhancement (ai-coustics) before speech recognition
GDPR retention of call data in days (null = default 90). Managed in the Dashboard
Provider-specific tuning (e.g. Flux/EOU settings). Managed in the Dashboard