---
title: "Create a voice clone"
description: "Clone a voice from a workspace-owned audio sample and save it. The result is a voice_id that POST /v1/audio/minimax-speech-hd, POST /v1/audio/minimax-speech-turbo, and POST /v1/audio/qwen3-tts accept. You must accept the current media-rights statement in the body: roasOS records that consent before it prices, reserves, or runs anything. Choose minimax-voice-clone for the widest language coverage; the provider holds the voice and deletes it after 7 days unless a MiniMax call uses it. Choose qwen3-voice-clone when you do not want a provider-held voice: roasOS stores the speaker embedding, and nothing expires."
url: https://docs.roasos.com/api-reference/voices/createVoice
---

# Create a voice clone

Clone a voice from a workspace-owned audio sample and save it. The result is a voice_id that POST /v1/audio/minimax-speech-hd, POST /v1/audio/minimax-speech-turbo, and POST /v1/audio/qwen3-tts accept. You must accept the current media-rights statement in the body: roasOS records that consent before it prices, reserves, or runs anything. Choose minimax-voice-clone for the widest language coverage; the provider holds the voice and deletes it after 7 days unless a MiniMax call uses it. Choose qwen3-voice-clone when you do not want a provider-held voice: roasOS stores the speaker embedding, and nothing expires.

## `POST /v1/voices`

Endpoint: `POST https://api.roasos.com/v1/voices`

Create a voice clone

Clone a voice from a workspace-owned audio sample and save it. The result is a voice_id that POST /v1/audio/minimax-speech-hd, POST /v1/audio/minimax-speech-turbo, and POST /v1/audio/qwen3-tts accept. You must accept the current media-rights statement in the body: roasOS records that consent before it prices, reserves, or runs anything. Choose minimax-voice-clone for the widest language coverage; the provider holds the voice and deletes it after 7 days unless a MiniMax call uses it. Choose qwen3-voice-clone when you do not want a provider-held voice: roasOS stores the speaker embedding, and nothing expires.

### Parameters

- `undefined`

### Request body

Content type: `application/json`

### Responses

- `200`: Quote for this clone (quote_only)
- `201`: Clone started; poll the job for the saved voice
- `400`: Invalid request, stale or missing media-rights terms, or the sample is not an immutable object this workspace owns
- `402`: Not enough credits
- `429`: Rate limit exceeded
- `503`: The sample could not be measured, or the consent store or provider contract is temporarily unavailable

Read the full reference at https://docs.roasos.com/api-reference/voices/createVoice.
