에이전트 단건 조회
에이전트 1건을 조회합니다. version=current는 수정 가능한 현재 상태를, production이나 v{n}은 저장된 스냅샷을 반환합니다.
curl --request GET \
--url https://client-api.tryvox.co/v3/agents/{agent_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://client-api.tryvox.co/v3/agents/{agent_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://client-api.tryvox.co/v3/agents/{agent_id}', 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://client-api.tryvox.co/v3/agents/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://client-api.tryvox.co/v3/agents/{agent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://client-api.tryvox.co/v3/agents/{agent_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/agents/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": 123,
"updated_at": 123,
"production_version": "v1",
"data": {
"prompt": {
"prompt": "",
"firstLine": "",
"firstLineType": "aiFirstDynamic",
"pauseBeforeSpeakingSeconds": 0,
"isFirstMessageInterruptible": true
},
"stt": {
"languages": [
"<string>"
],
"speed": "high"
},
"llm": {
"model": "<string>",
"temperature": 1
},
"voice": {
"id": "<string>",
"provider": "<string>",
"model": "<string>",
"speed": 1,
"volume": 1,
"language": "<string>",
"temperature": 0.9
},
"speech": {
"responsiveness": 1,
"boostedKeywords": "<string>"
},
"callSettings": {
"backgroundMusic": "none",
"backgroundMusicVolume": 0.5,
"noiseCancellation": "bvc",
"activationThreshold": 0.55,
"callTimeoutInSeconds": 900,
"silenceCallTimeoutInSeconds": 30,
"ringDurationInSeconds": 30,
"dtmfTerminationEnabled": false,
"dtmfTerminationKey": "#",
"dtmfTimeoutSeconds": 3
},
"postCall": {
"actions": [
{
"name": "<string>",
"isNullable": false,
"description": "<string>",
"enumOptions": [
"<string>"
]
}
]
},
"security": {
"optOutSensitiveDataStorage": false,
"dataRetention": {
"durationSeconds": 157788000,
"retainedDataTypes": []
},
"piiMasking": {
"enabled": false,
"name": false,
"phone": false,
"birthDate": false,
"address": false,
"email": false,
"residentId": false
}
},
"memory": {
"enabled": false
},
"webhookSettings": {
"callDataWebhookUrl": "<string>",
"inboundCallWebhookUrl": "<string>",
"inboundCallWebhookSigningEnabled": false
},
"knowledge": {
"ragEnabled": false,
"knowledgeIds": [
123
]
},
"presetDynamicVariables": {},
"toolIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInTools": [
{
"toolType": "<string>",
"speakDuringExecution": {
"enabled": false,
"messages": [
"<string>"
]
},
"allowInterruptionDuringExecution": false,
"responseMode": "wait",
"name": "end_call",
"description": "<string>"
}
]
},
"flow_data": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"data": {
"name": "<string>",
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
},
"position": {
"x": 123,
"y": 123
}
}
],
"edges": [
{
"id": "<string>",
"source": "<string>",
"target": "<string>",
"type": "custom",
"sourceHandle": "<string>"
}
]
},
"flow": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"data": {
"name": "<string>",
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
},
"position": {
"x": 123,
"y": 123
}
}
],
"edges": [
{
"source": "<string>",
"target": "<string>",
"condition": {
"type": "<string>",
"prompt": ""
},
"id": "<string>",
"skip_user_response": false
}
]
},
"version": {
"version": "<string>",
"is_production": true,
"created_at": 123,
"description": "<string>"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed.",
"details": {
"field": "name",
"reason": "must not be blank"
}
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"details": {}
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission denied.",
"details": {}
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found.",
"details": {
"resource": "agent"
}
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested operation conflicts with current state.",
"details": {
"current_status": "draft"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests.",
"details": {
"limit": 5,
"window_seconds": 1
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error.",
"details": {}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable.",
"details": {}
}
}Authorizations
조직 API 키를 Authorization: Bearer <token> 형식으로 보냅니다.
Path Parameters
agent_id로 반환되는 에이전트 UUID입니다.
Query Parameters
조회할 버전 selector. "current" (default) · "production" · "v{n}".
^(current|production|v[1-9][0-9]*)$Response
성공 응답
에이전트 단건 조회 응답. Summary + data·flow·flow_data·version.
create/update 응답은 AgentMutationResponse (validator 메시지 포함).
에이전트 UUID입니다.
에이전트 이름입니다. 버전 스냅샷을 조회하더라도 현재 최상위 이름을 반환합니다.
에이전트 유형입니다. single_prompt 또는 flow 값을 사용합니다.
single_prompt, flow 리소스 생성 시각입니다. unix milliseconds 형식입니다.
리소스 마지막 수정 시각입니다. unix milliseconds 형식입니다.
현재 게시된 production 버전입니다. 없으면 null입니다.
^v[1-9][0-9]*$"v1"
선택된 에이전트 설정 스냅샷입니다. 구조는 agent-schema/agent-data-response에 공개되어 있습니다.
Show child attributes
Show child attributes
지원 종료 예정 필드입니다. 에이전트의 플로우 그래프를 예전 형식으로 담고 있으며, 기존 호환을 위해 유지됩니다. 읽기 전용이고, flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 새 통합은 flow를 사용하세요. 이 필드는 지원 종료 기간 이후 제거됩니다.
Show child attributes
Show child attributes
에이전트의 플로우 그래프입니다. nodes를 edges로 연결하고, 각 edge가 분기 조건을 가집니다. flow 에이전트에서는 값이 있고 single_prompt 에이전트에서는 null입니다. 지원 종료 예정인 flow_data 대신 이 필드를 사용하세요. 정확한 형태는 flow-schema/flow-data 스키마 엔드포인트에 공개됩니다.
Show child attributes
Show child attributes
스냅샷 조회 시에만 populated (version=v{n} 또는 production).
Show child attributes
Show child attributes
Was this page helpful?
curl --request GET \
--url https://client-api.tryvox.co/v3/agents/{agent_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://client-api.tryvox.co/v3/agents/{agent_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://client-api.tryvox.co/v3/agents/{agent_id}', 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://client-api.tryvox.co/v3/agents/{agent_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://client-api.tryvox.co/v3/agents/{agent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://client-api.tryvox.co/v3/agents/{agent_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.tryvox.co/v3/agents/{agent_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_at": 123,
"updated_at": 123,
"production_version": "v1",
"data": {
"prompt": {
"prompt": "",
"firstLine": "",
"firstLineType": "aiFirstDynamic",
"pauseBeforeSpeakingSeconds": 0,
"isFirstMessageInterruptible": true
},
"stt": {
"languages": [
"<string>"
],
"speed": "high"
},
"llm": {
"model": "<string>",
"temperature": 1
},
"voice": {
"id": "<string>",
"provider": "<string>",
"model": "<string>",
"speed": 1,
"volume": 1,
"language": "<string>",
"temperature": 0.9
},
"speech": {
"responsiveness": 1,
"boostedKeywords": "<string>"
},
"callSettings": {
"backgroundMusic": "none",
"backgroundMusicVolume": 0.5,
"noiseCancellation": "bvc",
"activationThreshold": 0.55,
"callTimeoutInSeconds": 900,
"silenceCallTimeoutInSeconds": 30,
"ringDurationInSeconds": 30,
"dtmfTerminationEnabled": false,
"dtmfTerminationKey": "#",
"dtmfTimeoutSeconds": 3
},
"postCall": {
"actions": [
{
"name": "<string>",
"isNullable": false,
"description": "<string>",
"enumOptions": [
"<string>"
]
}
]
},
"security": {
"optOutSensitiveDataStorage": false,
"dataRetention": {
"durationSeconds": 157788000,
"retainedDataTypes": []
},
"piiMasking": {
"enabled": false,
"name": false,
"phone": false,
"birthDate": false,
"address": false,
"email": false,
"residentId": false
}
},
"memory": {
"enabled": false
},
"webhookSettings": {
"callDataWebhookUrl": "<string>",
"inboundCallWebhookUrl": "<string>",
"inboundCallWebhookSigningEnabled": false
},
"knowledge": {
"ragEnabled": false,
"knowledgeIds": [
123
]
},
"presetDynamicVariables": {},
"toolIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"builtInTools": [
{
"toolType": "<string>",
"speakDuringExecution": {
"enabled": false,
"messages": [
"<string>"
]
},
"allowInterruptionDuringExecution": false,
"responseMode": "wait",
"name": "end_call",
"description": "<string>"
}
]
},
"flow_data": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"data": {
"name": "<string>",
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
},
"position": {
"x": 123,
"y": 123
}
}
],
"edges": [
{
"id": "<string>",
"source": "<string>",
"target": "<string>",
"type": "custom",
"sourceHandle": "<string>"
}
]
},
"flow": {
"nodes": [
{
"id": "<string>",
"type": "<string>",
"data": {
"name": "<string>",
"globalNodeSettings": {
"isGlobalNode": false,
"transitionCondition": "<string>"
},
"transitions": [
{
"id": "<string>",
"condition": "<string>",
"isSkipUserResponse": true,
"isFallback": true,
"isGlobalTransition": true
}
],
"firstLineType": "aiFirst",
"pauseBeforeSpeakingSeconds": 2.5
},
"position": {
"x": 123,
"y": 123
}
}
],
"edges": [
{
"source": "<string>",
"target": "<string>",
"condition": {
"type": "<string>",
"prompt": ""
},
"id": "<string>",
"skip_user_response": false
}
]
},
"version": {
"version": "<string>",
"is_production": true,
"created_at": 123,
"description": "<string>"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed.",
"details": {
"field": "name",
"reason": "must not be blank"
}
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"details": {}
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Permission denied.",
"details": {}
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found.",
"details": {
"resource": "agent"
}
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested operation conflicts with current state.",
"details": {
"current_status": "draft"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests.",
"details": {
"limit": 5,
"window_seconds": 1
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error.",
"details": {}
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable.",
"details": {}
}
}