roasOS
API referenceVoices

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

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.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Use your API key as the bearer token: Authorization: Bearer roasos_sk_...

In: header

Header Parameters

Idempotency-Key*string

A unique string that makes retries safe. Any value 16-255 characters; reuse it only when retrying the exact same request.

Match^[A-Za-z0-9._:-]+$
Length16 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/voices" \  -H "Idempotency-Key: stringstringstri" \  -H "Content-Type: application/json" \  -d '{    "audio_url": "http://example.com",    "media_rights": {      "accepted": true,      "statement_version": 0,      "policy_version": "string"    }  }'
{  "data": {    "kind": "quote",    "quote_id": "3c071a1d-db86-46a7-9dc8-72ba3fbca992",    "credits": 0,    "expires_at": "string",    "pricing_version": "string",    "confirmation": {      "property1": null,      "property2": null    }  }}