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
| Name | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Request authentication. Format: Bearer sk-xxxxxx |
Content-Type | string | Yes | application/json, multipart/form-data, application/x-www-form-urlencoded, or application/msgpack. Use multipart/form-data when uploading a cover image |
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Model ID |
Request Body
Content-Type: application/json
Example:
{
"title": "My Voice (Updated)",
"description": "Updated description",
"visibility": "unlist",
"tags": ["custom", "studio"]
}Properties:
| Name | Type | Required | Description |
|---|---|---|---|
title | string | null | No | Model title |
description | string | null | No | Model description |
cover_image | file | null | No | Cover image. Use multipart/form-data when uploading a file |
visibility | string | null | No | Visibility. Values: public, unlist, private |
tags | string | string[] | No | Model tags |
visibilitystring | null(Optional)
Model visibility.
private: visible only to the creatorunlist: anyone with the link can accesspublic: shown publicly. API requests withpublicmay be downgraded toprivate; 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:
| Name | Type | Description |
|---|---|---|
status | integer | Error status code (on failure) |
message | string | Error message (on failure) |
reason | string | null | Additional reason, may be null |
Error Handling
HTTP 401 / 403 Auth Errors
401 Unauthorized: API Key is invalid or expired403 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.