К содержанию
Lumean API

DELETE/voices/fishaudio/clones/{voiceClone}

Снимает клон: он переходит в archived, в новые заказы больше не берётся, образец голоса удаляется, место в потолке тарифа освобождается. Заказы, уже принятые с этим голосом, не затрагиваются. Идемпотентно: повторный вызов отдаёт тот же архивный клон.

Работает без проверки подписки.

Требуемое право ключа: voices.write.

На этой странице(3)

Параметры

Поля ввода живут прямо в строке запроса: подставьте значение — и получите готовый URL. Ниже — тип, обязательность и допустимые значения каждого параметра.

DELETEhttps://api.lumean.app/api/public/voices/fishaudio/clones/
  • stringв путиобязательный

    UUID клона голоса Cartesia или Fish Audio — 36 символов, не число.

    Берётся из поля id клона: его возвращает POST /voices/cartesia/clones (или /voices/fishaudio/clones) при создании и соответствующий GET …/clones в списке. Это НЕ voice_id клона (тот кладут в шаблон). Чужой клон → 404 с reason: voice_clone_not_found.

    Значение подставляется прямо в строку запроса выше.

Возможные ответы

200

Успех. Полезная нагрузка — в поле data.

Пример тела
{
  "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
  }
}
Поля ответа
successобязательное

Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь true, а ошибка приходит телом другой формы, где этого поля может не быть вовсе.

boolean
messageобязательное

Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются.

string
dataобязательное

Клон в статусе archived.

FishAudioVoiceCloneFishAudioVoiceClone
idобязательное

UUID клона. Его подставляют в пути /voices/fishaudio/clones/{voiceClone}/…; в шаблон он НЕ идёт — туда идёт voice_id.

string
providerобязательное

Провайдер клона — всегда fishaudio.

Значенияfishaudio
string
display_nameобязательное

Название клона, заданное при создании.

string
languageобязательное

Справочная метка языка (ISO 639-1) либо null, если не передавалась. На клонирование не влияет.

string
descriptionобязательное

Ваше описание клона либо null.

string
statusобязательное

Статус: pending → cloning → ready либо failed; archived — снят владельцем; banned — заблокирован модератором. Озвучивать можно только ready.

string
voice_idобязательное

Идентификатор голоса Fish Audio (строка из 32 hex-символов, не UUID) — значение для tts_settings.voice_id шаблона с service_key: fishaudio. Есть только у ready, иначе null.

string
attemptsобязательное

Номер попытки клонирования: 1 при создании, +1 за каждый повтор.

integer
errorобязательное

Причина отказа последней попытки; null, пока отказа не было.

может быть null
object
reasonобязательное

Машинный код отказа: processing_error, max_retries, network, timeout, dispatch_failed, unbanned (клон разбанен, но голоса у него не было). Повторить попытку — POST /voices/fishaudio/clones/{voiceClone}/retry; если processing_error повторяется, смените образец.

string
messageобязательное

Пояснение к отказу для человека либо null. Ветвитесь по reason, а не по тексту.

string
created_atобязательное

Когда клон создан.

string
completed_atобязательное

Когда клон стал ready; null до этого.

string
failed_atобязательное

Когда последняя попытка завершилась отказом; null, если отказа нет.

string
banned_atобязательное

Когда клон заблокирован модератором (status = banned); null, если блокировки нет.

string
ban_reasonобязательное

Причина блокировки от модератора либо null. Заблокированный клон нельзя ни использовать, ни архивировать.

string
401

Невалидный или отсутствующий X-API-KEY

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Поля ответа
successобязательное

Всегда false в ответах об ошибке.

boolean
messageобязательное

Текст ошибки на языке ключа (задаётся заголовком X-Locale).

string
dataобязательное

Всегда null, когда запрос отклонён до обработки.

может быть null
null
403

У ключа нет права voices.write

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Поля ответа
successобязательное

Всегда false в ответах об ошибке.

boolean
messageобязательное

Текст ошибки на языке ключа (задаётся заголовком X-Locale).

string
404

Клон не найден или чужой (reason: voice_clone_not_found). voiceClone не в формате UUID — маршрут не совпал, reason: endpoint_not_found (подсказка с адресом документации, llm.md §6.1)

Разобрать этот ответ
Пример тела
{
  "success": false,
  "message": "Voice clone not found.",
  "reason": "voice_clone_not_found",
  "error_code": "voice_clone_not_found"
}
Поля ответа
successобязательное

Всегда false у ошибок.

boolean
messageобязательное

Причина отказа словами, на языке аккаунта. Для показа пользователю; ветвиться по ней нельзя — формулировки меняются.

string
reasonобязательное

Машиночитаемая причина бизнес-отказа (например, input_expired, insufficient_balance). Ветвите обработку по ней, а не по тексту message.

string
error_codeобязательное

Тот же машинный код, что в reason, — второе имя поля. Значения всегда совпадают.

string

Скормить страницу ИИ

Открыть .mdllm.md

спека 0.0.1