Agent versions
Get agent version API
Get the full configuration a Bolna voice agent had in one version, in the same shape as Get agent.
GET
/
v2
/
agent
/
{agent_id}
/
versions
/
{agent_version_id}
cURL
curl --request GET \
--url https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_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.bolna.ai/v2/agent/{agent_id}/versions/{agent_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>"
],
]);
$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.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_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://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_name": "Alfred",
"agent_type": "other",
"agent_status": "processed",
"created_at": "2024-01-23T01:14:37Z",
"updated_at": "2024-01-29T18:31:22Z",
"tasks": [
{
"task_type": "conversation",
"tools_config": {
"llm_agent": {
"agent_type": "simple_llm_agent",
"agent_flow_type": "streaming",
"routes": {
"embedding_model": "snowflake/snowflake-arctic-embed-m",
"routes": [
{
"route_name": "politics",
"utterances": [
"Who do you think will win the elections?",
"Whom would you vote for?"
],
"response": "Hey, thanks but I do not have opinions on politics",
"score_threshold": 0.9
}
]
},
"llm_config": {
"agent_flow_type": "streaming",
"provider": "openai",
"family": "openai",
"model": "gpt-5.4-mini",
"summarization_details": null,
"extraction_details": null,
"max_tokens": 150,
"temperature": 1,
"reasoning_effort": "low",
"verbosity": "low",
"use_responses_api": false,
"compact_threshold": null,
"extra_body": {
"chat_template_kwargs": {
"enable_thinking": false
}
},
"presence_penalty": 0,
"frequency_penalty": 0,
"base_url": "https://api.openai.com/v1",
"top_p": 0.9,
"min_p": 0.1,
"top_k": 0,
"request_json": false
}
},
"synthesizer": {
"provider": "elevenlabs",
"provider_config": {
"voice": "Angelica",
"voice_id": "IkSv4tkouLJ6kYsQA7XD",
"model": "eleven_turbo_v2_5",
"temperature": 0.5,
"similarity_boost": 0.75,
"speed": 1,
"style": 0,
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "5xM3yVvZQKV0EfqQpLrJ",
"version_id": "Tdiw9eBX1Z4oE1fqKD9u"
}
]
},
"stream": true,
"caching": true,
"buffer_size": 250,
"audio_format": "wav",
"pronunciation_rules": [
{
"word": "HDFC",
"say_as": "H D F C bank"
}
]
},
"transcriber": {
"provider": "deepgram",
"model": "nova-3",
"language": "en",
"stream": true,
"sampling_rate": 16000,
"encoding": "linear16",
"endpointing": 250,
"keywords": "Bolna,Acme",
"context": "Inbound support line for a voice AI platform. Callers ask about telephony setup and billing.",
"vad_threshold": 0.5,
"vad_prefix_padding_ms": 300,
"eot_threshold": 0.7,
"eot_timeout_ms": 1000,
"eager_eot_threshold": 0.5,
"assemblyai_config": null,
"delay": "medium",
"noise_reduction": false,
"language_hints": [
"en",
"hi"
],
"task": "transcribe",
"deepgram_host": "api.example-onprem.com",
"deepgram_host_protocol": "wss",
"deepgram_flux_host": "flux.example-onprem.com"
},
"input": {
"provider": "plivo",
"format": "wav"
},
"output": {
"provider": "plivo",
"format": "wav"
},
"api_tools": null,
"s2s": null,
"multilingual_config": null
},
"toolchain": {
"execution": "parallel",
"pipelines": [
[
"transcriber",
"llm",
"synthesizer"
]
]
},
"task_config": {
"hangup_after_silence": 10,
"hangup_after_LLMCall": false,
"incremental_delay": 400,
"number_of_words_for_interruption": 2,
"call_cancellation_prompt": null,
"backchanneling": false,
"backchanneling_message_gap": 5,
"backchanneling_start_delay": 5,
"ambient_noise": false,
"ambient_noise_track": "coffee-shop",
"call_terminate": 90,
"inbound_limit": -1,
"whitelist_phone_numbers": null,
"disallow_unknown_numbers": false,
"dtmf_enabled": false,
"auto_reschedule": false,
"welcome_message_delay": 0,
"noise_cancellation_level": null,
"call_hangup_message": null,
"interruptible_hangup_message": false,
"check_if_user_online": true,
"trigger_user_online_message_after": 10,
"voicemail": false,
"voicemail_detection_duration": 30,
"voicemail_check_interval": 7,
"voicemail_min_transcript_length": 7,
"voicemail_detection_time": null
}
}
],
"ingest_source_config": {
"source_type": "api",
"source_url": "https://example.com/api/data",
"source_auth_token": "abc123",
"source_name": "leads_sheet_june.csv"
},
"call_summary_enabled": false,
"agent_prompts": {
"task_1": {
"system_prompt": "What is the Ultimate Question of Life, the Universe, and Everything?"
}
}
}{
"message": "Agent version not found"
}Returns the agent as saved in this version, in the same shape as Get agent. The version is described by these fields:
Works for any version that isn’t deleted, including earlier saves that List agent versions doesn’t show. To edit the version, send the returned
| Field | Description |
|---|---|
version_id | The version’s id |
version_name | The version’s name |
tags | The version’s tags |
created_at | When this save was made |
agent_config and agent_prompts, with your changes, to Update agent version.Authorizations
Path Parameters
The version's id, from List agent versions
Response
The agent as saved in this version. version_id, version_name, tags and created_at describe the version.
Was this page helpful?
⌘I
cURL
curl --request GET \
--url https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_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.bolna.ai/v2/agent/{agent_id}/versions/{agent_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>"
],
]);
$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.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_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://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bolna.ai/v2/agent/{agent_id}/versions/{agent_version_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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agent_name": "Alfred",
"agent_type": "other",
"agent_status": "processed",
"created_at": "2024-01-23T01:14:37Z",
"updated_at": "2024-01-29T18:31:22Z",
"tasks": [
{
"task_type": "conversation",
"tools_config": {
"llm_agent": {
"agent_type": "simple_llm_agent",
"agent_flow_type": "streaming",
"routes": {
"embedding_model": "snowflake/snowflake-arctic-embed-m",
"routes": [
{
"route_name": "politics",
"utterances": [
"Who do you think will win the elections?",
"Whom would you vote for?"
],
"response": "Hey, thanks but I do not have opinions on politics",
"score_threshold": 0.9
}
]
},
"llm_config": {
"agent_flow_type": "streaming",
"provider": "openai",
"family": "openai",
"model": "gpt-5.4-mini",
"summarization_details": null,
"extraction_details": null,
"max_tokens": 150,
"temperature": 1,
"reasoning_effort": "low",
"verbosity": "low",
"use_responses_api": false,
"compact_threshold": null,
"extra_body": {
"chat_template_kwargs": {
"enable_thinking": false
}
},
"presence_penalty": 0,
"frequency_penalty": 0,
"base_url": "https://api.openai.com/v1",
"top_p": 0.9,
"min_p": 0.1,
"top_k": 0,
"request_json": false
}
},
"synthesizer": {
"provider": "elevenlabs",
"provider_config": {
"voice": "Angelica",
"voice_id": "IkSv4tkouLJ6kYsQA7XD",
"model": "eleven_turbo_v2_5",
"temperature": 0.5,
"similarity_boost": 0.75,
"speed": 1,
"style": 0,
"pronunciation_dictionary_locators": [
{
"pronunciation_dictionary_id": "5xM3yVvZQKV0EfqQpLrJ",
"version_id": "Tdiw9eBX1Z4oE1fqKD9u"
}
]
},
"stream": true,
"caching": true,
"buffer_size": 250,
"audio_format": "wav",
"pronunciation_rules": [
{
"word": "HDFC",
"say_as": "H D F C bank"
}
]
},
"transcriber": {
"provider": "deepgram",
"model": "nova-3",
"language": "en",
"stream": true,
"sampling_rate": 16000,
"encoding": "linear16",
"endpointing": 250,
"keywords": "Bolna,Acme",
"context": "Inbound support line for a voice AI platform. Callers ask about telephony setup and billing.",
"vad_threshold": 0.5,
"vad_prefix_padding_ms": 300,
"eot_threshold": 0.7,
"eot_timeout_ms": 1000,
"eager_eot_threshold": 0.5,
"assemblyai_config": null,
"delay": "medium",
"noise_reduction": false,
"language_hints": [
"en",
"hi"
],
"task": "transcribe",
"deepgram_host": "api.example-onprem.com",
"deepgram_host_protocol": "wss",
"deepgram_flux_host": "flux.example-onprem.com"
},
"input": {
"provider": "plivo",
"format": "wav"
},
"output": {
"provider": "plivo",
"format": "wav"
},
"api_tools": null,
"s2s": null,
"multilingual_config": null
},
"toolchain": {
"execution": "parallel",
"pipelines": [
[
"transcriber",
"llm",
"synthesizer"
]
]
},
"task_config": {
"hangup_after_silence": 10,
"hangup_after_LLMCall": false,
"incremental_delay": 400,
"number_of_words_for_interruption": 2,
"call_cancellation_prompt": null,
"backchanneling": false,
"backchanneling_message_gap": 5,
"backchanneling_start_delay": 5,
"ambient_noise": false,
"ambient_noise_track": "coffee-shop",
"call_terminate": 90,
"inbound_limit": -1,
"whitelist_phone_numbers": null,
"disallow_unknown_numbers": false,
"dtmf_enabled": false,
"auto_reschedule": false,
"welcome_message_delay": 0,
"noise_cancellation_level": null,
"call_hangup_message": null,
"interruptible_hangup_message": false,
"check_if_user_online": true,
"trigger_user_online_message_after": 10,
"voicemail": false,
"voicemail_detection_duration": 30,
"voicemail_check_interval": 7,
"voicemail_min_transcript_length": 7,
"voicemail_detection_time": null
}
}
],
"ingest_source_config": {
"source_type": "api",
"source_url": "https://example.com/api/data",
"source_auth_token": "abc123",
"source_name": "leads_sheet_june.csv"
},
"call_summary_enabled": false,
"agent_prompts": {
"task_1": {
"system_prompt": "What is the Ultimate Question of Life, the Universe, and Everything?"
}
}
}{
"message": "Agent version not found"
}
