---
title: "Create A New Voice From Voice Preview"
method: POST
path: "/v1/text-to-voice"
tags: ["text-to-voice"]
---

# Create A New Voice From Voice Preview

`POST /v1/text-to-voice`

Create a voice from previously generated voice preview. This endpoint should be called after you fetched a generated_voice_id using POST /v1/text-to-voice/design or POST /v1/text-to-voice/:voice_id/remix.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Request body

- BodyCreateANewVoiceFromVoicePreviewV1TextToVoicePost
  - `voice_name` string, required — Name to use for the created voice.
  - `voice_description` string, required — Description to use for the created voice.
  - `generated_voice_id` string, required — The generated_voice_id to create; obtain it from POST /v1/text-to-voice/design, POST /v1/text-to-voice/:voice_id/remix, or the response headers when generating previews.
  - `labels` object, nullable — Optional, metadata to add to the created voice. Defaults to None.
  - `played_not_selected_voice_ids` string[], nullable — List of voice ids that the user has played but not selected. Used for RLHF.

## Response `200`

Successful Response

- VoiceResponseModel
  - `voice_id` string, required — The ID of the voice.
  - `name` string, required — The name of the voice.
  - `samples` SampleResponseModel[], nullable — List of samples associated with the voice.
    - `sample_id` string, required — The ID of the sample.
    - `file_name` string, required — The name of the sample file.
    - `mime_type` string, required — The MIME type of the sample file.
    - `size_bytes` integer, required — The size of the sample file in bytes.
    - `hash` string, required — The hash of the sample file.
    - `duration_secs` number, nullable
    - `remove_background_noise` boolean, nullable
    - `has_isolated_audio` boolean, nullable
    - `has_isolated_audio_preview` boolean, nullable
    - `speaker_separation` SpeakerSeparationResponseModel
      - `voice_id` string, required — The ID of the voice.
      - `sample_id` string, required — The ID of the sample.
      - `status` 'not_started' | 'pending' | 'completed' | 'failed', required — The status of the speaker separation.
      - `speakers` object, nullable — The speakers of the sample.
      - `selected_speaker_ids` string[], nullable — The IDs of the selected speakers.
    - `trim_start` integer, nullable
    - `trim_end` integer, nullable
  - `category` 'generated' | 'cloned' | 'premade' | 'professional' | 'famous' | 'high_quality', required — The category of the voice.
  - `fine_tuning` FineTuningResponseModel
    - `is_allowed_to_fine_tune` boolean, required — Whether the user is allowed to fine-tune the voice.
    - `state` object, required — The state of the fine-tuning process for each model.
    - `verification_failures` string[], required — List of verification failures in the fine-tuning process.
    - `verification_attempts_count` integer, required — The number of verification attempts in the fine-tuning process.
    - `manual_verification_requested` boolean, required — Whether a manual verification was requested for the fine-tuning process.
    - `language` string, nullable — The language of the fine-tuning process.
    - `progress` object, nullable — The progress of the fine-tuning process.
    - `message` object, nullable — The message of the fine-tuning process.
    - `dataset_duration_seconds` number, nullable — The duration of the dataset in seconds.
    - `verification_attempts` VerificationAttemptResponseModel[], nullable — The number of verification attempts.
      - `text` string, required — The text of the verification attempt.
      - `date_unix` integer, required — The date of the verification attempt in Unix time.
      - `accepted` boolean, required — Whether the verification attempt was accepted.
      - `similarity` number, required — The similarity of the verification attempt.
      - `levenshtein_distance` number, required — The Levenshtein distance of the verification attempt.
      - `recording` RecordingResponseModel
        - `recording_id` string, required — The ID of the recording.
        - `mime_type` string, required — The MIME type of the recording.
        - `size_bytes` integer, required — The size of the recording in bytes.
        - `upload_date_unix` integer, required — The date of the recording in Unix time.
        - `transcription` string, required — The transcription of the recording.
    - `slice_ids` string[], nullable — List of slice IDs.
    - `manual_verification` ManualVerificationResponseModel
      - `extra_text` string, required — The extra text of the manual verification.
      - `request_time_unix` integer, required — The date of the manual verification in Unix time.
      - `files` ManualVerificationFileResponseModel[], required — The files of the manual verification.
        - `file_id` string, required — The ID of the file.
        - `file_name` string, required — The name of the file.
        - `mime_type` string, required — The MIME type of the file.
        - `size_bytes` integer, required — The size of the file in bytes.
        - `upload_date_unix` integer, required — The date of the file in Unix time.
    - `max_verification_attempts` integer, nullable — The maximum number of verification attempts.
    - `next_max_verification_attempts_reset_unix_ms` integer, nullable — The next maximum verification attempts reset time in Unix milliseconds.
  - `labels` object, required — Labels associated with the voice.
  - `description` string, nullable — The description of the voice.
  - `preview_url` string, nullable — The preview URL of the voice.
  - `available_for_tiers` string[], required — The tiers the voice is available for.
  - `settings` VoiceSettingsResponseModel
    - `stability` number, nullable — Determines how stable the voice is and the randomness between each generation. Lower values introduce broader emotional range for the voice. Higher values can result in a monotonous voice with limited emotion.
    - `use_speaker_boost` boolean, nullable — This setting boosts the similarity to the original speaker. Using this setting requires a slightly higher computational load, which in turn increases latency.
    - `similarity_boost` number, nullable — Determines how closely the AI should adhere to the original voice when attempting to replicate it.
    - `style` number, nullable — Determines the style exaggeration of the voice. This setting attempts to amplify the style of the original speaker. It does consume additional computational resources and might increase latency if set to anything other than 0.
    - `speed` number, nullable — Adjusts the speed of the voice. A value of 1.0 is the default speed, while values less than 1.0 slow down the speech, and values greater than 1.0 speed it up.
  - `sharing` VoiceSharingResponseModel
    - `status` 'enabled' | 'disabled' | 'copied' | 'copied_disabled', required — The status of the voice sharing.
    - `history_item_sample_id` string, nullable — The sample ID of the history item.
    - `date_unix` integer, required — The date of the voice sharing in Unix time.
    - `whitelisted_emails` string[], required — A list of whitelisted emails.
    - `public_owner_id` string, required — The ID of the public owner.
    - `original_voice_id` string, required — The ID of the original voice.
    - `financial_rewards_enabled` boolean, required — Whether financial rewards are enabled.
    - `free_users_allowed` boolean, required — Whether free users are allowed.
    - `live_moderation_enabled` boolean, required — Whether live moderation is enabled.
    - `rate` number, nullable — The rate of the voice sharing.
    - `fiat_rate` number, nullable — The rate of the voice sharing in USD per 1000 credits.
    - `notice_period` integer, required — The notice period of the voice sharing.
    - `disable_at_unix` integer, nullable — The date of the voice sharing in Unix time.
    - `voice_mixing_allowed` boolean, required — Whether voice mixing is allowed.
    - `featured` boolean, required — Whether the voice is featured.
    - `category` 'generated' | 'cloned' | 'premade' | 'professional' | 'famous' | 'high_quality', required — The category of the voice.
    - `reader_app_enabled` boolean, nullable — Whether the reader app is enabled.
    - `image_url` string, nullable — The image URL of the voice.
    - `ban_reason` string, nullable — The ban reason of the voice.
    - `liked_by_count` integer, required — The number of likes on the voice.
    - `cloned_by_count` integer, required — The number of clones on the voice.
    - `name` string, required — The name of the voice.
    - `description` string, nullable — The description of the voice.
    - `labels` object, required — The labels of the voice.
    - `review_status` 'not_requested' | 'pending' | 'declined' | 'allowed' | 'allowed_with_changes', required — The review status of the voice.
    - `review_message` string, nullable — The review message of the voice.
    - `enabled_in_library` boolean, required — Whether the voice is enabled in the library.
    - `instagram_username` string, nullable — The Instagram username of the voice.
    - `twitter_username` string, nullable — The Twitter/X username of the voice.
    - `youtube_username` string, nullable — The YouTube username of the voice.
    - `tiktok_username` string, nullable — The TikTok username of the voice.
    - `moderation_check` VoiceSharingModerationCheckResponseModel
      - `date_checked_unix` integer, nullable — The date the moderation check was made in Unix time.
      - `name_value` string, nullable — The name value of the voice.
      - `name_check` boolean, nullable — Whether the name check was successful.
      - `description_value` string, nullable — The description value of the voice.
      - `description_check` boolean, nullable — Whether the description check was successful.
      - `sample_ids` string[], nullable — A list of sample IDs.
      - `sample_checks` number[], nullable — A list of sample checks.
      - `captcha_ids` string[], nullable — A list of captcha IDs.
      - `captcha_checks` number[], nullable — A list of CAPTCHA check values.
    - `reader_restricted_on` ReaderResourceResponseModel[], nullable — The reader restricted on of the voice.
      - `resource_type` 'read' | 'collection', required — The type of resource.
      - `resource_id` string, required — The ID of the resource.
  - `high_quality_base_model_ids` string[], required — The base model IDs for high-quality voices.
  - `verified_languages` VerifiedVoiceLanguageResponseModel[], nullable — The verified languages of the voice.
    - `language` string, required — The language of the voice.
    - `model_id` string, required — The voice's model ID.
    - `accent` string, nullable — The voice's accent, if applicable.
    - `locale` string, nullable — The voice's locale, if applicable.
    - `preview_url` string, nullable — The voice's preview URL, if applicable.
  - `collection_ids` string[], nullable — The IDs of collections this voice belongs to.
  - `safety_control` 'NONE' | 'BAN' | 'CAPTCHA' | 'ENTERPRISE_BAN' | 'ENTERPRISE_CAPTCHA', nullable — The safety controls of the voice.
  - `voice_verification` VoiceVerificationResponseModel
    - `requires_verification` boolean, required — Whether the voice requires verification.
    - `is_verified` boolean, required — Whether the voice has been verified.
    - `verification_failures` string[], required — List of verification failures.
    - `verification_attempts_count` integer, required — The number of verification attempts.
    - `language` string, nullable — The language of the voice.
    - `verification_attempts` VerificationAttemptResponseModel[], nullable — Number of times a verification was attempted.
      - `text` string, required — The text of the verification attempt.
      - `date_unix` integer, required — The date of the verification attempt in Unix time.
      - `accepted` boolean, required — Whether the verification attempt was accepted.
      - `similarity` number, required — The similarity of the verification attempt.
      - `levenshtein_distance` number, required — The Levenshtein distance of the verification attempt.
      - `recording` RecordingResponseModel
        - `recording_id` string, required — The ID of the recording.
        - `mime_type` string, required — The MIME type of the recording.
        - `size_bytes` integer, required — The size of the recording in bytes.
        - `upload_date_unix` integer, required — The date of the recording in Unix time.
        - `transcription` string, required — The transcription of the recording.
  - `permission_on_resource` string, nullable — The permission on the resource of the voice.
  - `is_owner` boolean, nullable — Whether the voice is owned by the user.
  - `is_legacy` boolean — Whether the voice is legacy.
  - `is_mixed` boolean — Whether the voice is mixed.
  - `favorited_at_unix` integer, nullable — Timestamp when the voice was marked as favorite in Unix time.
  - `created_at_unix` integer, nullable — The creation time of the voice in Unix time.
  - `is_bookmarked` boolean, nullable — Whether the voice is bookmarked by the current user. Only relevant for community (library-copied) voices.
  - `recording_quality` 'studio' | 'good' | 'ok' | 'poor' | 'bad', nullable — The recording quality of the voice as determined by the review pipeline.
  - `labelling_status` 'in_review' | 'review_complete', nullable — The review pipeline status of the voice.
  - `recording_quality_reason` string, nullable — The reason for the recording quality assessment, as determined by the review pipeline.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elevenlabs/elevenlabs-api-documentation/versions/e77a0a530a82/schema)
