List Locales
curl --request GET \
--url https://api.cartesia.ai/locales \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/locales"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/locales', 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/locales",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>"
],
]);
$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.cartesia.ai/locales"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cartesia.ai/locales")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/locales")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"locales": [
{
"locale": "en-US",
"language": "en",
"display_name": "English (United States)",
"accents": [
{
"id": "General American English",
"label": "American",
"is_default": true
},
{
"id": "Southern American English",
"label": "Southern US",
"is_default": false
}
]
},
{
"locale": "en-GB",
"language": "en",
"display_name": "English (United Kingdom)",
"accents": [
{
"id": "British English",
"label": "British",
"is_default": true
}
]
}
]
}Voices
List Locales
Returns the official catalog of supported BCP-47 locales and the accents available under each locale. Use this to build language and accent pickers. Accent id values match Voice.accent and the accents accepted when creating or updating voices.
GET
/
locales
List Locales
curl --request GET \
--url https://api.cartesia.ai/locales \
--header 'Authorization: Bearer <token>' \
--header 'Cartesia-Version: <cartesia-version>'import requests
url = "https://api.cartesia.ai/locales"
headers = {
"Cartesia-Version": "<cartesia-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Cartesia-Version': '<cartesia-version>', Authorization: 'Bearer <token>'}
};
fetch('https://api.cartesia.ai/locales', 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/locales",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Cartesia-Version: <cartesia-version>"
],
]);
$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.cartesia.ai/locales"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Cartesia-Version", "<cartesia-version>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cartesia.ai/locales")
.header("Cartesia-Version", "<cartesia-version>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cartesia.ai/locales")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Cartesia-Version"] = '<cartesia-version>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"locales": [
{
"locale": "en-US",
"language": "en",
"display_name": "English (United States)",
"accents": [
{
"id": "General American English",
"label": "American",
"is_default": true
},
{
"id": "Southern American English",
"label": "Southern US",
"is_default": false
}
]
},
{
"locale": "en-GB",
"language": "en",
"display_name": "English (United Kingdom)",
"accents": [
{
"id": "British English",
"label": "British",
"is_default": true
}
]
}
]
}Authorizations
Cartesia API key (sk_car_...). Get one at play.cartesia.ai/keys.
Headers
API version header.
Available options:
2026-03-01 Example:
"2026-03-01"
Response
200 - application/json
Official locales and accents.
Official locales, sorted by locale code.
Show child attributes
Show child attributes
Was this page helpful?
⌘I