POST https://api.acedata.cloud/fish/model.
When you only need to temporarily use a reference voice, there is no need to create a model. You can directly use thereferencesparameter of the Fish TTS API for one-time instant cloning. For paginated retrieval of existing voices, please refer to the Fish Model Query API; to query the details of a single voice by_id, please refer to the Fish Model Get API.
Application Process
To use the Fish Model API, first go to the Ace Data Cloud Console to obtain your API Token and keep it for later use.
If you have not logged in or registered yet, you will be automatically redirected to the login page to register and log in. After completion, you will automatically return to the current page.
One API Token can call all platform services; there is no need to apply separately for each service. Your first application includes free credits for a free trial; when credits are insufficient, you can top up your general balance in the Console.
📘 Full documentation: Fish Model API →
Request Body Fields
For more information about voice models, please refer to the Fish official documentation.
Created voices will be publicly stored long-term, and other users may search for and use them. There is no need to passvisibility; even ifprivateorunlistis passed, the current API will not change the public scope accordingly.
Example: Create a Public Clone Voice
Note:A successful response directly returns the ModelEntity object from the Fish platform (the example below is the minimum usable voice that we have tested; some long fields have been removed for readability):voicesmust be a string (a single audio URL), not an array. The upstream service will reject["..."]. It is recommended to use a publicly downloadable direct link with an.mp3or.wavextension.
_id can be used as the value of the reference_id field in the subsequent Fish TTS API, for speech synthesis using this clone voice:
Successfully created voices will be publicly stored. You can use self=true in the Fish Model Query API to query voices created by the current calling user through this platform. self=true only filters the list and does not restrict other users from using the voice.
Sample Requirements
Empirical recommendations (consistent with the upstream service; please refer to the Fish official documentation):- A duration of over 30 seconds is recommended, with the best results within 5 minutes; the marginal benefit beyond 10 minutes is limited.
- A sample rate of 16 kHz or above; both mono and stereo are supported.
- Keep the content as clean as possible: no background music, echo, or obvious ambient noise; use the same speaker.
- Recommended formats:
mp3/wav.
enhance_audio_quality: true to have the upstream service enhance the audio quality first.
Billing Instructions
Creating a voice cloning model (POST /fish/model) is free of charge; the voice query APIs (Fish Model Query, Fish Model Get) are also not billed. Charges are incurred only based on usage when subsequently calling Fish TTS to synthesize speech.
Error Handling
400 token_mismatched: Request parameters are missing or invalid (most commonly,voicesis not a URL, or it is passed as an array).400: When the reference audio cannot be downloaded, is too short, or its format cannot be recognized, please check the audio URL and file format.401 invalid_token: The authentication token does not exist or is invalid.429 too_many_requests: The account rate limit has been triggered.500 api_error: Internal server error.
Conclusion
To call this API, you only need to prepare a publicly accessible sample audio URL and place it in thevoices field to obtain an _id, then feed it into the reference_id of /fish/tts to complete the end-to-end “cloning → synthesis” process. A common pitfall is that voices must be a string and cannot be an array.
Create and Reuse Voices Through MCP
Callfish_create_model(title="My Voice", voices="https://example.com/authorized-voice.wav")in Fish MCP.
voices is a single HTTP(S) audio URL; you can also pass description, cover_image, tags,texts, enhance_audio_quality, and generate_sample.
This tool permanently saves public voices, which other users may discover and use; please use onlyaudio materials that you are authorized to process and publish. The tool has no private or unpublished option. The
_id returned after successful creation is used forthe
reference_id of fish_generate_audio, and fish_list_models(self=true) can be used to query voicessaved by yourself. When you only need a one-time reference voice, use
references in fish_generate_audiowithout creating a permanent voice.

