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

GET/orders/{order}/items/{item}

Возвращает детальную информацию об элементе заказа.

Включает:

  • Тип и статус элемента
  • Оригинальный и текущий текст (длины original_text_length / current_text_length)
  • Результат (result_file) при наличии
  • Флаги can_retry / can_regenerate
  • failure_reason — причина сбоя человеко-читаемым текстом (при failed/policy_flagged)

failure_reason — локализованный текст, а не машинный код. Строка переводится по локали запроса и предназначена для показа человеку; ветвить на ней логику нельзя — для этого есть status. Сырые детали ошибки (metadata, policy_reason) остаются только в админ-контексте. У остальных статусов поле равно null; null возможен и у упавшего элемента, если причина не распознана. См. плейбук обработки сбоев в POST .../retry ниже.

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

Параметры

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

GEThttps://api.lumean.app/api/public/orders//items/
  • stringв путиобязательный

    UUID заказа — 36 символов вида 9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c, не число.

    Берётся из поля id: его возвращает POST /orders при создании и GET /orders в списке. Чужой заказ по вашему ключу не откроется — придёт 404.

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

  • stringв путиобязательный

    UUID фрагмента заказа (чанка) — 36 символов, не число и не порядковый номер.

    Берётся из поля id элемента: GET /orders/{order}/items отдаёт список, тот же набор лежит в items[] детального ответа заказа. Порядковый номер фрагмента — это соседнее поле chunk_index, в путь оно НЕ подставляется.

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

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

200

Информация об элементе

Пример тела
{
  "success": true,
  "message": "Order item loaded successfully.",
  "data": {
    "id": "d4e5f6a7-8b9c-4d0e-8f1a-2b3c4d5e6f7a",
    "order_id": "9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c",
    "item_type": "chunk",
    "chunk_index": 0,
    "parent_item_id": null,
    "original_text_length": 240,
    "current_text_length": 240,
    "price_units": 240,
    "consumed_units": 240,
    "remaining_locked": 0,
    "status": "completed",
    "result_file": {
      "path": "storage/501/orders/9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c/output/chunks/0/result.mp3",
      "storage": "s3",
      "name": "chunk_0.mp3",
      "size": 512340,
      "mime_type": "audio/mpeg",
      "size_formatted": "500.33 KB"
    },
    "attempt_number": 1,
    "can_retry": false,
    "can_regenerate": true,
    "created_at": "2026-07-17T12:00:05+00:00",
    "updated_at": "2026-07-17T12:02:10+00:00"
  }
}
Поля ответа
successобязательное

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

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

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

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

Один фрагмент заказа.

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

UUID чанка. Подставляется в пути /orders/{order}/items/{item}/….

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

UUID заказа, которому принадлежит чанк.

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

Природа записи: chunk — исходный фрагмент, retry — бесплатный повтор упавшего фрагмента, regeneration — платная переделка готового.

Повторы и перегенерации живут отдельными записями с тем же chunk_index: история попыток сохраняется целиком, а звучит в результате последняя.

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

Порядковый номер фрагмента в заказе, с нуля. Задаёт порядок склейки итогового файла.

может быть null
integer
paragraph_indexобязательное

Номер абзаца, к которому относится фрагмент, — заполняется только у исходных фрагментов абзацного заказа. null и в обычном режиме, и у записей повтора либо перегенерации: у них своей привязки к абзацу нет, её берут у родительского фрагмента через parent_item_id. Режим включается ключом generation_mode в config_override заказа.

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

UUID исходного чанка — у записей retry и regeneration. У самого исходного чанка null.

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

Длина текста, с которой фрагмент создавался. Служит потолком для text в regenerate.

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

Длина актуального текста фрагмента: после перегенерации отличается от original_text_length.

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

Стоимость фрагмента в токенах — это не деньги. Денежная сумма лежит у самого заказа, в его поле price_units (там LMC, здесь токены; поля называются одинаково, единицы разные).

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

Сколько токенов фактически списано по этому фрагменту. У незавершённого фрагмента — 0.

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

Сколько токенов ещё зарезервировано под фрагмент. Обнуляется, когда фрагмент завершается или отменяется.

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

Состояние фрагмента: pending — ждёт воркера, processing — в работе, completed — готов, failed — техническая ошибка, policy_flagged — отклонён контентной политикой.

Разница между двумя последними определяет способ лечения: failed чинится повтором как есть, policy_flagged — только переформулировкой текста, повтор с прежним будет отклонён снова.

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

Файл готового фрагмента: абсолютный путь либо структура с путём и размером. Скачивается через POST /storage/url, как и файлы заказа. null, пока фрагмент не готов.

может быть null
object | string | null
duration_msобязательное

Длительность полученного аудио в миллисекундах — длина записи, а не время генерации. У не-аудио задач null.

может быть null
integer
attempt_numberобязательное

Номер попытки для этого фрагмента, начиная с 1. Растёт с каждым повтором.

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

Разрешён ли бесплатный повтор прямо сейчас. Учитывает статус, тип задачи и исчерпание попыток — проверять условия самому не нужно.

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

Разрешена ли платная перегенерация прямо сейчас. Доступна только для завершённых фрагментов.

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

Когда фрагмент создан, ISO 8601.

может быть nulldate-time
string
updated_atобязательное

Когда фрагмент последний раз менялся, ISO 8601.

может быть nulldate-time
string
failure_reasonнеобязательное

Причина падения в машиночитаемом виде — есть только у failed и policy_flagged. Остальным приходит null.

может быть 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

Нет доступа к заказу или у ключа нет права orders.read

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

Error overview.

string
404

Элемент не найден

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

Error overview.

string

События, которые это порождает

Ход выполнения приезжает по WebSocket: опрашивать заказ в цикле не обязательно. Подписка требует того же права, что и чтение заказов.

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

Открыть .mdllm.md

спека 0.0.1