Skip to content
Lumean API

Descriptions are in English

The section interface is translated into your language, but descriptions of operations, schemas and errors exist only in Russian and English — the English version is shown here.
DELETE/voices/fishaudio/clones/{voiceClone}

Archive Fish Audio Voice Clone

Retires a clone: it moves to archived, is no longer accepted by new orders, its voice sample is deleted and its slot under the plan's cap is freed. Orders already accepted with this voice are not affected. Idempotent: a repeated call returns the same archived clone.

Does not check the subscription.

Required key permission: voices.write.

On this page(3)

Parameters

The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.

DELETEhttps://api.lumean.app/api/public/voices/fishaudio/clones/
  • stringin pathrequired

    Cartesia or Fish Audio voice clone UUID — 36 characters, not a number.

    Take it from the clone's id field: POST /voices/cartesia/clones (or /voices/fishaudio/clones) returns it on creation and the matching GET …/clones lists it. This is not the clone's voice_id (that one goes into a template). Someone else's clone returns 404 with reason: voice_clone_not_found.

    The value goes straight into the request line above.

Possible responses

200

Success. The payload is in data.

Body example
{
  "success": true,
  "message": "Success",
  "data": {
    "id": "01a10e08-2ee3-73c2-88b2-8df2bcef9d1e",
    "provider": "fishaudio",
    "display_name": "Narrator (my voice)",
    "language": "ru",
    "description": null,
    "status": "archived",
    "voice_id": "b3f1c9a07e5d4a2c8d6e1f0a9b7c5d34",
    "attempts": 1,
    "error": null,
    "created_at": "2026-10-14T08:02:11+00:00",
    "completed_at": "2026-10-14T08:03:40+00:00",
    "failed_at": null,
    "banned_at": null,
    "ban_reason": null
  }
}
Response fields
successrequired

Success flag. Branch on the HTTP status code instead: any 2xx response carries true here, while an error comes back in a different shape that need not contain this field at all.

boolean
messagerequired

A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code.

string
datarequired

The clone in archived status.

FishAudioVoiceCloneFishAudioVoiceClone
idrequired

Clone UUID. Use it in /voices/fishaudio/clones/{voiceClone}/… paths; it does NOT go into a template — voice_id does.

string
providerrequired

Clone provider — always fishaudio.

Valuesfishaudio
string
display_namerequired

Clone name given at creation.

string
languagerequired

Reference language label (ISO 639-1), or null if none was sent. It does not affect cloning.

string
descriptionrequired

Your description of the clone, or null.

string
statusrequired

Status: pending → cloning → ready or failed; archived — retired by the owner; banned — blocked by a moderator. Only ready can be used for narration.

string
voice_idrequired

The Fish Audio voice id (a 32-character hex string, not a UUID) — the value for tts_settings.voice_id of a template with service_key: fishaudio. Present only for ready, otherwise null.

string
attemptsrequired

Cloning attempt number: 1 on creation, +1 for every retry.

integer
errorrequired

Why the last attempt failed; null while there has been no failure.

nullable
object
reasonrequired

Machine-readable failure code: processing_error, max_retries, network, timeout, dispatch_failed, unbanned (the clone was unbanned but had no voice). Retry with POST /voices/fishaudio/clones/{voiceClone}/retry; if processing_error keeps coming back, use a different sample.

string
messagerequired

Human-readable explanation of the failure, or null. Branch on reason, not on this text.

string
created_atrequired

When the clone was created.

string
completed_atrequired

When the clone became ready; null until then.

string
failed_atrequired

When the last attempt failed; null if it has not.

string
banned_atrequired

When a moderator banned the clone (status = banned); null if it is not banned.

string
ban_reasonrequired

Reason for the ban given by the moderator, or null. A banned clone can be neither used nor archived.

string
401

The key is missing, unknown, disabled or expired.

Analyse this response
Body example
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
datarequired

Always null when the request is rejected before processing.

nullable
null
403

The key lacks the voices.write permission.

Analyse this response
Body example
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
404

The clone does not exist or belongs to someone else (reason: voice_clone_not_found). A voiceClone that is not a UUID does not match the route: reason: endpoint_not_found (a hint with the docs address, llm.md §6.1).

Analyse this response
Body example
{
  "success": false,
  "message": "Voice clone not found.",
  "reason": "voice_clone_not_found",
  "error_code": "voice_clone_not_found"
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

The reason for the rejection in words, in the account language. Meant for display; do not branch on it, the wording changes.

string
reasonrequired

Machine-readable reason of a business refusal (for example, input_expired, insufficient_balance). Branch on it, not on the message text.

string
error_coderequired

The same machine-readable code as in reason — a second name for the field. The values always match.

string

Feed this page to an AI

Open .mdllm.md

spec 0.0.1