Kitta Audio Docs
API ReferenceVoice Management

Voice Design

Design a voice from a text prompt, preview candidates, and save one as a reusable voice.

Voice Design

Voice design is a two-step flow. First create a temporary design and preview its candidates. Then save one candidate to receive a permanent voiceId for TTS.

1. Create previews

POST /api/open/v1/voice-designs
Authorization: Bearer FISHAUDIO_API_KEY
Idempotency-Key: unique-preview-request
Content-Type: application/json
{
  "prompt": "Warm, calm female narrator with clear pronunciation",
  "previewText": "Welcome. This is your new voice.",
  "providers": ["fishaudio", "minimax"]
}

The response contains a temporary designId, one or more candidateId values, protected previewAudioUrl values, and billing details. Fetch preview audio with the same Bearer API key.

2. Save a candidate

POST /api/open/v1/voice-designs/{designId}/voices
Authorization: Bearer FISHAUDIO_API_KEY
Idempotency-Key: unique-save-request
Content-Type: application/json
{
  "candidateId": "vdc_example",
  "name": "Warm narrator",
  "visibility": "private"
}

A successful save returns a permanent voiceId. Use that voiceId in TTS requests; do not use designId or candidateId as a voice identifier.

Preview sessions expire after the period configured by the service. Both POST requests require a distinct Idempotency-Key. Repeating the same request with the same key safely replays the stored result; changing the body requires a new key.