---
title: "Create Voice"
method: POST
path: "/v1/voices"
---

# Create Voice

`POST /v1/voices`

Create a new voice, optionally with reference audio files.

Accepts either:

- ``application/json`` with a :class:`CreateVoiceRequest` body, or
- ``multipart/form-data`` with a ``metadata`` JSON part and optional
  ``files`` parts (audio files). This is the format sent by the
  Python and JS SDKs when ``reference_files`` are provided.

## Response `201`

Successful Response

- VoiceDetailInfo — Extended voice metadata returned by CRUD endpoints.
  - `id` integer, required
  - `voice_id` integer, required
  - `handle` string, nullable
  - `public_id` string, nullable
  - `name` string, required
  - `description` string
  - `generative_voice_description` string
  - `supported_languages` string[]
  - `category` string
  - `age` string, nullable
  - `sex` string, nullable
  - `quality` string
  - `is_public` boolean
  - `verified` boolean
  - `pending_verification` boolean
  - `sample_url` string, nullable
  - `avatar_url` string, nullable
  - `sample_text` string

---

[API](https://skmtc.net/kugelaudio/apis/kugelaudio-tts-api.md) · [All operations](https://skmtc.net/kugelaudio/apis/kugelaudio-tts-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kugelaudio/kugelaudio-tts-api/revisions/9ecca94b0377/schema)
