Descriptions are in English
ElevenLabs Voice Library
A proxied view of the public ElevenLabs voice library — the pool of voices that can be used for TTS beyond your own.
Filters are passed through to the provider, so their spelling is the provider's
(american, young, narrative_story). Note that pages are numbered from zero.
The provider is external: on an outage the endpoint answers 503, and retrying later
is the right response.
Required key permission: voices.read.
On this page(3)
Parameters
The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.
- stringin queryoptional≤ 255 caracteres
Search by voice name in the ElevenLabs library.
- stringin queryoptional≤ 255 caracteres
Sort method of the ElevenLabs library, passed through to the provider as-is.
- stringin queryoptional≤ 255 caracteres
Keep only voices supporting the given languages. ISO-639-1 codes, comma-separated.
- stringin queryoptional≤ 255 caracteres
Voice accent (
american,british, …). - stringin queryoptional≤ 255 caracteres
Voice gender.
Allowed values - stringin queryoptional≤ 255 caracteres
Voice age group.
Allowed values - integerin queryoptional≥ 0
Page number. Note: external provider catalogues are numbered from zero.
- integerin queryoptional1..50
Page size. Defaults to 30, maximum 50.
- stringin queryoptional≤ 255 caracteres
Use cases (
narrative_story,social_media, …), comma-separated.
Possible responses
200Success. The payload is in data.
Success. The payload is in data.
{
"success": true,
"message": "Success",
"data": {
"voices": [
{
"public_owner_id": "4c9a8e2f6b1d4a3c9f7e0b2d5a8c1f3e6b9d0a2c4e7f1b3d5a8c0e2f4b6d9a1c",
"voice_id": "EXAVITQu4vr4xnSDxMaL",
"name": "Bella Storyteller",
"accent": "american",
"gender": "female",
"age": "young",
"descriptive": "calm",
"use_case": "narration",
"category": "professional",
"language": "en",
"description": "Warm, calm narrator voice ideal for long-form audiobooks and meditation content.",
"preview_url": "https://api.lumean.app/api/voice-preview?u=eyJpdiI6IjRjOWE4ZTJmNmIxZDRhM2MiLCJ2YWx1ZSI6ImZha2UifQ%3D%3D&signature=3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d",
"usage_character_count_1y": 18234567,
"usage_character_count_7d": 154302,
"cloned_by_count": 3120,
"free_users_allowed": true,
"notice_period": 0,
"instagram_username": null,
"twitter_username": null,
"youtube_username": null,
"tiktok_username": null,
"image_url": null,
"is_added_by_user": false,
"date_unix": 1748851200
},
{
"public_owner_id": "9a1c3e5f7b0d2a4c6e8f1b3d5a7c9e0f2b4d6a8c0e2f4b6d8a0c2e4f6b8d0a2c",
"voice_id": "yoZ06aMxZJJ28mfd3POQ",
"name": "Sam Ad Voice",
"accent": "british",
"gender": "male",
"age": "middle_aged",
"descriptive": "energetic",
"use_case": "advertisement",
"category": "professional",
"language": "en",
"description": "Punchy, upbeat voice for commercials and promotional reads.",
"preview_url": "https://api.lumean.app/api/voice-preview?u=eyJpdiI6IjlhMWMzZTVmN2IwZDJhNGMiLCJ2YWx1ZSI6ImZha2UifQ%3D%3D&signature=5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f",
"usage_character_count_1y": 4021553,
"usage_character_count_7d": 38210,
"cloned_by_count": 512,
"free_users_allowed": false,
"notice_period": 0,
"instagram_username": null,
"twitter_username": null,
"youtube_username": null,
"tiktok_username": null,
"image_url": null,
"is_added_by_user": false,
"date_unix": 1751328000
}
],
"total": 2,
"page": 0,
"page_size": 30,
"has_more": false
}
}Success flag. Branch on the HTTP status code instead: any 2xx response carries true here, while an error comes back in a different shape that need not contain this field at all.
A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code.
datarequiredThe response payload.
object
The response payload.
voicesrequiredVoices from the library. The object is passed through from the provider as is, so the provider defines the key set and may change it. The one you need is voice_id: put it into an elevenlabs template’s config.voice_id.
array<object>
Voices from the library. The object is passed through from the provider as is, so the provider defines the key set and may change it. The one you need is voice_id: put it into an elevenlabs template’s config.voice_id.
How many voices came back on this page.
Page number, zero-based, echoing the request.
Page size the server applied.
Whether another page exists. Rely on this flag rather than total, which counts only the current batch.
401The key is missing, unknown, disabled or expired.
The key is missing, unknown, disabled or expired.
{
"success": false,
"message": "API key is missing. Provide it in the X-API-KEY header.",
"data": null
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
Always null when the request is rejected before processing.
403The key lacks the required permission, or the object belongs to another user.
The key lacks the required permission, or the object belongs to another user.
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
422Validation error. Offending fields are listed in errors.
Validation error. Offending fields are listed in errors.
{
"message": "string",
"errors": {}
}Errors overview.
errorsrequiredA detailed description of each field that failed validation.
object
A detailed description of each field that failed validation.
503The external provider is temporarily unavailable. Retry later.
The external provider is temporarily unavailable. Retry later.
{
"success": false,
"message": "The voice provider is temporarily unavailable. Please try again later."
}Always false in error responses.
Error text in the key's language (set through the X-Locale header).
Nearby
The same in words
Neighbouring operations
Feed this page to an AI
spec 0.0.1