Personas
PATCH /v1/personas/{persona_id}
Update a persona.
PATCH /v1/personas/{persona_id}
curl --request PATCH \
--url https://api.getbluejay.ai/v1/personas/{persona_id}import requests
url = "https://api.getbluejay.ai/v1/personas/{persona_id}"
response = requests.patch(url)
print(response.text)const options = {method: 'PATCH'};
fetch('https://api.getbluejay.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.getbluejay.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",
]);
$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.getbluejay.ai/v1/personas/{persona_id}"
req, _ := http.NewRequest("PATCH", url, nil)
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.getbluejay.ai/v1/personas/{persona_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getbluejay.ai/v1/personas/{persona_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
response = http.request(request)
puts response.read_bodyUpdates the fields you send and leaves the rest. Every Digital Human that runs as this persona uses the change from its next run on.
Returns the updated persona.
Path parameters
Headers
Request body
Response
Status codes
| Status | Meaning |
|---|---|
200 | Successful Response |
409 | A persona with this name already exists in the workspace |
422 | Validation Error |
Example request
curl --request PATCH \
--url https://api.getbluejay.ai/v1/personas/{persona_id} \
--header 'X-API-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"role_description": "<string>",
"gender": "male",
"language": "en",
"accent": "multilingual",
"custom_voice_id": "<string>",
"voice_speed": "slowest",
"emotion_map": {},
"temperature": 1.5,
"verbosity": "low",
"fluency": "beginner",
"endpointing_delay": 1.5,
"silence_timeout": 123,
"interruption_configs": {},
"speaks_first": true,
"speaks_first_config": {
"speaks_first": true,
"mode": "custom",
"message": "<string>",
"dynamic": true
},
"background_noise": "none",
"background_noise_volume": 1.5,
"custom_background_noise_url": "<string>",
"audio_quality": "high",
"hangup_phrases": [
"<string>"
],
"hangup_instructions": "<string>",
"scripted_responses": [
{
"match_type": "exact",
"match_phrase": "<string>",
"response_type": "phrase",
"response_value": "<string>",
"scripted_response_audio_snippet_url": "<string>",
"occurrence_mode": "always",
"occurrence_n": 123,
"silence_duration": 123
}
],
"scripted_responses_ordered": true,
"journey_steps": [
{
"step": 123,
"intent": "",
"success_criteria": "",
"modality": "voice",
"direction": "inbound",
"wait_seconds": 123,
"response_window_seconds": 123,
"unresponsive": false,
"phone_number": "<string>"
}
]
}'
Example response
200
{
"name": "<string>",
"role_description": "<string>",
"gender": "male",
"language": "en",
"accent": "multilingual",
"custom_voice_id": "<string>",
"voice_speed": "slowest",
"emotion_map": {},
"temperature": 1.5,
"verbosity": "low",
"fluency": "beginner",
"endpointing_delay": 1.5,
"silence_timeout": 123,
"interruption_configs": {},
"speaks_first": true,
"speaks_first_config": {
"speaks_first": true,
"mode": "custom",
"message": "<string>",
"dynamic": true
},
"background_noise": "none",
"background_noise_volume": 1.5,
"custom_background_noise_url": "<string>",
"audio_quality": "high",
"hangup_phrases": [
"<string>"
],
"hangup_instructions": "<string>",
"scripted_responses": [
{
"match_type": "exact",
"match_phrase": "<string>",
"response_type": "phrase",
"response_value": "<string>",
"scripted_response_audio_snippet_url": "<string>",
"occurrence_mode": "always",
"occurrence_n": 123,
"silence_duration": 123
}
],
"scripted_responses_ordered": true,
"journey_steps": [
{
"step": 123,
"intent": "",
"success_criteria": "",
"modality": "voice",
"direction": "inbound",
"wait_seconds": 123,
"response_window_seconds": 123,
"unresponsive": false,
"phone_number": "<string>"
}
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_default": false,
"created_at": "<string>",
"updated_at": "<string>"
}
Last modified on November 10, 2026
⌘I
PATCH /v1/personas/{persona_id}
curl --request PATCH \
--url https://api.getbluejay.ai/v1/personas/{persona_id}import requests
url = "https://api.getbluejay.ai/v1/personas/{persona_id}"
response = requests.patch(url)
print(response.text)const options = {method: 'PATCH'};
fetch('https://api.getbluejay.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.getbluejay.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",
]);
$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.getbluejay.ai/v1/personas/{persona_id}"
req, _ := http.NewRequest("PATCH", url, nil)
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.getbluejay.ai/v1/personas/{persona_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getbluejay.ai/v1/personas/{persona_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
response = http.request(request)
puts response.read_body