API DocsAI Model APIsAudioFish AudioModel Management

Update Model

Update the title, description, cover, visibility, or tags of an existing voice model.

Partially update metadata of an existing voice model by ID, including title, description, cover, visibility, and tags. Omitted fields stay unchanged.

Synchronous endpoint: only metadata is updated; the voice is not retrained. When uploading a cover image, use multipart/form-data and let the HTTP client set the multipart Content-Type boundary automatically.

Base URL

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

Authentication

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

Endpoints

PATCH /fishaudio/model/{id}

Update a voice model

Update selected fields by model ID. All body fields are optional; send only the fields you want to change.

Headers

NameTypeRequiredDescription
AuthorizationstringYesRequest authentication. Format: Bearer sk-xxxxxx
Content-TypestringYesapplication/json, multipart/form-data, application/x-www-form-urlencoded, or application/msgpack. Use multipart/form-data when uploading a cover image

Path Parameters

NameTypeRequiredDescription
idstringYesModel ID

Request Body

Content-Type: application/json

Example:

{
  "title": "My Voice (Updated)",
  "description": "Updated description",
  "visibility": "unlist",
  "tags": ["custom", "studio"]
}

Properties:

NameTypeRequiredDescription
titlestring | nullNoModel title
descriptionstring | nullNoModel description
cover_imagefile | nullNoCover image. Use multipart/form-data when uploading a file
visibilitystring | nullNoVisibility. Values: public, unlist, private
tagsstring | string[]NoModel tags

visibilitystring | null(Optional)

Model visibility.

  • private: visible only to the creator
  • unlist: anyone with the link can access
  • public: shown publicly. API requests with public may be downgraded to private; use the web publish flow to publish publicly

Responses

200: Updated successfully

Content-Type: application/json

401: Unauthorized

Content-Type: application/json

503: Service overloaded

Content-Type: application/json

Request Example

curl -X PATCH "https://api.autorouter.top/fishaudio/model/{id}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxx" \
  -d '{
  "title": "My Voice (Updated)",
  "description": "Updated description",
  "visibility": "unlist",
  "tags": ["custom", "studio"]
}'

Response Example

{}

Response fields:

The response body may be empty on success. On failure an error object is returned:

NameTypeDescription
statusintegerError status code (on failure)
messagestringError message (on failure)
reasonstring | nullAdditional reason, may be null

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