Update Persona
curl --request PATCH \
--url https://api.bland.ai/v1/personas/{persona_id} \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"name": "<string>",
"role": "<string>",
"description": "<string>",
"tags": [
{}
],
"image_url": "<string>",
"call_config": {
"voice": "<string>",
"record": true,
"language": "<string>",
"background": "<string>",
"max_duration": 123,
"wait_for_greeting": true,
"interruption_threshold": 123
},
"orchestration_prompt": "<string>",
"personality_prompt": "<string>",
"default_tools": [
{}
],
"pathway_conditions": [
{
"name": "<string>",
"prompt": "<string>",
"pathway_id": "<string>",
"pathway_version": "<string>",
"start_node_id": "<string>"
}
],
"kb_ids": [
{}
]
}
'import requests
url = "https://api.bland.ai/v1/personas/{persona_id}"
payload = {
"name": "<string>",
"role": "<string>",
"description": "<string>",
"tags": [{}],
"image_url": "<string>",
"call_config": {
"voice": "<string>",
"record": True,
"language": "<string>",
"background": "<string>",
"max_duration": 123,
"wait_for_greeting": True,
"interruption_threshold": 123
},
"orchestration_prompt": "<string>",
"personality_prompt": "<string>",
"default_tools": [{}],
"pathway_conditions": [
{
"name": "<string>",
"prompt": "<string>",
"pathway_id": "<string>",
"pathway_version": "<string>",
"start_node_id": "<string>"
}
],
"kb_ids": [{}]
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
role: '<string>',
description: '<string>',
tags: [{}],
image_url: '<string>',
call_config: {
voice: '<string>',
record: true,
language: '<string>',
background: '<string>',
max_duration: 123,
wait_for_greeting: true,
interruption_threshold: 123
},
orchestration_prompt: '<string>',
personality_prompt: '<string>',
default_tools: [{}],
pathway_conditions: [
{
name: '<string>',
prompt: '<string>',
pathway_id: '<string>',
pathway_version: '<string>',
start_node_id: '<string>'
}
],
kb_ids: [{}]
})
};
fetch('https://api.bland.ai/v1/personas/{persona_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.bland.ai/v1/personas/{persona_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'role' => '<string>',
'description' => '<string>',
'tags' => [
[
]
],
'image_url' => '<string>',
'call_config' => [
'voice' => '<string>',
'record' => true,
'language' => '<string>',
'background' => '<string>',
'max_duration' => 123,
'wait_for_greeting' => true,
'interruption_threshold' => 123
],
'orchestration_prompt' => '<string>',
'personality_prompt' => '<string>',
'default_tools' => [
[
]
],
'pathway_conditions' => [
[
'name' => '<string>',
'prompt' => '<string>',
'pathway_id' => '<string>',
'pathway_version' => '<string>',
'start_node_id' => '<string>'
]
],
'kb_ids' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/personas/{persona_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.bland.ai/v1/personas/{persona_id}")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/personas/{persona_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "12345678-1234-1234-1234-123456789012",
"name": "Blandy",
"role": null,
"description": "Helpful Agent for Bland Documentation",
"tags": [],
"image_url": null,
"created_at": "2025-09-23T15:13:36.348Z",
"updated_at": "2025-09-23T15:43:49.257Z",
"deleted_at": null,
"user_id": "12345678-1234-1234-1234-123456789012",
"current_production_version_id": "12345678-1234-1234-1234-123456789012",
"current_draft_version_id": "12345678-1234-1234-1234-123456789012",
"current_production_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "production",
"version_number": 1,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": null,
"promoted_at": "2025-09-23T15:13:36.368Z",
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.369Z",
"updated_at": "2025-09-23T15:13:36.369Z"
},
"current_draft_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "draft",
"version_number": 2,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": "12345678-1234-1234-1234-123456789012",
"promoted_at": null,
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.390Z",
"updated_at": "2025-09-23T15:13:36.390Z"
},
"inbound_numbers": []
},
"errors": null
}
Personas
Update Persona
Update an existing persona configuration.
PATCH
/
v1
/
personas
/
{persona_id}
Update Persona
curl --request PATCH \
--url https://api.bland.ai/v1/personas/{persona_id} \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"name": "<string>",
"role": "<string>",
"description": "<string>",
"tags": [
{}
],
"image_url": "<string>",
"call_config": {
"voice": "<string>",
"record": true,
"language": "<string>",
"background": "<string>",
"max_duration": 123,
"wait_for_greeting": true,
"interruption_threshold": 123
},
"orchestration_prompt": "<string>",
"personality_prompt": "<string>",
"default_tools": [
{}
],
"pathway_conditions": [
{
"name": "<string>",
"prompt": "<string>",
"pathway_id": "<string>",
"pathway_version": "<string>",
"start_node_id": "<string>"
}
],
"kb_ids": [
{}
]
}
'import requests
url = "https://api.bland.ai/v1/personas/{persona_id}"
payload = {
"name": "<string>",
"role": "<string>",
"description": "<string>",
"tags": [{}],
"image_url": "<string>",
"call_config": {
"voice": "<string>",
"record": True,
"language": "<string>",
"background": "<string>",
"max_duration": 123,
"wait_for_greeting": True,
"interruption_threshold": 123
},
"orchestration_prompt": "<string>",
"personality_prompt": "<string>",
"default_tools": [{}],
"pathway_conditions": [
{
"name": "<string>",
"prompt": "<string>",
"pathway_id": "<string>",
"pathway_version": "<string>",
"start_node_id": "<string>"
}
],
"kb_ids": [{}]
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
role: '<string>',
description: '<string>',
tags: [{}],
image_url: '<string>',
call_config: {
voice: '<string>',
record: true,
language: '<string>',
background: '<string>',
max_duration: 123,
wait_for_greeting: true,
interruption_threshold: 123
},
orchestration_prompt: '<string>',
personality_prompt: '<string>',
default_tools: [{}],
pathway_conditions: [
{
name: '<string>',
prompt: '<string>',
pathway_id: '<string>',
pathway_version: '<string>',
start_node_id: '<string>'
}
],
kb_ids: [{}]
})
};
fetch('https://api.bland.ai/v1/personas/{persona_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.bland.ai/v1/personas/{persona_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'role' => '<string>',
'description' => '<string>',
'tags' => [
[
]
],
'image_url' => '<string>',
'call_config' => [
'voice' => '<string>',
'record' => true,
'language' => '<string>',
'background' => '<string>',
'max_duration' => 123,
'wait_for_greeting' => true,
'interruption_threshold' => 123
],
'orchestration_prompt' => '<string>',
'personality_prompt' => '<string>',
'default_tools' => [
[
]
],
'pathway_conditions' => [
[
'name' => '<string>',
'prompt' => '<string>',
'pathway_id' => '<string>',
'pathway_version' => '<string>',
'start_node_id' => '<string>'
]
],
'kb_ids' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.bland.ai/v1/personas/{persona_id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.bland.ai/v1/personas/{persona_id}")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/personas/{persona_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"role\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ],\n \"image_url\": \"<string>\",\n \"call_config\": {\n \"voice\": \"<string>\",\n \"record\": true,\n \"language\": \"<string>\",\n \"background\": \"<string>\",\n \"max_duration\": 123,\n \"wait_for_greeting\": true,\n \"interruption_threshold\": 123\n },\n \"orchestration_prompt\": \"<string>\",\n \"personality_prompt\": \"<string>\",\n \"default_tools\": [\n {}\n ],\n \"pathway_conditions\": [\n {\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"pathway_id\": \"<string>\",\n \"pathway_version\": \"<string>\",\n \"start_node_id\": \"<string>\"\n }\n ],\n \"kb_ids\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "12345678-1234-1234-1234-123456789012",
"name": "Blandy",
"role": null,
"description": "Helpful Agent for Bland Documentation",
"tags": [],
"image_url": null,
"created_at": "2025-09-23T15:13:36.348Z",
"updated_at": "2025-09-23T15:43:49.257Z",
"deleted_at": null,
"user_id": "12345678-1234-1234-1234-123456789012",
"current_production_version_id": "12345678-1234-1234-1234-123456789012",
"current_draft_version_id": "12345678-1234-1234-1234-123456789012",
"current_production_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "production",
"version_number": 1,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": null,
"promoted_at": "2025-09-23T15:13:36.368Z",
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.369Z",
"updated_at": "2025-09-23T15:13:36.369Z"
},
"current_draft_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "draft",
"version_number": 2,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": "12345678-1234-1234-1234-123456789012",
"promoted_at": null,
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.390Z",
"updated_at": "2025-09-23T15:13:36.390Z"
},
"inbound_numbers": []
},
"errors": null
}
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
The unique identifier of the persona to update.
Body Parameters
string
required
Updated display name for the persona.
string
Updated role assigned to the persona.
string
Updated description of the persona’s purpose and use case.
array
Updated array of tags to associate with the persona.
string
Updated URL of the persona’s profile image.
object
Updated call configuration settings for the persona.
string
Updated orchestration prompt for the persona.
string
Updated personality and behavior prompt for the persona.
array
Updated array of default tools enabled for the persona.
array
Updated array of pathway routing conditions for the persona.
array
Updated array of knowledge base IDs to connect to the persona.
Response
object
The updated persona object.
Show persona object
Show persona object
string
Unique identifier for the persona.
string
Display name of the persona.
string
Role assigned to the persona.
string
Description of the persona’s purpose.
array
Array of tags associated with the persona.
string
URL of the persona’s profile image (null if none).
string
ISO 8601 timestamp of when the persona was created.
string
ISO 8601 timestamp of when the persona was last modified.
string
ISO 8601 timestamp of when the persona was deleted (null if active).
string
ID of the user who owns this persona.
string
ID of the current production version.
string
ID of the current draft version.
array
Array of inbound phone numbers using this persona.
object
Complete production version object.
object
Complete draft version object with updated configuration.
string
Any errors that occurred (null if none).
{
"data": {
"id": "12345678-1234-1234-1234-123456789012",
"name": "Blandy",
"role": null,
"description": "Helpful Agent for Bland Documentation",
"tags": [],
"image_url": null,
"created_at": "2025-09-23T15:13:36.348Z",
"updated_at": "2025-09-23T15:43:49.257Z",
"deleted_at": null,
"user_id": "12345678-1234-1234-1234-123456789012",
"current_production_version_id": "12345678-1234-1234-1234-123456789012",
"current_draft_version_id": "12345678-1234-1234-1234-123456789012",
"current_production_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "production",
"version_number": 1,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": null,
"promoted_at": "2025-09-23T15:13:36.368Z",
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.369Z",
"updated_at": "2025-09-23T15:13:36.369Z"
},
"current_draft_version": {
"id": "12345678-1234-1234-1234-123456789012",
"persona_id": "12345678-1234-1234-1234-123456789012",
"version_type": "draft",
"version_number": 2,
"orchestration_prompt": null,
"personality_prompt": "You are a helpful assistant",
"pathway_conditions": null,
"kb_ids": [],
"call_config": null,
"default_tools": [],
"promoted_from_version_id": "12345678-1234-1234-1234-123456789012",
"promoted_at": null,
"promoted_by": null,
"created_at": "2025-09-23T15:13:36.390Z",
"updated_at": "2025-09-23T15:13:36.390Z"
},
"inbound_numbers": []
},
"errors": null
}
Docs for agents: llms.txt
Was this page helpful?
⌘I