curl --request PATCH \
--url https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Product names",
"description": "Brand and product pronunciations for support scripts."
}
'import requests
url = "https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}"
payload = {
"name": "Product names",
"description": "Brand and product pronunciations for support scripts."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Product names',
description: 'Brand and product pronunciations for support scripts.'
})
};
fetch('https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_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.fish.audio/v1/pronunciation-dictionaries/{dictionary_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' => 'Product names',
'description' => 'Brand and product pronunciations for support scripts.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}"
payload := strings.NewReader("{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}"
response = http.request(request)
puts response.read_body{
"id": "9b2f5c0d4e6a4f4c8a1d3e5f7a9b0c2d",
"name": "Product names",
"description": "Brand and product pronunciations for support scripts.",
"created_at": "2026-11-05T03:21:09Z",
"updated_at": "2026-11-05T04:02:44Z",
"latest_version_id": "1c3e5a7b9d0f4a2c8e6b4d1f3a5c7e9b",
"item_count": 12,
"preview_voice_id": "b1a2c3d4e5f60718293a4b5c6d7e8f90",
"preview_model": "s2-pro"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}Update Dictionary
Rename a pronunciation dictionary or change its description
curl --request PATCH \
--url https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Product names",
"description": "Brand and product pronunciations for support scripts."
}
'import requests
url = "https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}"
payload = {
"name": "Product names",
"description": "Brand and product pronunciations for support scripts."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Product names',
description: 'Brand and product pronunciations for support scripts.'
})
};
fetch('https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_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.fish.audio/v1/pronunciation-dictionaries/{dictionary_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' => 'Product names',
'description' => 'Brand and product pronunciations for support scripts.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}"
payload := strings.NewReader("{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fish.audio/v1/pronunciation-dictionaries/{dictionary_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Product names\",\n \"description\": \"Brand and product pronunciations for support scripts.\"\n}"
response = http.request(request)
puts response.read_body{
"id": "9b2f5c0d4e6a4f4c8a1d3e5f7a9b0c2d",
"name": "Product names",
"description": "Brand and product pronunciations for support scripts.",
"created_at": "2026-11-05T03:21:09Z",
"updated_at": "2026-11-05T04:02:44Z",
"latest_version_id": "1c3e5a7b9d0f4a2c8e6b4d1f3a5c7e9b",
"item_count": 12,
"preview_voice_id": "b1a2c3d4e5f60718293a4b5c6d7e8f90",
"preview_model": "s2-pro"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}{
"status": 123,
"message": "<string>",
"reason": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Response
Request fulfilled, document follows
A pronunciation dictionary owned by the caller's team.
Stable dictionary identifier.
"9b2f5c0d4e6a4f4c8a1d3e5f7a9b0c2d"
Display name for the dictionary.
"Product names"
Free-form description shown in the web app.
"Brand and product pronunciations for support scripts."
Creation time (UTC).
"2026-11-05T03:21:09Z"
Last content or metadata update time (UTC).
"2026-11-05T04:02:44Z"
Identifier of the latest published version, or null when the dictionary has never been published.
"1c3e5a7b9d0f4a2c8e6b4d1f3a5c7e9b"
Number of rules in the latest published version.
12
Voice model last used by the dictionary's preview player, or null when it was never previewed.
"b1a2c3d4e5f60718293a4b5c6d7e8f90"
TTS model last used by the dictionary's preview player, or null when it was never previewed.
"s2-pro"
Was this page helpful?

