Update Voice Config
curl --request PATCH \
--url https://api.bland.ai/v1/voices/{id}/config \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"consistency": 123,
"expressiveness": 123,
"boost": 123
}
'import requests
url = "https://api.bland.ai/v1/voices/{id}/config"
payload = {
"consistency": 123,
"expressiveness": 123,
"boost": 123
}
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({consistency: 123, expressiveness: 123, boost: 123})
};
fetch('https://api.bland.ai/v1/voices/{id}/config', 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/voices/{id}/config",
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([
'consistency' => 123,
'expressiveness' => 123,
'boost' => 123
]),
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/voices/{id}/config"
payload := strings.NewReader("{\n \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\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/voices/{id}/config")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/voices/{id}/config")
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 \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Voice configuration updated successfully",
"voice": {
"id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"name": "DocTestRename",
"description": null,
"public": false,
"ratings": 0,
"tags": ["Beige Clone V2", "male"],
"user_id": "fea2a74f-9bd7-4b5d-a52e-c3c1a3f58bb0",
"voice_id": "ff595c98-da38-4617-ada3-df42561a2379",
"service": "BTTS_V2",
"finetuned": false,
"consistency": 8,
"expressiveness": null,
"voice_meta": { "per_decode": 8 },
"is_creator_voice": false
}
}
Voices
Update Voice Config
Update default synthesis settings on a voice you own.
PATCH
/
v1
/
voices
/
{id}
/
config
Update Voice Config
curl --request PATCH \
--url https://api.bland.ai/v1/voices/{id}/config \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"consistency": 123,
"expressiveness": 123,
"boost": 123
}
'import requests
url = "https://api.bland.ai/v1/voices/{id}/config"
payload = {
"consistency": 123,
"expressiveness": 123,
"boost": 123
}
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({consistency: 123, expressiveness: 123, boost: 123})
};
fetch('https://api.bland.ai/v1/voices/{id}/config', 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/voices/{id}/config",
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([
'consistency' => 123,
'expressiveness' => 123,
'boost' => 123
]),
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/voices/{id}/config"
payload := strings.NewReader("{\n \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\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/voices/{id}/config")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/voices/{id}/config")
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 \"consistency\": 123,\n \"expressiveness\": 123,\n \"boost\": 123\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Voice configuration updated successfully",
"voice": {
"id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"name": "DocTestRename",
"description": null,
"public": false,
"ratings": 0,
"tags": ["Beige Clone V2", "male"],
"user_id": "fea2a74f-9bd7-4b5d-a52e-c3c1a3f58bb0",
"voice_id": "ff595c98-da38-4617-ada3-df42561a2379",
"service": "BTTS_V2",
"finetuned": false,
"consistency": 8,
"expressiveness": null,
"voice_meta": { "per_decode": 8 },
"is_creator_voice": false
}
}
Overview
Updates the default consistency and expressiveness settings on a voice clone. These defaults are applied when Speak is called without per-request overrides. Equivalent to Update Voice Settings (POST /v1/voices/{id}/settings). Both share the same write path; POST /settings is the canonical form and returns a lighter response envelope. This PATCH /config route is kept for backwards compatibility.
The accepted parameters depend on the voice’s engine:
- BTTS V1 voices accept
consistency(0.0-1.0 float) andexpressiveness(0.0-1.0 float). - BTTS V2 / V3 voices accept
consistency(1-32 integer, lower is more consistent) andboost(0 or 1).
Headers
string
required
Your API key for authentication.
Path Parameters
string
required
UUID of the voice to configure.
Body Parameters
number
Default consistency for this voice. Float 0.0-1.0 for V1 voices; integer 1-32 for V2/V3 voices (lower is more consistent).
number
Default expressiveness for V1 voices only. Float 0.0-1.0.
integer
Expressiveness boost for V2 and V3 voices only.
0 or 1.Response
Returns the full updated voice.string
success on success.string
Human-readable confirmation, for example
"Voice configuration updated successfully".{
"status": "success",
"message": "Voice configuration updated successfully",
"voice": {
"id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"name": "DocTestRename",
"description": null,
"public": false,
"ratings": 0,
"tags": ["Beige Clone V2", "male"],
"user_id": "fea2a74f-9bd7-4b5d-a52e-c3c1a3f58bb0",
"voice_id": "ff595c98-da38-4617-ada3-df42561a2379",
"service": "BTTS_V2",
"finetuned": false,
"consistency": 8,
"expressiveness": null,
"voice_meta": { "per_decode": 8 },
"is_creator_voice": false
}
}
Docs for agents: llms.txt
Was this page helpful?