GET
/v2/voices
ElevenLabs APIGet Voices V2
- Base URL
- https://api.elevenlabs.io
- Auth
- xi-api-key: <ELEVENLABS_API_KEY>
- Last verified
- 2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 207 tokens · Vary: Accept
→ 207 tokens · Vary: Accept
Critical gotchas
Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.
Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.
cURL
curl -X GET 'https://api.elevenlabs.io/v2/voices?next_page_token=example-next-page-token&page_size=10&search=example-search&sort=example-sort&sort_direction=example-sort-direction&voice_type=example-voice-type&category=example-category&fine_tuning_state=example-fine-tuning-state&collection_id=collection-id&gender=example-gender&age=example-age&language=example&accent=example-accent&use_cases=example&min_notice_period_days=10&include_custom_rates=true&include_live_moderated=true&high_quality=true&include_total_count=true&voice_ids=example' \ -H "xi-api-key: $ELEVENLABS_API_KEY"Get a free ElevenLabs API key → sponsored
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| next_page_token | query | string | No | The next page token to use for pagination. Returned from the previous request. Use this in combination with the has_more flag for reliable pagination. |
| page_size | query | integer | No | How many voices to return at maximum. Can not exceed 100, defaults to 10. Page 0 may include more voices due to default voices being included. |
| search | query | string | No | Search term to filter voices by. Searches in name, description, labels, category. |
| sort | query | string | No | Which field to sort by, one of 'created_at_unix' or 'name'. 'created_at_unix' may not be available for older voices. |
| sort_direction | query | string | No | Which direction to sort the voices in. 'asc' or 'desc'. |
| voice_type | query | string | No | Type of the voice to filter by. One of 'personal', 'community', 'default', 'workspace', 'non-default', 'non-community', 'saved'. 'non-default' is equal to all but 'default'. 'non-community' is equal to 'personal' and 'workspace' combined (excludes library copies). 'saved' is equal to non-default, but includes default voices if they have been added to a collection. |
| category | query | string | No | Category of the voice to filter by. One of 'premade', 'cloned', 'generated', 'professional' |
| fine_tuning_state | query | string | No | State of the voice's fine tuning to filter by. Applicable only to professional voices clones. One of 'draft', 'not_verified', 'not_started', 'queued', 'fine_tuning', 'fine_tuned', 'failed', 'delayed' |
| collection_id | query | string | No | Collection ID to filter voices by. |
| gender | query | string | No | Gender used for filtering, based on the voice's 'gender' label. |
| age | query | string | No | Age used for filtering, based on the voice's 'age' label. |
| language | query | string[] | No | Languages used for filtering, based on the voice's 'language' label. Voices matching any of the given languages are returned. |
| accent | query | string | No | Accent used for filtering, based on the voice's 'accent' label. |
| use_cases | query | string[] | No | Use cases used for filtering, based on the voice's 'use_case' label. Voices matching any of the given use cases are returned. |
| min_notice_period_days | query | integer | No | Filter to voices whose sharing notice period is at least the given number of days. |
| include_custom_rates | query | boolean | No | Whether to include voices that have a custom sharing rate. Defaults to including them. |
| include_live_moderated | query | boolean | No | Whether to include voices that have live moderation enabled. Defaults to including them. |
| high_quality | query | boolean | No | When true, only return studio-quality voices (those whose category is 'high_quality'). |
| include_total_count | query | boolean | No | Whether to include the total count of voices found in the response. NOTE: The total_count value is a live snapshot and may change between requests as users create, modify, or delete voices. For pagination, rely on the has_more flag instead. Only enable this when you actually need the total count (e.g., for display purposes), as it incurs a performance cost. |
| voice_ids | query | string[] | No | Voice IDs to lookup by. Maximum 100 voice IDs. |
Response 200 OK
{
"voices": [
{
"available_for_tiers": [
"creator",
"enterprise"
],
"category": "professional",
"description": "A warm, expressive voice with a touch of humor.",
"fine_tuning": {
"is_allowed_to_fine_tune": true,
"manual_verification_requested": false,
"state": {
"eleven_multilingual_v2": "fine_tuned"
},
"verification_attempts_count": 2,
"verification_failures": []
},
"high_quality_base_model_ids": [
"eleven_v2_flash",
"eleven_flash_v2",
"eleven_turbo_v2_5",
"eleven_multilingual_v2",
"eleven_v2_5_flash",
"eleven_flash_v2_5",
"eleven_turbo_v2"
],
"is_legacy": false,
"is_mixed": false,
"is_owner": false,
"labels": {
"accent": "American",
"age": "middle-aged",
"description": "expressive",
"gender": "female",
"use_case": "social media"
},
"name": "Rachel",
"preview_url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3",
"settings": {
"similarity_boost": 1,
"speed": 1,
"stability": 1,
"style": 0,
"use_speaker_boost": true
},
"sharing": {
"category": "professional",
"cloned_by_count": 50,
"date_unix": 1714204800,
"description": "A female voice with a soft and friendly tone.",
"disable_at_unix": 1714204800,
"enabled_in_library": true,
"featured": true,
"financial_rewards_enabled": true,
"free_users_allowed": true,
"history_item_sample_id": "DCwhRBWXzGAHq8TQ4Fs18",
"labels": {
"accent": "American",
"gender": "female"
},
"liked_by_count": 100,
"live_moderation_enabled": true,
"moderation_check": {
"captcha_checks": [
0.95,
0.98
],
"captcha_ids": [
"captcha1",
"captcha2"
],
"date_checked_unix": 1714204800,
"description_check": true,
"description_value": "A female voice with a soft and friendly tone.",
"name_check": true,
"name_value": "Rachel",
"sample_checks": [
0.95,
0.98
],
"sample_ids": [
"sample1",
"sample2"
]
},
"name": "Rachel",
"notice_period": 30,
"original_voice_id": "DCwhRBWXzGAHq8TQ4Fs18",
"public_owner_id": "DCwhRBWXzGAHq8TQ4Fs18",
"rate": 0.05,
"reader_app_enabled": true,
"reader_restricted_on": [
{
"resource_id": "FCwhRBWXzGAHq8TQ4Fs18",
"resource_type": "read"
}
],
"review_status": "allowed",
"status": "enabled",
"voice_mixing_allowed": false,
"whitelisted_emails": [
"example@example.com"
]
},
"verified_languages": [
{
"accent": "american",
"language": "en",
"locale": "en-US",
"model_id": "eleven_multilingual_v2",
"preview_url": "https://storage.googleapis.com/eleven-public-prod/premade/voices/9BWtsMINqrJLrRacOk9x/405766b8-1f4e-4d3c-aba1-6f25333823ec.mp3"
}
],
"voice_id": "21m00Tcm4TlvDq8ikWAM",
"voice_verification": {
"is_verified": true,
"language": "en",
"requires_verification": false,
"verification_attempts": [
{
"accepted": true,
"date_unix": 1714204800,
"levenshtein_distance": 2,
"recording": {
"mime_type": "audio/mpeg",
"recording_id": "CwhRBWXzGAHq8TQ4Fs17",
"size_bytes": 1000000,
"transcription": "Hello, how are you?",
"upload_date_unix": 1714204800
},
"similarity": 0.95,
"text": "Hello, how are you?"
}
],
"verification_attempts_count": 0,
"verification_failures": []
}
}
],
"has_more": true,
"total_count": 0,
"next_page_token": "string"
}