Prerequisites
Create a Fish Audio account
Create a Fish Audio account
Sign up for a free Fish Audio account to get started with our API.
- Go to fish.audio/auth/signup
- Fill in your details to create an account, complete steps to verify your account.
- Log in to your account and navigate to the API section
Get your API key
Get your API key
Once you have an account, you’ll need an API key to authenticate your requests.
- Log in to your Fish Audio Dashboard
- Navigate to the API Keys section
- Click “Create New Key” and give it a descriptive name, set a expiration if desired
- Copy your key and store it securely
Recipe
There are two ways to clone a voice. Pick by how often you’ll reuse it:- One-shot (instant) — pass a
ReferenceAudio(raw bytes + exact transcript) on eachconvertcall. Nothing is stored server-side; the clone lives only for that request. - Persistent — call
voices.createonce to train a model, then reuse its id asreference_idon every request. No reference upload per call, and the same voice is shared across processes.
Train a persistent voice once, reuse forever
Callvoices.create to train a model, then pass voice.id as reference_id. The same id works from any process and across SDK and REST.
Which to choose
| One-shot | Persistent | |
|---|---|---|
| Setup | None | One voices.create call |
| Per request | Re-uploads reference bytes | Sends only reference_id |
| Stored server-side | No | Yes (manage with voices.update / voices.delete) |
| Best for | One-off or experimental clones | Voices reused many times or across services |

