curl --request GET \
--url https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id} \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_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://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_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>",
"Cartesia-Version: <cartesia-version>"
],
]);
$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.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
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://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"config": {
"audio": {
"input": {
"keyterms": [
"<string>"
],
"noise_suppression": "off"
},
"output": {
"background_sound": {
"file_id": "<string>",
"volume": 1
},
"emotion": "<string>",
"pronunciation_dictionary_id": "<string>",
"speed": 1.05,
"voice_id": "<string>",
"volume": 1.25
}
},
"dynamic_variable_placeholders": {},
"initial_message": "<string>",
"instructions": "<string>",
"language": {
"primary": "en"
},
"model": {
"id": "gpt-5.4-mini",
"max_output_tokens": 2048,
"temperature": 0.5
},
"system_tools": {
"end_call": {
"description": "<string>",
"pre_tool_speech": "auto"
},
"send_dtmf": {
"description": "<string>",
"pre_tool_speech": "auto"
},
"transfer_to_number": {
"description": "<string>",
"pre_tool_speech": "auto",
"transfers": [
{
"condition": "<string>",
"destination": {
"phone_number": "<string>",
"type": "phone"
}
}
]
}
},
"timezone": "America/Los_Angeles",
"tools": [
{
"id": "<string>"
}
]
},
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"description": "<string>",
"id": "<string>"
}{
"message": "<string>",
"request_id": "<string>",
"title": "<string>",
"doc_url": "<string>",
"error_code": "<string>"
}Get Agent Version
Returns one immutable configuration snapshot. To restore it, pass its config to PATCH /v1/agents/{agent_id}. Restoring creates a new version and does not change existing history.
curl --request GET \
--url https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id} \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_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://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_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>",
"Cartesia-Version: <cartesia-version>"
],
]);
$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.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
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://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/v1/agents/{agent_id}/versions/{version_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"config": {
"audio": {
"input": {
"keyterms": [
"<string>"
],
"noise_suppression": "off"
},
"output": {
"background_sound": {
"file_id": "<string>",
"volume": 1
},
"emotion": "<string>",
"pronunciation_dictionary_id": "<string>",
"speed": 1.05,
"voice_id": "<string>",
"volume": 1.25
}
},
"dynamic_variable_placeholders": {},
"initial_message": "<string>",
"instructions": "<string>",
"language": {
"primary": "en"
},
"model": {
"id": "gpt-5.4-mini",
"max_output_tokens": 2048,
"temperature": 0.5
},
"system_tools": {
"end_call": {
"description": "<string>",
"pre_tool_speech": "auto"
},
"send_dtmf": {
"description": "<string>",
"pre_tool_speech": "auto"
},
"transfer_to_number": {
"description": "<string>",
"pre_tool_speech": "auto",
"transfers": [
{
"condition": "<string>",
"destination": {
"phone_number": "<string>",
"type": "phone"
}
}
]
}
},
"timezone": "America/Los_Angeles",
"tools": [
{
"id": "<string>"
}
]
},
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"description": "<string>",
"id": "<string>"
}{
"message": "<string>",
"request_id": "<string>",
"title": "<string>",
"doc_url": "<string>",
"error_code": "<string>"
}Authorizations
Cartesia API key (sk_car_...). Get one at play.cartesia.ai/keys.
Headers
API version header.
2026-08-14 "2026-08-14"
Path Parameters
Unique identifier for the agent.
1Unique identifier for an immutable agent configuration version.
1Response
Get an agent version
An immutable snapshot of an agent's configuration.
Complete configuration for the agent's model, language, audio, and tools.
Show child attributes
Show child attributes
Time when this version was created.
ID of the user or API key that created this version. null when no creator was recorded.
1Description supplied when this version was created. null if none was provided.
Unique identifier for an immutable agent configuration version.
1Was this page helpful?