Fish Model Get API Integration Instructions

This interface is based on the Fish Audio Official Model API and is used to query the complete details of a single cloned voice by _id. The address is GET https://api.acedata.cloud/fish/model/{id}.

For creating voices, please refer to the Fish Model Create API; for paginated retrieval, please refer to the Fish Model Query API.

Application Process

To use the Fish Model API, first obtain your API Token from the 辰汐ai Console for future use.

If you are not logged in or registered, you will be automatically redirected to the login page inviting you to register and log in, and will return to the current page upon completion.

One API Token can call all services on the platform, no need to apply separately for each service. The first application will grant a free quota for a trial experience; when the quota is insufficient, you can recharge the general balance in the console.

📘 Complete documentation: Fish Model API →

Path Parameters

Parameter Required Description
id Yes The voice's _id (32-character hexadecimal string). It can be obtained from the return when creating through Fish Model Create or retrieved through Fish Model Query.

No request body, no query parameters.

Example: Retrieve complete details of a public Spanish voice

curl 'https://api.acedata.cloud/fish/model/8d2c17a9b26d4d83888ea67a1ee565b2' \
  -H 'authorization: Bearer {token}'

Response (actual test, removed the signature query string from samples[].audio for readability):

{
  "_id": "8d2c17a9b26d4d83888ea67a1ee565b2",
  "type": "tts",
  "title": "Valentino Narración Biblica Fer",
  "description": "A mature and authoritative male voice with a calm, spiritual tone. It is well-suited for religious narration, educational content, and professional storytelling in Spanish.",
  "cover_image": "coverimage/8d2c17a9b26d4d83888ea67a1ee565b2",
  "train_mode": "fast",
  "state": "trained",
  "tags": [
    "male", "old", "narration", "calm", "serious",
    "authoritative", "professional", "clear", "Spanish"
  ],
  "samples": [
    {
      "title": "Default Sample",
      "text": "Hermanos míos, recordemos las palabras del Señor en estos tiempos difíciles. Como dice la Escritura, la fe mueve montañas, y el amor de Dios nos guía en cada paso del camino. Mantengamos firme nuestra confianza en Su divina providencia.",
      "task_id": "59ce7df6935c42249759327ddf70f37b",
      "audio": "https://c97f3361a1c971323738e24f451a0225.r2.cloudflarestorage.com/fish-platform-data/task/59ce7df6935c42249759327ddf70f37b.mp3?X-Amz-...signed..."
    }
  ],
  "created_at": "2025-03-13T08:11:10.326000Z",
  "updated_at": "2026-05-03T09:01:41.437000Z",
  "languages": ["es"],
  "visibility": "public",
  "lock_visibility": false,
  "dmca_taken_down": false,
  "default_text": "Hermanos míos, recordemos las palabras del Señor...",
  "quality": null,
  "like_count": 4344,
  "mark_count": 4409,
  "shared_count": 590,
  "task_count": 708461,
  "unliked": false,
  "liked": false,
  "marked": false,
  "author": {
    "_id": "1b82fb6a329c4462b67aa9ee0a42046f",
    "nickname": "Fernando Caicedo",
    "avatar": "avatars/1b82fb6a329c4462b67aa9ee0a42046f.jpg"
  }
}

The obtained _id can be directly fed to the reference_id of Fish TTS to synthesize speech with the same voice:

curl -X POST 'https://api.acedata.cloud/fish/tts' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "text": "Hermanos míos, hoy es un buen día.",
    "reference_id": "8d2c17a9b26d4d83888ea67a1ee565b2",
    "format": "mp3"
  }'

Differences with List Interface

Field GET /fish/model (list) GET /fish/model/{id} (details)
samples[].audio Short-term R2 cached URL Current signed R2 direct link (with query signature)
unliked / liked / marked / dmca_taken_down Also exists Also exists
default_text / lock_visibility Also exists Also exists

If you just want to listen, the samples[].audio in the list interface is sufficient; for a more stable download link, it is recommended to use this interface.

Response Fields (Excerpt)

Field Type Description
_id string Voice ID (used for reference_id in /fish/tts).
type string Model type, usually tts.
title string Voice name.
description string Long description.
state string Training status: trained means available, training means still training.
tags string[] Public library tags.
samples object[] Pre-set samples, containing title, text, task_id, audio direct link.
languages string[] Language codes the voice excels in.
visibility string public or private.
like_count integer Number of likes in the public library.
task_count integer Historical synthesis count (can be used for popularity ranking reference).
author object Upstream author information: _id / nickname / avatar.
created_at string ISO 8601 creation time.
updated_at string ISO 8601 last updated time.

Billing Instructions

This interface is free of charge—querying the details of a single voice by ID is a free operation. Creating voices (Fish Model Create) is also free, and charges only occur when calling Fish TTS to synthesize speech based on usage.

Error Handling

  • 400 token_mismatched: The id in the path is not in a valid format, or the upstream reports "Model not found".
  • 401 invalid_token: The authentication token does not exist or is invalid.
  • 404 not_found: The specified _id is not visible upstream on Fish (the tone has been deleted, is private, or belongs to another account).
  • 429 too_many_requests: The account rate limit has been triggered.
  • 500 api_error: Internal server error.

When actually requesting a non-existent ID, the upstream will directly return 400 Model not found (tested):

curl 'https://api.acedata.cloud/fish/model/test123' \
  -H 'authorization: Bearer {token}'

Response:

{ "status": 400, "message": "Model not found" }

Example of an error response:

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

When the tone _id is known, directly use this interface to obtain the complete ModelEntity. The most common usages are: (1) to preview samples[].audio, (2) to feed the _id to the reference_id of /fish/tts to complete synthesis. If only the title or tags are available, please first use Fish Model Query to retrieve.