Fish Audio Docs
API ReferenceVoice Management

List Voices

List public and personal voices available to the current API key.

GET /api/open/v1/voices

Full URL:

https://fishaudio.org/api/open/v1/voices

Headers

Authorization: Bearer FISHAUDIO_API_KEY

Listing voices is read-only. It does not create tasks or consume credits.

If you only need platform-managed system voices, open the System voice list, filter by language, and copy an ID.

Query Options

The endpoint reads optional filters from URL query parameters. If you omit them, the API returns the first page of public voices.

FieldTypeRequiredDescription
pageintegerNoPage number. Default: 1
pageSizeintegerNoItems per page. Default: 20, maximum: 100
modelTypestringNopublic, personal, or all
includePersonalbooleanNoWhen true, the default model type becomes all
languagestringNoExact primary-language code, such as zh or en
supportsLanguagestringNoReturn voices that support this language code
searchstringNoCase-insensitive search by voice name or description

Response

{
  "total": 1,
  "page": 1,
  "pageSize": 20,
  "totalPages": 1,
  "items": [
    {
      "voiceId": "voice_123",
      "title": "Clara",
      "description": "",
      "created_at": "2026-07-09T00:00:00.000Z",
      "updated_at": "2026-07-09T00:00:00.000Z",
      "isPersonal": false
    }
  ]
}

Use items[].voiceId in TTS requests.

Quick Test Voice

To test TTS before choosing a voice from the response, use this public system voice ID:

00a1b221-6137-4b73-ad62-b0cbce134167

Replace it with an items[].voiceId value when you are ready to select a production voice.

curl Example

curl "https://fishaudio.org/api/open/v1/voices?page=1&pageSize=20&modelType=public" \
  -H "Authorization: Bearer FISHAUDIO_API_KEY"

Errors

StatusMeaning
401API key is missing or invalid
403Account cannot list voices
500Voice catalog query failed

Request preview

GET https://fishaudio.org/api/open/v1/voices?modelType=all&includePersonal=true&page=1&pageSize=20
Authorization: Bearer YOUR_API_KEY