curl --request POST \
--url https://api.cartesia.ai/pronunciation-dicts/ \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "",
"items": [
{
"text": "<string>",
"pronunciation": "<string>",
"alias": "<string>"
}
]
}
'import requests
url = "https://api.cartesia.ai/pronunciation-dicts/"
payload = {
"name": "<string>",
"description": "",
"items": [
{
"text": "<string>",
"pronunciation": "<string>",
"alias": "<string>"
}
]
}
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Cartesia-Version': '<cartesia-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
description: '',
items: [{text: '<string>', pronunciation: '<string>', alias: '<string>'}]
})
};
fetch('https://api.cartesia.ai/pronunciation-dicts/', 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.cartesia.ai/pronunciation-dicts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '',
'items' => [
[
'text' => '<string>',
'pronunciation' => '<string>',
'alias' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>",
"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.cartesia.ai/pronunciation-dicts/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
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.post("https://api.cartesia.ai/pronunciation-dicts/")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/pronunciation-dicts/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "pdict_123",
"name": "Acme",
"description": "An example dictionary",
"is_owner": true,
"pinned": false,
"access": {
"type": "private",
"visibility": "owner"
},
"items": [
{
"text": "acme",
"alias": "<<ˈ|æ|k|m|i>>",
"pronunciation": "<<ˈ|æ|k|m|i>>"
}
],
"created_at": "2025-10-27T14:54:26.68581Z",
"owner_id": "org_123"
}Create
Create a new pronunciation dictionary
curl --request POST \
--url https://api.cartesia.ai/pronunciation-dicts/ \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "",
"items": [
{
"text": "<string>",
"pronunciation": "<string>",
"alias": "<string>"
}
]
}
'import requests
url = "https://api.cartesia.ai/pronunciation-dicts/"
payload = {
"name": "<string>",
"description": "",
"items": [
{
"text": "<string>",
"pronunciation": "<string>",
"alias": "<string>"
}
]
}
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Cartesia-Version': '<cartesia-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
description: '',
items: [{text: '<string>', pronunciation: '<string>', alias: '<string>'}]
})
};
fetch('https://api.cartesia.ai/pronunciation-dicts/', 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.cartesia.ai/pronunciation-dicts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'description' => '',
'items' => [
[
'text' => '<string>',
'pronunciation' => '<string>',
'alias' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>",
"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.cartesia.ai/pronunciation-dicts/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
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.post("https://api.cartesia.ai/pronunciation-dicts/")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/pronunciation-dicts/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"\",\n \"items\": [\n {\n \"text\": \"<string>\",\n \"pronunciation\": \"<string>\",\n \"alias\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "pdict_123",
"name": "Acme",
"description": "An example dictionary",
"is_owner": true,
"pinned": false,
"access": {
"type": "private",
"visibility": "owner"
},
"items": [
{
"text": "acme",
"alias": "<<ˈ|æ|k|m|i>>",
"pronunciation": "<<ˈ|æ|k|m|i>>"
}
],
"created_at": "2025-10-27T14:54:26.68581Z",
"owner_id": "org_123"
}Authorizations
Cartesia API key (sk_car_...). Get one at play.cartesia.ai/keys.
Headers
API version header.
2026-03-01 "2026-03-01"
Body
Request to create a new pronunciation dictionary
Name for the new pronunciation dictionary
An optional description for the pronunciation dictionary.
Optional initial list of pronunciation mappings
Show child attributes
Show child attributes
Set who can access the pronunciation dictionary
Show child attributes
Show child attributes
Response
A dictionary of text-to-pronunciation mappings
Unique identifier for the pronunciation dictionary
Name of the pronunciation dictionary
Description of the pronunciation dictionary
Whether your organization owns the pronunciation dictionary.
Who can access the pronunciation dictionary
Show child attributes
Show child attributes
Whether this dictionary is pinned for the user
List of text-to-pronunciation mappings
Show child attributes
Show child attributes
ISO 8601 timestamp of when the dictionary was created
ID of the user who owns this dictionary. Use is_owner instead.
Was this page helpful?