DELETE /voices /fishaudio /clones /{voiceClone}
Снимает клон: он переходит в archived, в новые заказы больше не берётся, образец
голоса удаляется, место в потолке тарифа освобождается. Заказы, уже принятые с этим
голосом, не затрагиваются. Идемпотентно: повторный вызов отдаёт тот же архивный клон.
Работает без проверки подписки.
Требуемое право ключа: voices.write.
На этой странице(3)
Параметры
Поля ввода живут прямо в строке запроса: подставьте значение — и получите готовый URL. Ниже — тип, обязательность и допустимые значения каждого параметра.
- 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.
Успех. Полезная нагрузка — в поле 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
}
}Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь true, а ошибка приходит телом другой формы, где этого поля может не быть вовсе.
Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются.
dataобязательноеКлон в статусе archived.
FishAudioVoiceCloneFishAudioVoiceClone
Клон в статусе archived.
UUID клона. Его подставляют в пути /voices/fishaudio/clones/{voiceClone}/…; в шаблон он НЕ идёт — туда идёт voice_id.
Провайдер клона — всегда fishaudio.
Название клона, заданное при создании.
Справочная метка языка (ISO 639-1) либо null, если не передавалась. На клонирование не влияет.
Ваше описание клона либо null.
Статус: pending → cloning → ready либо failed; archived — снят владельцем; banned — заблокирован модератором. Озвучивать можно только ready.
Идентификатор голоса Fish Audio (строка из 32 hex-символов, не UUID) — значение для tts_settings.voice_id шаблона с service_key: fishaudio. Есть только у ready, иначе null.
Номер попытки клонирования: 1 при создании, +1 за каждый повтор.
errorобязательноеПричина отказа последней попытки; null, пока отказа не было.
может быть nullobject
Причина отказа последней попытки; null, пока отказа не было.
Машинный код отказа: processing_error, max_retries, network, timeout, dispatch_failed, unbanned (клон разбанен, но голоса у него не было). Повторить попытку — POST /voices/fishaudio/clones/{voiceClone}/retry; если processing_error повторяется, смените образец.
Пояснение к отказу для человека либо null. Ветвитесь по reason, а не по тексту.
Когда клон создан.
Когда клон стал ready; null до этого.
Когда последняя попытка завершилась отказом; null, если отказа нет.
Когда клон заблокирован модератором (status = banned); null, если блокировки нет.
Причина блокировки от модератора либо null. Заблокированный клон нельзя ни использовать, ни архивировать.
401Невалидный или отсутствующий X-API-KEY
Невалидный или отсутствующий X-API-KEY
{
"success": false,
"message": "API key is missing. Provide it in the X-API-KEY header.",
"data": null
}Всегда false в ответах об ошибке.
Текст ошибки на языке ключа (задаётся заголовком X-Locale).
Всегда null, когда запрос отклонён до обработки.
403У ключа нет права voices.write
У ключа нет права voices.write
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Всегда false в ответах об ошибке.
Текст ошибки на языке ключа (задаётся заголовком X-Locale).
404Клон не найден или чужой (reason: voice_clone_not_found). voiceClone не в формате UUID — маршрут не совпал, reason: endpoint_not_found (подсказка с адресом документации, llm.md §6.1)
Клон не найден или чужой (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"
}Всегда false у ошибок.
Причина отказа словами, на языке аккаунта. Для показа пользователю; ветвиться по ней нельзя — формулировки меняются.
Машиночитаемая причина бизнес-отказа (например, input_expired, insufficient_balance). Ветвите обработку по ней, а не по тексту message.
Тот же машинный код, что в reason, — второе имя поля. Значения всегда совпадают.
Рядом
Объекты
Соседние операции
Скормить страницу ИИ
спека 0.0.1