Update Voice Sample Transcriptions
curl --request PATCH \
--url https://api.bland.ai/v1/voices/{id}/samples \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"samples": [
{}
]
}
'import requests
url = "https://api.bland.ai/v1/voices/{id}/samples"
payload = { "samples": [{}] }
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({samples: [{}]})
};
fetch('https://api.bland.ai/v1/voices/{id}/samples', 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}/samples",
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([
'samples' => [
[
]
]
]),
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}/samples"
payload := strings.NewReader("{\n \"samples\": [\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/voices/{id}/samples")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"samples\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/voices/{id}/samples")
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 \"samples\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"samples": [
{
"id": "d15b199a-1b79-4664-9a9a-b149ee3b136a",
"voice_id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"transcription": "Hello and welcome to Bland.",
"duration_seconds": 11.4,
"created_at": "2026-06-22T21:34:31.347Z"
}
]
}
{
"data": null,
"errors": [
{ "error": "INVALID_REQUEST", "message": "Missing or invalid samples array" }
]
}
Samples
Update Voice Sample Transcriptions
Update the transcription text on one or more training samples.
PATCH
/
v1
/
voices
/
{id}
/
samples
Update Voice Sample Transcriptions
curl --request PATCH \
--url https://api.bland.ai/v1/voices/{id}/samples \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"samples": [
{}
]
}
'import requests
url = "https://api.bland.ai/v1/voices/{id}/samples"
payload = { "samples": [{}] }
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({samples: [{}]})
};
fetch('https://api.bland.ai/v1/voices/{id}/samples', 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}/samples",
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([
'samples' => [
[
]
]
]),
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}/samples"
payload := strings.NewReader("{\n \"samples\": [\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/voices/{id}/samples")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"samples\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bland.ai/v1/voices/{id}/samples")
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 \"samples\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"samples": [
{
"id": "d15b199a-1b79-4664-9a9a-b149ee3b136a",
"voice_id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"transcription": "Hello and welcome to Bland.",
"duration_seconds": 11.4,
"created_at": "2026-06-22T21:34:31.347Z"
}
]
}
{
"data": null,
"errors": [
{ "error": "INVALID_REQUEST", "message": "Missing or invalid samples array" }
]
}
Overview
Updates the transcribed text for one or more samples on a voice clone you own. Useful when auto-transcription has errors that you want to correct before the voice is used. The samples themselves and their audio are not modified.Headers
Your API key for authentication.
Path Parameters
UUID of the parent voice.
Body Parameters
Array of sample updates. Each entry must include
id and transcription.{
"samples": [
{ "id": "d15b199a-1b79-4664-9a9a-b149ee3b136a", "transcription": "Hello and welcome to Bland." }
]
}
Response
success on success.The updated samples. See List Voice Samples for field shape.
{
"status": "success",
"samples": [
{
"id": "d15b199a-1b79-4664-9a9a-b149ee3b136a",
"voice_id": "73d4c04b-1e15-4272-9c7f-8d2955914ba9",
"transcription": "Hello and welcome to Bland.",
"duration_seconds": 11.4,
"created_at": "2026-06-22T21:34:31.347Z"
}
]
}
{
"data": null,
"errors": [
{ "error": "INVALID_REQUEST", "message": "Missing or invalid samples array" }
]
}
Docs for agents: llms.txt
Was this page helpful?
⌘I