POST /orders /{order} /items /retry-failed
Ставит на повтор все упавшие чанки заказа одним вызовом — вместо обхода
POST .../items/{item}/retry по каждому. Тело запроса пустое.
Берутся только чанки в статусе failed (техническая ошибка), у которых нет
более поздней успешной версии. policy_flagged сюда НЕ входит: повтор с тем
же текстом будет отклонён снова, такие чанки перезапускают поштучно с
исправленным text.
Ответ 202 — план принят, работа идёт в фоне. Тело содержит queued
(поставленные на повтор) и skipped с машинной причиной на каждый пропуск:
superseded (уже есть успешная версия), active_retry_exists,
policy_flagged, max_attempts_reached, insufficient_funds.
Опрашивайте GET .../items либо слушайте WebSocket — синхронного результата
у этого вызова нет по построению.
Биллинг: переиспользует заблокированный остаток каждого чанка — новых средств и токен-квоты ключа не расходует.
Отказы на уровне заказа приходят телом {success: false, message, reason},
где reason — машинный код: 409 stitch_in_progress (по заказу идёт
склейка); 422 invalid_order_status (заказ не в статусе
partially_completed), generative_not_supported (тип задачи не
поддерживает повтор), nothing_to_retry (перезапускать нечего) либо
retry_config_outdated (настройки заказа не проходят текущую схему сервиса —
повтор не ставится, нужен новый заказ); 503 service_maintenance (приём
сервиса, исполняющего заказ, приостановлен). Эти отказы синхронны: план не
принимается, bulk_retry.completed не приходит.
Отдельными схемами в спеке они не описаны: коды рождаются в
бизнес-исключении, а не в валидации запроса.
Требуемое право ключа: orders.write. Недоступно для sfx/music.
На этой странице(4)
Параметры
Поля ввода живут прямо в строке запроса: подставьте значение — и получите готовый URL. Ниже — тип, обязательность и допустимые значения каждого параметра.
- stringв путиобязательный
UUID заказа — 36 символов вида
9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c, не число.Берётся из поля
id: его возвращаетPOST /ordersпри создании иGET /ordersв списке. Чужой заказ по вашему ключу не откроется — придёт404.Значение подставляется прямо в строку запроса выше.
Возможные ответы
202План принят, перезапуск сбойных чанков поставлен в очередь. Следите за статусом заказа.
План принят, перезапуск сбойных чанков поставлен в очередь. Следите за статусом заказа.
{
"success": true,
"message": "Failed chunks queued for retry",
"data": {
"queued_count": 2,
"queued": [
{
"item_id": "f8a9b0c1-2d3e-4f4a-8b5c-6d7e8f9a0b1c",
"chunk_index": 2
},
{
"item_id": "c1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
"chunk_index": 5
}
],
"skipped_count": 1,
"skipped": [
{
"item_id": "d2e3f4a5-6b7c-4d8e-8f9a-1b2c3d4e5f6a",
"chunk_index": 7,
"reason": "max_attempts_reached",
"reason_label": "The chunk has run out of retry attempts."
}
]
}
}Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь true, а ошибка приходит телом другой формы, где этого поля может не быть вовсе.
Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются.
dataобязательноеПолезная нагрузка ответа.
object
Полезная нагрузка ответа.
Сколько фрагментов принято к перезапуску.
Что именно поставлено в очередь. Отслеживать выполнение — по заказу целиком, отдельных событий на фрагмент нет.
Сколько фрагментов перезапустить не удалось. Ненулевое значение — нормальный исход, а не ошибка: часть причин неустранима.
Пропущенные фрагменты с причиной по каждому.
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Нет доступа к заказу или у ключа нет права orders.write
Нет доступа к заказу или у ключа нет права orders.write
{
"success": false,
"message": "This API key does not have permission to perform this action."
}Error overview.
404Заказ не найден
Заказ не найден
{
"success": false,
"message": "Resource not found."
}Error overview.
События, которые это порождает
Ход выполнения приезжает по WebSocket: опрашивать заказ в цикле не обязательно. Подписка требует того же права, что и чтение заказов.
Рядом
Об этом словами
Скормить страницу ИИ
спека 0.0.1