API DocsAI Model APIsAudioFish AudioModel Management

List Models

List voice models with pagination. Filter by title, tags, author, language, and license status.

List voice models with pagination. Filter by title, tags, author, language, and license status, or return only models owned by the current workspace.

Synchronous endpoint: the request returns paginated results immediately. Use the model _id as reference_id on the Text to Speech endpoint.

Base URL

  • https://api.autorouter.top — Production

Authentication

BearerAuth: http (bearer) Authenticate using a Bearer Token. Format: Authorization: Bearer sk-xxxxxx

Endpoints

GET /fishaudio/model

List voice models

Return a model list using pagination and filters.

Headers

NameTypeRequiredDescription
AuthorizationstringYesRequest authentication. Format: Bearer sk-xxxxxx

Query Parameters

NameTypeRequiredDescription
page_sizeintegerNoPage size. Default 10, range [1, 100]
page_numberintegerNoPage number. Default 1, minimum 1
titlestring | nullNoFilter by title
tagstring | string[] | nullNoFilter by tag
selfbooleanNoIf true, return only models owned by the current workspace. Default false
author_idstring | nullNoFilter public models by author ID; ignored if self=true
languagestring | string[] | nullNoFilter by language
title_languagestring | string[] | nullNoFilter by title language
licensedbooleanNoIf true, only Fish Audio licensed voices are returned; ignored if self=true. Default false
sort_bystringNoSort field. Values: score (default), task_count, created_at

selfboolean(Optional)

Whether to return only models owned by the current workspace. Default false.

  • true: return only your models; author_id and licensed are ignored
  • false: follow public discovery rules; you can filter with author_id, licensed, and similar fields

sort_bystring(Optional)

Sort field. Default score.

  • score: overall score
  • task_count: usage count
  • created_at: created time

Responses

200: Retrieved successfully

Content-Type: application/json

401: Unauthorized

Content-Type: application/json

503: Service overloaded

Content-Type: application/json

Request Example

curl -X GET "https://api.autorouter.top/fishaudio/model?page_size=10&page_number=1&self=true&sort_by=created_at" \
  -H "Authorization: Bearer sk-xxxxxx"

Response Example

{
  "total": 1,
  "items": [
    {
      "_id": "7f8a9b0c1d2e3f4a5b6c7d8e",
      "type": "tts",
      "title": "My Voice",
      "description": "Cloned from a studio sample",
      "cover_image": "",
      "train_mode": "fast",
      "state": "trained",
      "tags": ["custom"],
      "samples": [],
      "created_at": "2026-09-20T01:00:00.000Z",
      "updated_at": "2026-09-20T01:00:00.000Z",
      "languages": ["en"],
      "visibility": "private",
      "lock_visibility": false,
      "default_text": "",
      "source": null,
      "licensed": false,
      "like_count": 0,
      "mark_count": 0,
      "shared_count": 0,
      "task_count": 0,
      "liked": false,
      "marked": false,
      "unliked": false,
      "author": {
        "_id": "64a1b2c3d4e5f67890123456",
        "nickname": "creator",
        "avatar": "https://example.com/avatar.png"
      }
    }
  ],
  "has_more": false,
  "total_is_exact": true,
  "window_limited": false,
  "max_offset": null,
  "accessible_upper_bound": null
}

Response fields:

NameTypeDescription
totalintegerTotal number of matching models
itemsobject[]Models on the current page
has_moreboolean | nullWhether there is a next page
total_is_exactbooleanWhether total is exact. Default true
window_limitedbooleanWhether the query window is limited. Default false
max_offsetinteger | nullMaximum offset
accessible_upper_boundinteger | nullAccessible upper bound
items[]._idstringModel ID, usable as TTS reference_id
items[].typestringModel type. tts is text-to-speech; svc is singing voice conversion
items[].titlestringModel title
items[].descriptionstringModel description
items[].cover_imagestringCover image URL
items[].train_modestringTraining mode. fast or full
items[].statestringState. Enum: created, training, trained, failed
items[].tagsstring[]Tag list
items[].samplesobject[]Preview samples
items[].created_atstringCreated at, ISO 8601
items[].updated_atstringUpdated at, ISO 8601
items[].languagesstring[]Language list
items[].visibilitystringVisibility. Enum: public, unlist, private
items[].licensedbooleanWhether this is a Fish Audio licensed voice
items[].like_countintegerLike count
items[].task_countintegerUsage count
items[].authorobjectAuthor information

itemsobject[](Required)

Models on the current page. Each item is a full model object.

_idstring(Required)

Model ID. After creation it can be used as TTS reference_id.

statestring(Required)

Model state. Enum: created, training, trained, failed. With train_mode=fast it usually becomes trained quickly.

authorobject(Required)

Author information, including _id, nickname, and avatar.

Error Handling

HTTP 401 / 403 Auth Errors

  • 401 Unauthorized: API Key is invalid or expired
  • 403 Forbidden: API Key cannot access this model (check the token model allowlist)

HTTP 402 Insufficient Balance

Returns insufficient user quota. Top up in the AutoRouter console.

HTTP 503 Service Overloaded

The server is too busy to process the request. Please retry later.

On this page