---
title: "Upload Voice Clone Sample"
method: POST
path: "/v1/tts/voice-assets"
tags: ["Voice AI Beta"]
---

# Upload Voice Clone Sample

`POST /v1/tts/voice-assets`

Upload an audio sample to the shared voice-clone library (`multipart/form-data`). The asset is ready immediately — pass its `id` as `voice_asset_id` when creating a task with Nova, Lyra or Sirius.

Requirements: duration **10–90 seconds** · size ≤ **32 MB** · formats `mp3, wav, m4a, ogg, flac, webm` · max **20** assets per account.
> **Rate limit:** 60 requests/hour

## Response `200`

Asset uploaded (note — `200`, not `201`)

- TtsVoiceAsset — An uploaded voice-clone sample (shared across Nova, Lyra and Sirius)
  - `id` string — Use as `voice_asset_id` when creating a task
  - `title` string
  - `format` string
  - `size_bytes` integer
  - `duration_ms` integer
  - `cover_image` string — Cover image URL
  - `sample_url` string — Playback URL of the uploaded sample
  - `status` 'ready' | 'failed'
  - `created_at` string, date-time

## Other responses

- `400` — Invalid file (duration, format) or asset quota reached
- `413` — File exceeds 32 MB
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/genaipro/apis/genaipro-api.md) · [All operations](https://skmtc.dev/genaipro/apis/genaipro-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/genaipro/genaipro-api/revisions/91f814eaecbd/schema)
