Maximum number of voices to return













Audio Voices Endpoints
API for voice management.












Examples
Real world code examples
List all voices
GET /v1/audio/voices#
Offset pagination will not be supported anymore. Use GET /v2/audio/voices instead.
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.list({});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.list({});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.list(limit=10, offset=0, type_="all")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.list(limit=10, offset=0, type_="all")
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/audio/voices \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"items": [
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}
],
"page": "1",
"page_size": "1000",
"total": 56,
"total_pages": "1"
}{
"items": [
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}
],
"page": "1",
"page_size": "1000",
"total": 56,
"total_pages": "1"
}Create a new voice
POST /v1/audio/voices#
Create a new voice with a base64-encoded audio sample
Request model for creating a new voice with base64 audio.
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.create({
name: "<value>",
sampleAudio: "<value>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.create({
name: "<value>",
sampleAudio: "<value>",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.create(name="<value>", retention_notice=30)
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.create(name="<value>", retention_notice=30)
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"name": "My voice"
}'curl https://api.mistral.ai/v1/audio/voices \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"name": "My voice"
}'200
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}Get voice details
GET /v1/audio/voices/{voice_id}#
Get voice details (excluding sample)
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.get({
voiceId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.get({
voiceId: "<id>",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.get(voice_id="<id>")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.get(voice_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}Delete a custom voice
DELETE /v1/audio/voices/{voice_id}#
Delete a custom voice
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.delete({
voiceId: "f42bf0d7-8a10-4b98-bbfa-589a232209d2",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.delete({
voiceId: "f42bf0d7-8a10-4b98-bbfa-589a232209d2",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.delete(voice_id="f42bf0d7-8a10-4b98-bbfa-589a232209d2")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.delete(voice_id="f42bf0d7-8a10-4b98-bbfa-589a232209d2")
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'200
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}Update voice metadata
PATCH /v1/audio/voices/{voice_id}#
Update voice metadata (name, gender, languages, age, tags, retention notice).
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.update({
voiceId: "030a6b20-e287-414d-9a77-6b76a4a56c9d",
voiceUpdateRequest: {},
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.update({
voiceId: "030a6b20-e287-414d-9a77-6b76a4a56c9d",
voiceUpdateRequest: {},
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.update(voice_id="030a6b20-e287-414d-9a77-6b76a4a56c9d")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.update(voice_id="030a6b20-e287-414d-9a77-6b76a4a56c9d")
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'curl https://api.mistral.ai/v1/audio/voices/{voice_id} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'200
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}Get voice sample audio
GET /v1/audio/voices/{voice_id}/sample#
Get the audio sample for a voice
200
Successful Response
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.getSampleAudio({
voiceId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.getSampleAudio({
voiceId: "<id>",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.get_sample_audio(voice_id="<id>")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.get_sample_audio(voice_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v1/audio/voices/{voice_id}/sample \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/audio/voices/{voice_id}/sample \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
"base64-encoded-data""base64-encoded-data"List voices, cursor-paginated
GET /v2/audio/voices#
List voices, cursor-paginated
page_size#
Maximum number of voices to return
page_token#
Cursor returned as next_page_token by the previous page
type#
Filter the voices between customs and presets
gender#
Keep voices matching any of these genders
language#
Keep voices supporting any of these languages
query#
Case-insensitive match on voice name
200
Successful Response
next_page_token#
Cursor for the next page, null on the last page
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.search({});
for await (const page of result) {
console.log(page);
}
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.audio.voices.search({});
for await (const page of result) {
console.log(page);
}
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.search(page_size=10, type_="all")
while res is not None:
# Handle items
res = res.next()
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.audio.voices.search(page_size=10, type_="all")
while res is not None:
# Handle items
res = res.next()
curl https://api.mistral.ai/v2/audio/voices \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v2/audio/voices \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"data": [
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}
]
}{
"data": [
{
"created_at": "2025-12-17T10:25:07.818693Z",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "My resource",
"type": "preset",
"user_id": null
}
]
}