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

Объекты API

Схемы, из которых собраны ответы. Полная таблица каждого объекта существует ровно один раз: страницы операций ссылаются сюда, а не разворачивают её у себя заново. У объекта и у каждого его поля свой якорь — на них можно ссылаться в переписке.

AiGatewayCatalogModel

object
keyобязательное

То самое имя, которое надо ставить в поле model запроса. Оно же единственное принимаемое: гейтвей резолвит его точным совпадением и уже сам подставляет имя модели на стороне поставщика.

string
nameобязательное
string
familyобязательное
string
kindобязательное

chat | image. Модель image зовут через /v1/images (или чатом — ответ придёт markdown-картинкой), цена — price.request.

string
descriptionобязательное
может быть null
string
context_windowобязательное
string
max_output_tokensобязательное
string
capabilitiesобязательное
string
pricing_modeобязательное
string
priceобязательное

null — отпускной нет: ни одна пара не продаёт модель не в минус. Нули здесь обещали бы бесплатную модель.

может быть null
object
*необязательное
произвольные ключи
object
billing_availableобязательное

Вызываема ли модель платным ключом. false при живой модели — она видна ради своего ключа (BYOK), а платный вызов откажет.

boolean
byokобязательное
string
Показать пример
{
  "key": "string",
  "name": "string",
  "family": "string",
  "kind": "string",
  "description": "string",
  "context_window": "string",
  "max_output_tokens": "string",
  "capabilities": "string",
  "pricing_mode": "string",
  "price": {},
  "billing_available": true,
  "byok": "string"
}

Используется в операциях: 2

Asset

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

Внутренний идентификатор актива.

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

Код актива: LUMC — внутренняя валюта, TOKEN — токены генерации.

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

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

Значенияmoneyunit
AssetKindAssetKind
precisionобязательное

Число десятичных знаков. Ключевое поле: любая целая сумма этого актива делится на 10^precision, чтобы получить реальное значение. Не считайте, что делитель равен 100.

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

Название актива для показа, на языке аккаунта.

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

Когда актив выведен из обращения, ISO 8601. null у действующего.

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

Когда актив заведён, ISO 8601.

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

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

может быть nulldate-time
string
Показать пример
{
  "id": 1,
  "code": "string",
  "kind": "money",
  "precision": 1,
  "name": "string",
  "deleted_at": "string",
  "created_at": "string",
  "updated_at": "string"
}

BrowseTemplates

object
itemsобязательное

Содержимое текущей папки — вперемешку папки и шаблоны, в порядке сортировки. Различать их можно по наличию service_key: он есть только у шаблона.

array<TemplateItem>TemplateItem
элемент массива
typeобязательное
Значенияtemplate
string
idобязательное
string
nameобязательное
string
slugнеобязательное
string
service_keyнеобязательное
string
serviceнеобязательное
может быть null
Service | null
configнеобязательное
object | string
is_publicнеобязательное
string
folder_idнеобязательное
string
created_atобязательное
string
updated_atобязательное
string
templates_countнеобязательное
string | integer
current_pageобязательное

Номер текущей страницы, с 1.

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

Номер последней страницы. Равен current_page — значит, дальше ничего нет.

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

Сколько записей на странице.

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

Сколько записей в папке всего, по всем страницам.

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

Папка, содержимое которой показано. null — вы в корне.

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

UUID текущей папки — его подставляют в folder_id, чтобы открыть её снова.

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

Название текущей папки.

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

Путь от корня до текущей папки, от предка к потомку — готов к отрисовке навигационной цепочки.

array<object>
элемент массива
idнеобязательное

UUID папки-предка — значение для folder_id, чтобы подняться на этот уровень.

uuid
string
nameнеобязательное

Название папки-предка.

string
Показать пример
{
  "items": [
    {
      "type": "template",
      "id": "string",
      "name": "string",
      "slug": "string",
      "service_key": "string",
      "service": {
        "id": 1,
        "code": "string",
        "name": "string",
        "display_name": "string",
        "label": null,
        "payg_access": "string",
        "billing_mode": "subscription",
        "unit_asset_id": 1,
        "unit_asset": {
          "id": null,
          "code": null,
          "kind": null,
          "precision": null,
          "name": null,
          "deleted_at": null,
          "created_at": null,
          "updated_at": null
        },
        "required_entitlement_id": 1,
        "required_entitlement": {
          "id": null,
          "code": null,
          "name": null,
          "metadata": null,
          "is_active": null,
          "created_at": null,
          "updated_at": null,
          "is_unlimited": null
        },
        "units_per_call": 1,
        "units_per_char": 1,
        "units_per_image": 1,
        "units_per_second": 1,
        "min_billable_chars": 1,
        "lumcoin_per_token": 1,
        "lumc_precision": 1,
        "price_lumc_minor": 1,
        "unit_size": 1,
        "uses_money_first_pricing": true,
        "rate_unit": "string",
        "display_category": "string",
        "is_premium": true,
        "display_order": 1,
        "metadata": {},
        "is_active": true,
        "maintenance_mode": true,
        "access_level": "string",
        "maintenance_auto_resume": true,
        "maintenance_started_at": "string",
        "maintenance_note": "string",
        "created_at": "string",
        "updated_at": "string"
      },
      "config": {},
      "is_public": "string",
      "folder_id": "string",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1,
  "current_folder": {
    "id": "string",
    "name": "string"
  },
  "breadcrumbs": [
    {
      "id": "string",
      "name": "string"
    }
  ]
}

Используется в операциях: 1

CartesiaVoiceClone

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

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

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

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

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

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

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

Язык образца (ISO 639-1) либо null, если не передавался.

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

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

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

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

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

Идентификатор голоса Cartesia — значение для tts_settings.voice_id шаблона с service_key: cartesia. Есть только у ready, иначе null.

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

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

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

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

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

Машинный код отказа: processing_error, max_retries, network, timeout, dispatch_failed. Повторить попытку — POST /voices/cartesia/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
Показать пример
{
  "id": "string",
  "provider": "cartesia",
  "display_name": "string",
  "language": "string",
  "description": "string",
  "status": "string",
  "voice_id": "string",
  "attempts": 1,
  "error": {
    "reason": "string",
    "message": "string"
  },
  "created_at": "string",
  "completed_at": "string",
  "failed_at": "string",
  "banned_at": "string",
  "ban_reason": "string"
}

CartesiaVoiceCloneStatus

string

Статус клона голоса Cartesia: pending — в очереди, cloning — клонируется, ready — готов, есть voice_id; failed — отказ (причина в error), можно повторить; archived — снят владельцем; banned — заблокирован модератором (причина в ban_reason).

  • pending
  • cloning
  • ready
  • failed
  • archived
  • banned
Показать пример
"pending"

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

CartesiaVoice

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

Внутренний id записи каталога. Для озвучки не нужен — в шаблон идёт voice_id.

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

Идентификатор голоса Cartesia — значение для tts_settings.voice_id шаблона с service_key: cartesia.

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

Название голоса.

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

Описание голоса от Cartesia либо null.

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

Язык голоса (ISO 639-1) либо null.

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

Пол голоса: masculine, feminine, gender_neutral либо null.

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

Ссылка на демо-запись голоса либо null.

string
Показать пример
{
  "id": "string",
  "voice_id": "string",
  "name": "string",
  "description": "string",
  "language": "string",
  "gender": "string",
  "preview_url": "string"
}

Используется в операциях: 1

CreateCartesiaVoiceCloneRequest

object

Новый клон голоса Cartesia: образец записи в base64 и согласие на использование голоса. Принимается как application/json.

display_nameобязательное

Название клона — видно только вам, до 128 символов.

≤ 128 симв.
string
Пример Мой голос
reference_audioобязательное

Образец голоса в base64; data URI (data:audio/wav;base64,…) тоже подходит. До 20 МБ после декодирования; формат — обычная аудиозапись (WAV, MP3 и т. п.). Нужна чистая речь одного человека без музыки и шума.

string
Пример UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQAAAAA=
languageнеобязательное

Язык образца, код ISO 639-1 из списка. Не передан — язык по умолчанию воркера.

может быть null
Значенияenruukdefresptitnlplsvtrcsskbgrohuelfidanohrkahearhibntateguknmlmrpajakozhvithidmstl
string
Пример ru
descriptionнеобязательное

Ваше описание клона, до 500 символов.

может быть null≤ 500 симв.
string
voice_ownerнеобязательное

Чей голос в образце: self — ваш, third_party — чужой, и у вас есть согласие его владельца.

может быть null
Значенияselfthird_party
string
Пример self
Показать пример
{
  "display_name": "Мой голос",
  "reference_audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQAAAAA=",
  "language": "ru",
  "description": "string",
  "consent_biometric": true,
  "voice_owner": "self",
  "consent_confirmed": true
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

CreateFishAudioVoiceCloneRequest

object

Новый клон голоса Fish Audio: образец записи в base64 и согласие на использование голоса. Принимается как application/json.

display_nameобязательное

Название клона — видно только вам, до 128 символов.

≤ 128 симв.
string
Пример Мой голос
reference_audioобязательное

Образец голоса в base64; data URI (data:audio/wav;base64,…) тоже подходит. До 20 МБ после декодирования; формат — обычная аудиозапись (WAV, MP3 и т. п.). Нужна чистая речь одного человека без музыки и шума.

string
Пример UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQAAAAA=
languageнеобязательное

Справочная метка клона, двухбуквенный код ISO 639-1 (ru, en, …). У голоса Fish Audio своего языка нет, провайдеру метка не передаётся.

может быть nullшаблон: ^[a-z]{2}$
string
Пример ru
descriptionнеобязательное

Ваше описание клона, до 500 символов.

может быть null≤ 500 симв.
string
voice_ownerнеобязательное

Чей голос в образце: self — ваш, third_party — чужой, и у вас есть согласие его владельца.

может быть null
Значенияselfthird_party
string
Пример self
Показать пример
{
  "display_name": "Мой голос",
  "reference_audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQAAAAA=",
  "language": "ru",
  "description": "string",
  "consent_biometric": true,
  "voice_owner": "self",
  "consent_confirmed": true
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

Entitlement

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

Внутренний идентификатор возможности.

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

Код возможности — по нему сервис проверяет, открыт ли он вам.

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

Название возможности для показа, на языке аккаунта.

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

Дополнительные атрибуты возможности. Набор ключей произвольный.

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

Действует ли возможность.

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

Когда возможность заведена, ISO 8601.

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

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

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

Безлимитна ли эта возможность в рамках тарифа. Поле присутствует только когда право отдаётся в контексте плана.

boolean
Показать пример
{
  "id": 1,
  "code": "string",
  "name": "string",
  "metadata": {},
  "is_active": true,
  "created_at": "string",
  "updated_at": "string",
  "is_unlimited": true
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

FishAudioVoiceClone

object
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
Показать пример
{
  "id": "string",
  "provider": "fishaudio",
  "display_name": "string",
  "language": "string",
  "description": "string",
  "status": "string",
  "voice_id": "string",
  "attempts": 1,
  "error": {
    "reason": "string",
    "message": "string"
  },
  "created_at": "string",
  "completed_at": "string",
  "failed_at": "string",
  "banned_at": "string",
  "ban_reason": "string"
}

FishAudioVoiceCloneStatus

string

Статус клона голоса Fish Audio: pending — в очереди, cloning — клонируется, ready — готов, есть voice_id; failed — отказ (причина в error), можно повторить; archived — снят владельцем; banned — заблокирован модератором (причина в ban_reason).

  • pending
  • cloning
  • ready
  • failed
  • archived
  • banned
Показать пример
"pending"

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

FishAudioVoice

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

Внутренний id записи каталога. Для озвучки не нужен — в шаблон идёт voice_id.

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

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

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

Название голоса.

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

Описание голоса от Fish Audio либо null.

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

Язык выгрузки каталога (ru, en, es) либо null.

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

Все языки голоса по данным Fish Audio.

string | array<string>
genderобязательное

Пол голоса: male, female либо null.

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

Теги голоса у Fish Audio.

string | array<string>
author_nameобязательное

Автор голоса у Fish Audio либо null.

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

Сколько раз голос использовали у Fish Audio — мера популярности; каталог отсортирован по ней.

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

Число лайков голоса у Fish Audio.

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

Временная ссылка (60 минут) на MP3-сэмпл голоса либо null, пока превью не скачано.

string
Показать пример
{
  "id": "string",
  "voice_id": "string",
  "name": "string",
  "description": "string",
  "language": "string",
  "languages": "string",
  "gender": "string",
  "tags": "string",
  "author_name": "string",
  "task_count": 1,
  "like_count": 1,
  "preview_url": "string"
}

Используется в операциях: 1

GetFileUrlRequest

object

Запрос временной ссылки на файл результата. Ссылку качайте обычным GET, без заголовка X-API-KEY.

pathобязательное

Путь файла целиком, как он пришёл в result.files[] или result.service_files[] заказа. Собирать путь вручную не нужно и не получится — он содержит служебные сегменты.

string
Пример storage/42/orders/9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c/result/output.mp3
downloadнеобязательное

При true ссылка помечается как attachment: файл скачается под человекочитаемым именем заказа, а не откроется во вкладке браузера.

по умолчанию false
boolean
number_baseнеобязательное

С какого числа нумеруются чанки в имени файла: 1 → первый чанк «001», 0 → «000». По умолчанию 1.

по умолчанию 1
Значения01
integer
number_paddingнеобязательное

Ширина номера чанка с ведущими нулями, 1..4: 3 → «007». По умолчанию 3. Держите одинаковым с запросом ZIP-архива, иначе один и тот же чанк называется по-разному поштучно и внутри архива.

по умолчанию 31..4
integer
Показать пример
{
  "path": "storage/42/orders/9f8b2c1a-4d3e-4f5a-8b9c-0d1e2f3a4b5c/result/output.mp3",
  "download": false,
  "number_base": 1,
  "number_padding": 3
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

GiftCodeBatch

object
uuidобязательное

Идентификатор партии.

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

Всегда reseller — партия выпущена с баланса реселлера.

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

Сколько кодов в партии.

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

Сумма номиналов кодов, миноры LMC.

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

Сумма номиналов, LMC.

number
cost_totalнеобязательное

Сколько списано с баланса реселлера (номиналы минус скидка), миноры LMC.

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

Списано с баланса реселлера, LMC.

number
discount_bpsнеобязательное

Личная скидка реселлера на момент выпуска, базисные пункты (1000 = 10%).

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

Коды партии с ПОЛНЫМ значением code — сохраните их: это деньги на предъявителя.

array<GiftCode>GiftCode
элемент массива
uuidобязательное

UUID кода. Его подставляют в пути GET /reseller/codes/{uuid} и POST /reseller/codes/{uuid}/cancel.

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

Код с маской, LUM-****-****-XXXX: его безопасно показывать в интерфейсе и писать в логи.

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

ПОЛНОЕ значение кода — то, что вводит получатель при активации. Публичный API реселлера отдаёт его в списке, при показе и при выпуске. Обращайтесь как с секретом: кто знает код, тот его и активирует.

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

Номинал кода в минимальных единицах LMC: real = nominal / 10^currency_asset.precision. Столько LMC получит активатор.

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

Тот же номинал в целых LMC — число, готовое к показу.

number
costнеобязательное

Сколько код стоил реселлеру с учётом скидки, в минимальных единицах LMC. Приходит только у кодов реселлера (source: reseller).

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

Та же стоимость в целых LMC. Приходит только у кодов реселлера.

number
discount_bpsнеобязательное

Скидка реселлера на момент выпуска, в базисных пунктах (100 = 1%). Позднейшая смена личной скидки этот код не меняет. Приходит только у кодов реселлера.

integer
sourceобязательное
string
fundingобязательное
string
statusобязательное
string
activatable_atобязательное

С какого момента код можно активировать: до него код заморожен. null — ограничения нет.

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

Когда код активирован. null, пока не активирован. Кто его активировал, API не раскрывает.

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

Когда реселлер отменил код. null, если код не отменялся.

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

Когда код выпущен.

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

Валюта сумм ответа — LMC. По precision суммы в минимальных единицах переводятся в целые LMC.

object
codeобязательное

Код актива, в котором выражены суммы.

ЗначенияLUMC
string
precisionобязательное

Сколько знаков после запятой у LMC: real = value / 10^precision.

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

Когда партия выпущена.

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

Валюта сумм ответа — LMC. По precision суммы в минимальных единицах переводятся в целые LMC.

object
codeобязательное

Код актива, в котором выражены суммы.

ЗначенияLUMC
string
precisionобязательное

Сколько знаков после запятой у LMC: real = value / 10^precision.

integer
Показать пример
{
  "uuid": "string",
  "source": "string",
  "codes_count": "string",
  "nominal_total": "string",
  "nominal_total_formatted": 1,
  "cost_total": "string",
  "cost_total_formatted": 1,
  "discount_bps": 1,
  "codes": [
    {
      "uuid": "string",
      "code_masked": "string",
      "code": "string",
      "nominal": "string",
      "nominal_formatted": 1,
      "cost": "string",
      "cost_formatted": 1,
      "discount_bps": 1,
      "source": "string",
      "funding": "string",
      "status": "string",
      "activatable_at": "string",
      "redeemed_at": "string",
      "cancelled_at": "string",
      "created_at": "string",
      "currency_asset": {
        "code": "LUMC",
        "precision": 1
      }
    }
  ],
  "created_at": "string",
  "currency_asset": {
    "code": "LUMC",
    "precision": 1
  }
}

Используется в операциях: 1

GiftCodeList

object
itemsобязательное

Записи текущей страницы в порядке сортировки списка.

array<GiftCode>GiftCode
элемент массива
uuidобязательное

UUID кода. Его подставляют в пути GET /reseller/codes/{uuid} и POST /reseller/codes/{uuid}/cancel.

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

Код с маской, LUM-****-****-XXXX: его безопасно показывать в интерфейсе и писать в логи.

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

ПОЛНОЕ значение кода — то, что вводит получатель при активации. Публичный API реселлера отдаёт его в списке, при показе и при выпуске. Обращайтесь как с секретом: кто знает код, тот его и активирует.

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

Номинал кода в минимальных единицах LMC: real = nominal / 10^currency_asset.precision. Столько LMC получит активатор.

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

Тот же номинал в целых LMC — число, готовое к показу.

number
costнеобязательное

Сколько код стоил реселлеру с учётом скидки, в минимальных единицах LMC. Приходит только у кодов реселлера (source: reseller).

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

Та же стоимость в целых LMC. Приходит только у кодов реселлера.

number
discount_bpsнеобязательное

Скидка реселлера на момент выпуска, в базисных пунктах (100 = 1%). Позднейшая смена личной скидки этот код не меняет. Приходит только у кодов реселлера.

integer
sourceобязательное
string
fundingобязательное
string
statusобязательное
string
activatable_atобязательное

С какого момента код можно активировать: до него код заморожен. null — ограничения нет.

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

Когда код активирован. null, пока не активирован. Кто его активировал, API не раскрывает.

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

Когда реселлер отменил код. null, если код не отменялся.

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

Когда код выпущен.

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

Валюта сумм ответа — LMC. По precision суммы в минимальных единицах переводятся в целые LMC.

object
codeобязательное

Код актива, в котором выражены суммы.

ЗначенияLUMC
string
precisionобязательное

Сколько знаков после запятой у LMC: real = value / 10^precision.

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

Номер текущей страницы, с единицы.

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

Номер последней страницы. Обход списка закончен, когда current_page равен last_page.

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

Размер страницы, применённый сервером.

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

Сколько записей всего по фильтру.

integer
Показать пример
{
  "items": [
    {
      "uuid": "string",
      "code_masked": "string",
      "code": "string",
      "nominal": "string",
      "nominal_formatted": 1,
      "cost": "string",
      "cost_formatted": 1,
      "discount_bps": 1,
      "source": "string",
      "funding": "string",
      "status": "string",
      "activatable_at": "string",
      "redeemed_at": "string",
      "cancelled_at": "string",
      "created_at": "string",
      "currency_asset": {
        "code": "LUMC",
        "precision": 1
      }
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1
}

Используется в операциях: 1

GiftCode

object
uuidобязательное

UUID кода. Его подставляют в пути GET /reseller/codes/{uuid} и POST /reseller/codes/{uuid}/cancel.

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

Код с маской, LUM-****-****-XXXX: его безопасно показывать в интерфейсе и писать в логи.

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

ПОЛНОЕ значение кода — то, что вводит получатель при активации. Публичный API реселлера отдаёт его в списке, при показе и при выпуске. Обращайтесь как с секретом: кто знает код, тот его и активирует.

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

Номинал кода в минимальных единицах LMC: real = nominal / 10^currency_asset.precision. Столько LMC получит активатор.

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

Тот же номинал в целых LMC — число, готовое к показу.

number
costнеобязательное

Сколько код стоил реселлеру с учётом скидки, в минимальных единицах LMC. Приходит только у кодов реселлера (source: reseller).

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

Та же стоимость в целых LMC. Приходит только у кодов реселлера.

number
discount_bpsнеобязательное

Скидка реселлера на момент выпуска, в базисных пунктах (100 = 1%). Позднейшая смена личной скидки этот код не меняет. Приходит только у кодов реселлера.

integer
sourceобязательное
string
fundingобязательное
string
statusобязательное
string
activatable_atобязательное

С какого момента код можно активировать: до него код заморожен. null — ограничения нет.

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

Когда код активирован. null, пока не активирован. Кто его активировал, API не раскрывает.

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

Когда реселлер отменил код. null, если код не отменялся.

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

Когда код выпущен.

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

Валюта сумм ответа — LMC. По precision суммы в минимальных единицах переводятся в целые LMC.

object
codeобязательное

Код актива, в котором выражены суммы.

ЗначенияLUMC
string
precisionобязательное

Сколько знаков после запятой у LMC: real = value / 10^precision.

integer
Показать пример
{
  "uuid": "string",
  "code_masked": "string",
  "code": "string",
  "nominal": "string",
  "nominal_formatted": 1,
  "cost": "string",
  "cost_formatted": 1,
  "discount_bps": 1,
  "source": "string",
  "funding": "string",
  "status": "string",
  "activatable_at": "string",
  "redeemed_at": "string",
  "cancelled_at": "string",
  "created_at": "string",
  "currency_asset": {
    "code": "LUMC",
    "precision": 1
  }
}

GiftCodeSource

string

Откуда код: куплен пользователем за деньги (purchase) или выпущен реселлером со своего баланса (reseller).

  • purchase
  • reseller
Показать пример
"purchase"

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

GiftCodeStatus

string

Статус подарочного кода: active — выпущен и ждёт активации (возможно, ещё заморожен до activatable_at); refunding — идёт возврат денег, активация и отмена недоступны; redeemed — активирован, номинал на балансе активатора; refunded — деньги возвращены покупателю на карту; cancelled — реселлер отменил код, стоимость вернулась на его баланс; annulled — аннулирован без возврата денег.

  • active
  • refunding
  • redeemed
  • refunded
  • cancelled
  • annulled
Показать пример
"active"

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

IssueGiftCodesRequest

object

Выпуск кодов с баланса реселлера. Заголовок Idempotency-Key необязателен, но рекомендуется: с ним сетевой повтор не выпустит вторую партию.

nominalsобязательное

Номиналы кодов в LMC, по одному числу на код: сколько кодов — столько элементов. Допустимы числа и десятичные строки; номинал — из готовых в GET /reseller/settings либо между min_nominal и max_nominal. Число элементов ограничено limits.max_codes_per_issue из GET /reseller.

мин. элементов: 1макс. элементов: 1000
array<number>
Пример [100,100,250]
Показать пример
{
  "nominals": [
    100,
    100,
    250
  ]
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

LumVoiceList

object
itemsобязательное

Записи текущей страницы в порядке сортировки списка.

array<LumVoice>LumVoice
элемент массива
idобязательное

UUID голоса. Кладётся в config.voice_id шаблона; для путей /voices/{voice} — он же.

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

Название голоса для показа.

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

Описание голоса от автора: тембр, манера, сценарии использования.

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

Пол голоса.

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

Акцент или региональный вариант произношения.

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

Язык, на котором голос звучит по умолчанию, ISO-639-1.

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

Состояние клонирования голоса. Использовать в заказах можно только полностью готовый.

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

Стадия публикации: черновик, на модерации, опубликован. Определяет, виден ли голос в общем каталоге GET /voices/public.

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

Разрешил ли автор использовать голос другим. Без этого флага голос не попадает в каталог GET /voices/public, а у тех, кто уже добавил его в свою библиотеку, запись становится недоступной.

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

Когда собраны демо-фрагменты, ISO 8601. null — превью ещё нет.

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

Когда голос создан, ISO 8601.

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

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

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

Метки голоса для поиска и фильтрации. Полный справочник — GET /voices/tags.

array<VoiceTag>VoiceTag
элемент массива
idобязательное

Внутренний идентификатор метки.

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

Код метки — устойчивое значение для фильтрации, в отличие от переводимого name.

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

Название метки на языке аккаунта.

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

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

может быть null
string
colorобязательное

Цвет метки в HEX — подсказка для оформления.

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

Вес сортировки в списке меток: меньше — выше.

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

Языки, на которые голос склонирован, с состоянием каждого клона. Заказ возможен только на готовом языке.

array<VoiceLanguage>VoiceLanguage
элемент массива
idобязательное

Внутренний идентификатор языковой версии голоса.

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

Код языка, ISO-639-1. Он же — ключ в preview_urls.

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

Состояние клонирования для этого языка. Заказ принимается только на языке, где клон готов.

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

Длительность референсной записи в миллисекундах — на ней обучен клон.

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

Версия обученной модели. Растёт при переобучении голоса.

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

Почему клонирование не удалось. null, если сбоя не было.

может быть null
string
clone_started_atобязательное

Когда клонирование началось, ISO 8601.

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

Когда клонирование завершилось, ISO 8601. null — ещё идёт либо не удалось.

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

Когда языковая версия последний раз менялась, ISO 8601.

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

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

object
*необязательное
может быть nullпроизвольные ключи
string
current_pageобязательное

Номер текущей страницы, с единицы.

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

Номер последней страницы. Обход списка закончен, когда current_page равен last_page.

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

Размер страницы, применённый сервером.

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

Сколько записей всего по фильтру.

integer
Показать пример
{
  "items": [
    {
      "id": "string",
      "display_name": "string",
      "description": "string",
      "gender": "string",
      "accent": "string",
      "default_language_code": "string",
      "voice_status": "string",
      "publication_status": "string",
      "allow_usage_in_orders": true,
      "preview_generated_at": "string",
      "created_at": "string",
      "updated_at": "string",
      "tags": [
        {
          "id": 1,
          "code": "string",
          "name": "string",
          "description": "string",
          "color": "string",
          "sort_order": 1
        }
      ],
      "languages": [
        {
          "id": 1,
          "language_code": "string",
          "status": "string",
          "reference_duration_ms": 1,
          "model_version": 1,
          "failure_reason": "string",
          "clone_started_at": "string",
          "clone_completed_at": "string",
          "updated_at": "string"
        }
      ],
      "preview_urls": {}
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1
}

Используется в операциях: 1

LumVoice

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

UUID голоса. Кладётся в config.voice_id шаблона; для путей /voices/{voice} — он же.

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

Название голоса для показа.

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

Описание голоса от автора: тембр, манера, сценарии использования.

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

Пол голоса.

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

Акцент или региональный вариант произношения.

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

Язык, на котором голос звучит по умолчанию, ISO-639-1.

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

Состояние клонирования голоса. Использовать в заказах можно только полностью готовый.

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

Стадия публикации: черновик, на модерации, опубликован. Определяет, виден ли голос в общем каталоге GET /voices/public.

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

Разрешил ли автор использовать голос другим. Без этого флага голос не попадает в каталог GET /voices/public, а у тех, кто уже добавил его в свою библиотеку, запись становится недоступной.

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

Когда собраны демо-фрагменты, ISO 8601. null — превью ещё нет.

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

Когда голос создан, ISO 8601.

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

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

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

Метки голоса для поиска и фильтрации. Полный справочник — GET /voices/tags.

array<VoiceTag>VoiceTag
элемент массива
idобязательное

Внутренний идентификатор метки.

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

Код метки — устойчивое значение для фильтрации, в отличие от переводимого name.

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

Название метки на языке аккаунта.

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

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

может быть null
string
colorобязательное

Цвет метки в HEX — подсказка для оформления.

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

Вес сортировки в списке меток: меньше — выше.

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

Языки, на которые голос склонирован, с состоянием каждого клона. Заказ возможен только на готовом языке.

array<VoiceLanguage>VoiceLanguage
элемент массива
idобязательное

Внутренний идентификатор языковой версии голоса.

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

Код языка, ISO-639-1. Он же — ключ в preview_urls.

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

Состояние клонирования для этого языка. Заказ принимается только на языке, где клон готов.

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

Длительность референсной записи в миллисекундах — на ней обучен клон.

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

Версия обученной модели. Растёт при переобучении голоса.

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

Почему клонирование не удалось. null, если сбоя не было.

может быть null
string
clone_started_atобязательное

Когда клонирование началось, ISO 8601.

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

Когда клонирование завершилось, ISO 8601. null — ещё идёт либо не удалось.

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

Когда языковая версия последний раз менялась, ISO 8601.

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

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

object
*необязательное
может быть nullпроизвольные ключи
string
Показать пример
{
  "id": "string",
  "display_name": "string",
  "description": "string",
  "gender": "string",
  "accent": "string",
  "default_language_code": "string",
  "voice_status": "string",
  "publication_status": "string",
  "allow_usage_in_orders": true,
  "preview_generated_at": "string",
  "created_at": "string",
  "updated_at": "string",
  "tags": [
    {
      "id": 1,
      "code": "string",
      "name": "string",
      "description": "string",
      "color": "string",
      "sort_order": 1
    }
  ],
  "languages": [
    {
      "id": 1,
      "language_code": "string",
      "status": "string",
      "reference_duration_ms": 1,
      "model_version": 1,
      "failure_reason": "string",
      "clone_started_at": "string",
      "clone_completed_at": "string",
      "updated_at": "string"
    }
  ],
  "preview_urls": {}
}

Используется в операциях: 3

OrderList

object
itemsобязательное

Заказы текущей страницы.

array<Order>Order
Пример []
current_pageобязательное

Номер текущей страницы, начиная с 1.

integer
Пример 1
last_pageобязательное

Номер последней страницы.

integer
Пример 1
per_pageобязательное

Элементов на странице.

integer
Пример 20
totalобязательное

Всего элементов по фильтру.

integer
Пример 0
Показать пример
{
  "items": [],
  "current_page": 1,
  "last_page": 1,
  "per_page": 20,
  "total": 0
}

Используется в операциях: 1

OrderItem

object
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
Показать пример
{
  "id": "string",
  "order_id": "string",
  "item_type": "string",
  "chunk_index": 1,
  "paragraph_index": "string",
  "parent_item_id": "string",
  "original_text_length": 1,
  "current_text_length": 1,
  "price_units": 1,
  "consumed_units": 1,
  "remaining_locked": 1,
  "status": "string",
  "result_file": {},
  "duration_ms": 1,
  "attempt_number": 1,
  "can_retry": true,
  "can_regenerate": true,
  "created_at": "string",
  "updated_at": "string",
  "failure_reason": "string"
}

Order

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

UUID заказа. Его подставляют в пути /orders/{order}/… и передают в POST /orders/{order}/retry.

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

ID владельца заказа. У заказов, созданных по API-ключу, это всегда владелец ключа — чужой заказ по ключу не увидеть.

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

Название заказа: из него берутся имя скачиваемого файла и имя ZIP-архива.

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

Шаблон, по которому создан заказ. Приходит только у заказов с template_id; у заказа без шаблона (sfx/music по task_type) поля нет. config внутри — настройки, с которыми выполняется ИМЕННО этот заказ: конфиг шаблона на момент создания заказа с наложенным config_override; правка шаблона после создания его не меняет. В списке GET /orders config приходит null — полный конфиг отдаёт GET /orders/{order}. Шаблон могли удалить после создания заказа: здесь он виден по-прежнему, но GET /templates/{template} ответит 404, а новый заказ с этим template_id — 422. У заказов, созданных до выхода этой версии API (конец сентября 2026 года), снимка нет: там config — текущий конфиг шаблона с наложенным config_override, и правка шаблона его меняет.

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

UUID шаблона. Его кладут в template_id при создании заказа.

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

ID владельца шаблона.

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

Короткий публичный идентификатор для расшаривания. null у шаблона, которым не делились.

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

Название шаблона — только для человека, на поведение генерации не влияет.

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

Код сервиса, по схеме которого валидируется config: elevenlabs, lumimg и т. д.

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

Сервис шаблона справочно: название и тарификация, без схем конфигурации. null означает, что сервиса с таким кодом больше нет.

может быть null
Service | null
configобязательное

Настройки генерации: голос, модель, скорость и прочее — набор ключей задаёт сервис. Допустимые значения смотрите в GET /templates/config-options?service=<код>, значение вне схемы отклоняется с 422. В заказе (template в GET /orders/{order}) это настройки самого заказа — снимок на момент его создания с config_override, а не текущий конфиг шаблона (у заказов, созданных до конца сентября 2026 года, — текущий конфиг шаблона с config_override).

object
is_publicобязательное

Опубликован ли шаблон в общем каталоге.

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

UUID папки, в которой лежит шаблон, либо null для корня. Структура папок видна в GET /templates/browse.

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

Когда шаблон создан, ISO 8601.

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

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

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

UUID использованного шаблона либо null, если заказ создан без шаблона.

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

Тип задачи — он определяет, что лежит в task_data и что придёт в result.

Значенияttsimagetxt2imgremiximage_editvoice_clonesfxmusicvoice_search
TaskTypeTaskType
statusобязательное

Текущее состояние заказа. Терминальные — completed, failed, cancelled, compensated; опрашивать заказ дальше смысла нет.

partially_completed — часть чанков готова, часть упала: файлы уже можно забирать, а сбойные фрагменты перезапускать через POST /orders/{order}/items/retry-failed.

Значенияcreatedpendingin_progresscompletedresult_deliveredfailedcompensatedcancelledpartially_completed
OrderStatusOrderStatus
price_unitsобязательное

Заблокированная под заказ сумма в минимальных единицах LMC. Показывать это число как есть нельзя: реальное значение — price_units / 10^precision, где precision берётся из актива рядом. Готовое к показу значение лежит в соседнем decimal-поле.

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

Та же сумма, что и price_units, но в целых LMC — готова к показу. null, пока стоимость не зафиксирована.

может быть null
number
currency_assetобязательное

Актив суммы — всегда LMC. Его precision нужен, чтобы перевести минимальные единицы в реальное значение.

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

Внутренний идентификатор актива.

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

Код актива: LUMC — внутренняя валюта, TOKEN — токены генерации.

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

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

Значенияmoneyunit
AssetKindAssetKind
precisionобязательное

Число десятичных знаков. Ключевое поле: любая целая сумма этого актива делится на 10^precision, чтобы получить реальное значение. Не считайте, что делитель равен 100.

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

Название актива для показа, на языке аккаунта.

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

Когда актив выведен из обращения, ISO 8601. null у действующего.

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

Когда актив заведён, ISO 8601.

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

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

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

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

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

Суммарная длительность полученного аудио в миллисекундах. Это длина результата, а не время, потраченное на генерацию.

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

Входные данные задачи ровно в том виде, в каком их принял сервер: текст, ссылки на загруженные файлы, применённые настройки. Набор ключей зависит от task_type.

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

Результат выполнения. files[] — основные файлы; service_files[] — вспомогательные (субтитры .srt/.vtt/.lrc, alignment) у TTS-заказов. Пути абсолютные и готовы к передаче в POST /storage/url.

null, пока заказ не завершён, а также у упавшего заказа: подробностей ошибки в публичном контуре нет.

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

Когда заказ создан, ISO 8601.

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

Когда заказ последний раз менялся, ISO 8601. Растёт на каждом переходе статуса — годится как дешёвый признак «что-то произошло».

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

Срок хранения файлов заказа. files_expire_at — момент удаления (null, если заказ ещё не завершён или файлы уже удалены); files_expired — файлов больше нет, скачивать нечего.

может быть null
string
files_expiredобязательное

true — срок хранения истёк и файлы уже удалены: ссылку на них получить нельзя, заказ нужно создавать заново.

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

Сроки хранения по уровням файлов. Пофрагментные дорожки склеенного заказа удаляются раньше самого результата.

object
chunksобязательное

Срок жизни пофрагментных дорожек — ими работают правка пауз, пересборка финала и перегенерация отдельного фрагмента.

object
expires_atобязательное

Когда исчезнут пофрагментные дорожки, ISO 8601. До этого момента доступны правка пауз, пересборка и перегенерация отдельного фрагмента. null — заказ ещё не завершён (отсчёт не начат) либо фрагментов уже нет.

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

true — пофрагментных дорожек больше нет: правка и пересборка отклоняются. Готовый результат при этом может быть ещё доступен — смотрите retention.files.

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

true — фрагменты исчезнут раньше результата (заказ склеен в отдельный файл). false — фрагменты и есть результат, оба уровня истекают одновременно.

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

Почему фрагменты недоступны: chunks_purged — удалены по своему сроку, результат ещё на месте; storage_expired — удалены все файлы заказа. null — фрагменты доступны.

может быть null
Значенияchunks_purgedstorage_expired
string
filesобязательное

Срок жизни всех файлов заказа, включая результат. Дублирует поля files_expire_at / files_expired верхнего уровня.

object
expires_atобязательное

Когда будут удалены все файлы заказа, ISO 8601. То же значение, что в files_expire_at — поле верхнего уровня сохранено для совместимости.

может быть null
string
expiredобязательное

То же, что files_expired: файлов больше нет, скачивать нечего.

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

Оценка оставшегося времени, в секундах — только пока заказ выполняется. У завершённого и у ещё не начатого null.

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

Ожидаемый момент готовности, ISO 8601 — тот же прогноз, что и eta_seconds, только абсолютным временем.

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

Сколько исходных чанков уже готово. Повторы и перегенерации сюда не входят — иначе прогресс уезжал бы выше 100 %.

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

Сколько исходных чанков в заказе всего. Ноль означает, что разбиение ещё не выполнено.

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

Готовность в процентах, 0–100 — производная от completed_chunks и total_chunks, считать самому не нужно.

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

true — идёт склейка аудио: результат ещё не финальный. Бывает и при status = completed — после перегенерации фрагмента финал пересобирается, и до конца склейки result указывает на прежнюю дорожку. Скачивать итог — когда stitching = false.

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

Сводка по абзацам: индекс, число фрагментов, общий статус и прогресс каждого абзаца. null — заказ создан в обычном режиме, ориентируйтесь на items[]. Чтобы абзацы появились, создавайте заказ с config_override.generation_mode = paragraph (подробности — в описании этого поля).

может быть null
array<object>
элемент массива
paragraph_indexобязательное

Номер абзаца, с нуля.

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

Сколько чанков попало в этот абзац.

integer | number
completed_chunksобязательное

Сколько чанков абзаца уже готово.

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

Сводный статус абзаца: он выводится из статусов его чанков, а не хранится отдельно. Словарь свой, короче общего: pending, in_progress, failed, completed — заблокированный модерацией чанк тоже даёт failed. Считаются только исходные чанки, поэтому успешный повтор упавшего фрагмента статус абзаца НЕ меняет: смотрите на сам фрагмент в items[].

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

Готовность абзаца в процентах, 0–100.

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

Склеенное аудио абзаца целиком: абсолютный путь либо структура с путём и размером. Скачивается через POST /storage/url, как и остальные файлы заказа. null читается по-разному в зависимости от chunks_count: при chunks_count = 1 собственного файла у абзаца нет и не будет — абзац это и есть тот единственный фрагмент, берите его result_file из items[] по тому же paragraph_index; при chunks_count > 1 склейки ещё не было — многочанковый абзац получает файл ТОЛЬКО после неё, никогда заранее.

может быть null
string
itemsнеобязательное

Чанки заказа. Приходят в детальном ответе GET /orders/{order}; в списке GET /orders поля нет — за ними идите в GET /orders/{order}/items.

array<OrderItem>OrderItem
элемент массива
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
tokens_from_quotaнеобязательное

Сколько из потраченных токенов покрыла квота подписки. null — из квоты не покрыто ничего.

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

Сколько токенов оплачено сверх квоты, из баланса LMC. null — доплаты не было.

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

Итог по двум предыдущим полям: сколько токенов списано за заказ (квота + доплата). Заказ, покрытый безлимитом подписки, и бесплатные версии сюда не входят — у безлимитного заказа поле null; объём генерации — total_tokens. Повторы (retry) не входят — они не тарифицируются заново.

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

Место в очереди — только у задач поиска голоса (voice_search), которые обслуживаются по одной. У остальных типов задач поля нет.

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

Оценка ожидания в очереди поиска голоса, в секундах. Оценка, а не обещание: пересчитывается на каждый ответ.

может быть null
integer
Показать пример
{
  "id": "string",
  "user_id": 1,
  "name": "string",
  "template": {
    "id": "string",
    "user_id": 1,
    "slug": "string",
    "name": "string",
    "service_key": "string",
    "service": {
      "id": 1,
      "code": "string",
      "name": "string",
      "display_name": "string",
      "label": [
        "string"
      ],
      "payg_access": "string",
      "billing_mode": "subscription",
      "unit_asset_id": 1,
      "unit_asset": {
        "id": 1,
        "code": "string",
        "kind": "money",
        "precision": 1,
        "name": "string",
        "deleted_at": "string",
        "created_at": "string",
        "updated_at": "string"
      },
      "required_entitlement_id": 1,
      "required_entitlement": {
        "id": 1,
        "code": "string",
        "name": "string",
        "metadata": {},
        "is_active": true,
        "created_at": "string",
        "updated_at": "string",
        "is_unlimited": true
      },
      "units_per_call": 1,
      "units_per_char": 1,
      "units_per_image": 1,
      "units_per_second": 1,
      "min_billable_chars": 1,
      "lumcoin_per_token": 1,
      "lumc_precision": 1,
      "price_lumc_minor": 1,
      "unit_size": 1,
      "uses_money_first_pricing": true,
      "rate_unit": "string",
      "display_category": "string",
      "is_premium": true,
      "display_order": 1,
      "metadata": {},
      "is_active": true,
      "maintenance_mode": true,
      "access_level": "string",
      "maintenance_auto_resume": true,
      "maintenance_started_at": "string",
      "maintenance_note": "string",
      "created_at": "string",
      "updated_at": "string"
    },
    "config": {},
    "is_public": true,
    "folder_id": "string",
    "created_at": "string",
    "updated_at": "string"
  },
  "template_id": "string",
  "task_type": "tts",
  "status": "created",
  "price_units": 1,
  "price_formatted": 1,
  "currency_asset": {
    "id": 1,
    "code": "string",
    "kind": "money",
    "precision": 1,
    "name": "string",
    "deleted_at": "string",
    "created_at": "string",
    "updated_at": "string"
  },
  "total_tokens": 1,
  "total_duration_ms": 1,
  "task_data": {},
  "result": {},
  "created_at": "string",
  "updated_at": "string",
  "files_expire_at": "string",
  "files_expired": true,
  "retention": {
    "chunks": {
      "expires_at": "string",
      "expired": true,
      "expires_early": true,
      "reason": "chunks_purged"
    },
    "files": {
      "expires_at": "string",
      "expired": true
    }
  },
  "eta_seconds": 1,
  "eta_at": "string",
  "completed_chunks": 1,
  "total_chunks": 1,
  "progress_percent": 1,
  "stitching": true,
  "paragraphs": [
    {
      "paragraph_index": 1,
      "chunks_count": 1,
      "completed_chunks": "string",
      "status": "string",
      "progress_percent": 1,
      "result_file": "string"
    }
  ],
  "items": [
    {
      "id": "string",
      "order_id": "string",
      "item_type": "string",
      "chunk_index": 1,
      "paragraph_index": "string",
      "parent_item_id": "string",
      "original_text_length": 1,
      "current_text_length": 1,
      "price_units": 1,
      "consumed_units": 1,
      "remaining_locked": 1,
      "status": "string",
      "result_file": {},
      "duration_ms": 1,
      "attempt_number": 1,
      "can_retry": true,
      "can_regenerate": true,
      "created_at": "string",
      "updated_at": "string",
      "failure_reason": "string"
    }
  ],
  "tokens_from_quota": 1,
  "tokens_from_payg": 1,
  "tokens_spent": 1,
  "queue_position": 1,
  "queue_wait_seconds": 1
}

OrderStatus

string
  • created
  • pending
  • in_progress
  • completed
  • result_delivered
  • failed
  • compensated
  • cancelled
  • partially_completed
Показать пример
"created"

PreviewChunksRequest

object

Dry-run preview разбиения текста на чанки — без создания заказа. input_text обязателен (preview по inline-тексту; файлы — async-путь).

config_override — тот же объект, что уйдёт в POST /orders (с 25.09.2026): размер чанка и режим провайдера в нём меняют рез, и превью без него показывало границы конфига шаблона, а не боевого реза ({@see AcceptsConfigOverride}).

template_idобязательное
uuid
string
task_typeнеобязательное
может быть null
string
input_textобязательное
string
previous_preview_idнеобязательное

ID предыдущего preview для инкрементального ре-чанка (пересчёт только хвоста правки).

может быть null
string
text_hashнеобязательное

sha256(input_text) от фронта — необязательная серверная верификация целостности.

может быть nullшаблон: ^[a-f0-9]{64}$
string
generation_modeнеобязательное

Режим генерации ЭТОГО превью — то же значение, что уйдёт в config_override.generation_mode при создании заказа. Отсутствие = default. Сервис, не объявивший ключ в validation_schema, режим игнорирует (см. Service::resolveGenerationMode) — как и на боевом пути.

может быть null
Значенияdefaultparagraph
string
config_overrideнеобязательное

Настройки генерации поверх конфига шаблона — тот же JSON-объект, что уйдёт в создание заказа; настройки, влияющие на рез, применяются к превью так же, как к заказу. Посторонние ключи отбрасываются.

object
Показать пример
{
  "template_id": "string",
  "task_type": "string",
  "input_text": "string",
  "previous_preview_id": "string",
  "text_hash": "string",
  "generation_mode": "default",
  "config_override": {}
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

PublicVoiceList

object
itemsобязательное

Записи текущей страницы в порядке сортировки списка.

array<LumVoice>LumVoice
элемент массива
idобязательное

UUID голоса. Кладётся в config.voice_id шаблона; для путей /voices/{voice} — он же.

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

Название голоса для показа.

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

Описание голоса от автора: тембр, манера, сценарии использования.

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

Пол голоса.

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

Акцент или региональный вариант произношения.

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

Язык, на котором голос звучит по умолчанию, ISO-639-1.

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

Состояние клонирования голоса. Использовать в заказах можно только полностью готовый.

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

Стадия публикации: черновик, на модерации, опубликован. Определяет, виден ли голос в общем каталоге GET /voices/public.

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

Разрешил ли автор использовать голос другим. Без этого флага голос не попадает в каталог GET /voices/public, а у тех, кто уже добавил его в свою библиотеку, запись становится недоступной.

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

Когда собраны демо-фрагменты, ISO 8601. null — превью ещё нет.

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

Когда голос создан, ISO 8601.

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

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

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

Метки голоса для поиска и фильтрации. Полный справочник — GET /voices/tags.

array<VoiceTag>VoiceTag
элемент массива
idобязательное

Внутренний идентификатор метки.

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

Код метки — устойчивое значение для фильтрации, в отличие от переводимого name.

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

Название метки на языке аккаунта.

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

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

может быть null
string
colorобязательное

Цвет метки в HEX — подсказка для оформления.

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

Вес сортировки в списке меток: меньше — выше.

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

Языки, на которые голос склонирован, с состоянием каждого клона. Заказ возможен только на готовом языке.

array<VoiceLanguage>VoiceLanguage
элемент массива
idобязательное

Внутренний идентификатор языковой версии голоса.

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

Код языка, ISO-639-1. Он же — ключ в preview_urls.

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

Состояние клонирования для этого языка. Заказ принимается только на языке, где клон готов.

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

Длительность референсной записи в миллисекундах — на ней обучен клон.

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

Версия обученной модели. Растёт при переобучении голоса.

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

Почему клонирование не удалось. null, если сбоя не было.

может быть null
string
clone_started_atобязательное

Когда клонирование началось, ISO 8601.

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

Когда клонирование завершилось, ISO 8601. null — ещё идёт либо не удалось.

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

Когда языковая версия последний раз менялась, ISO 8601.

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

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

object
*необязательное
может быть nullпроизвольные ключи
string
current_pageобязательное

Номер текущей страницы, с единицы.

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

Номер последней страницы. Обход списка закончен, когда current_page равен last_page.

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

Размер страницы, применённый сервером.

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

Сколько записей всего по фильтру.

integer
Показать пример
{
  "items": [
    {
      "id": "string",
      "display_name": "string",
      "description": "string",
      "gender": "string",
      "accent": "string",
      "default_language_code": "string",
      "voice_status": "string",
      "publication_status": "string",
      "allow_usage_in_orders": true,
      "preview_generated_at": "string",
      "created_at": "string",
      "updated_at": "string",
      "tags": [
        {
          "id": 1,
          "code": "string",
          "name": "string",
          "description": "string",
          "color": "string",
          "sort_order": 1
        }
      ],
      "languages": [
        {
          "id": 1,
          "language_code": "string",
          "status": "string",
          "reference_duration_ms": 1,
          "model_version": 1,
          "failure_reason": "string",
          "clone_started_at": "string",
          "clone_completed_at": "string",
          "updated_at": "string"
        }
      ],
      "preview_urls": {}
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1
}

Используется в операциях: 1

RegenerateOrderItemRequest

object

Параметры перегенерации готового фрагмента заказа.

textобязательное

Новый текст готового чанка — обязателен. Переделка уже выполненного фрагмента тарифицируется как новая генерация (проверка токен-квоты ключа → 429 при превышении).

≤ 50000 симв.
string
Пример Новая редакция фрагмента.
Показать пример
{
  "text": "Новая редакция фрагмента."
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

ResellerProfile

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

ID реселлера.

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

Личная скидка реселлера на выпускаемые коды, в базисных пунктах: 100 = 1%. Именно она определяет стоимость кода: cost = nominal × (1 − discount_bps / 10000).

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

Причина блокировки кабинета. null, пока кабинет не заблокирован.

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

Когда заявка на роль реселлера была одобрена.

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

Лимиты — личные, если администратор их задал, иначе общие умолчания: max_topup_rub — потолок одного пополнения в рублях, max_codes_per_issue — сколько кодов можно выпустить за один запрос POST /reseller/codes.

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

Баланс кабинета. Каждая сумма приходит парой: в минимальных единицах LMC (available, held, debt, …; real = value / 10^currency_asset.precision) и <имя>_formatted — то же в целых LMC. available — на счёте, held — заморожено, debt — долг перед платформой (его гасит следующее пополнение), spendable — сколько реально можно потратить на выпуск (available за вычетом долга).

object
*необязательное
произвольные ключи
integer | number
currency_assetобязательное

Валюта сумм ответа — LMC. По precision суммы в минимальных единицах переводятся в целые LMC.

object
codeобязательное

Код актива, в котором выражены суммы.

ЗначенияLUMC
string
precisionобязательное

Сколько знаков после запятой у LMC: real = value / 10^precision.

integer
Показать пример
{
  "id": "string",
  "status": "string",
  "discount_bps": "string",
  "blocked_reason": "string",
  "approved_at": "string",
  "limits": "string",
  "balance": {},
  "currency_asset": {
    "code": "LUMC",
    "precision": 1
  }
}

Используется в операциях: 1

RetryOrderItemRequest

object

Параметры повтора сбойного фрагмента заказа.

textнеобязательное

Исправленный текст чанка. Не передан — чанк повторяется с прежним текстом.

Для чанка в статусе policy_flagged (контент отклонён политикой провайдера) повтор с тем же текстом будет отклонён снова — присылайте переформулированный. Текущий текст чанка: GET /orders/{order}/items/{item}/text.

может быть null≤ 50000 симв.
string
Пример Переформулированный фрагмент текста.
Показать пример
{
  "text": "Переформулированный фрагмент текста."
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

RetryOrderRequest

object

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

confirm_payg_topupнеобязательное

Согласие на PAYG-добор для нового заказа — только в режиме отката к явному подтверждению (иначе игнорируется). Семантика та же, что у POST /orders: действует только вместе со свежим quote_token из ответа 402.

может быть nullпо умолчанию false
boolean
quote_tokenнеобязательное

Котировка добора из ответа 402 этого же запроса (только режим отката). Живёт ~60 секунд.

может быть null
string
Показать пример
{
  "confirm_payg_topup": false,
  "quote_token": "string"
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

Service

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

Внутренний числовой идентификатор сервиса. В запросах используйте code, а не его.

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

Код сервиса — то самое значение, которое идёт в service_key шаблона и в путь GET /usage/{service}.

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

Служебное название сервиса.

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

Название сервиса для показа пользователю, переведённое на язык аккаунта.

string
labelнеобязательное
может быть null
null | array<any> | string | object
payg_accessобязательное

Разрешён ли доплатный (pay-as-you-go) добор сверх квоты подписки для этого сервиса.

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

Модель тарификации сервиса: за вызов, за символ, за секунду либо за изображение. Она определяет, какое из полей units_per_* работает.

Значенияsubscriptionpay_as_you_go
BillingModeBillingMode
unit_asset_idобязательное

ID актива, в котором номинированы единицы сервиса. Сам актив — в unit_asset.

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

Актив единиц сервиса; его precision нужен, чтобы перевести целые units_* в дробное значение.

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

Внутренний идентификатор актива.

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

Код актива: LUMC — внутренняя валюта, TOKEN — токены генерации.

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

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

Значенияmoneyunit
AssetKindAssetKind
precisionобязательное

Число десятичных знаков. Ключевое поле: любая целая сумма этого актива делится на 10^precision, чтобы получить реальное значение. Не считайте, что делитель равен 100.

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

Название актива для показа, на языке аккаунта.

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

Когда актив выведен из обращения, ISO 8601. null у действующего.

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

Когда актив заведён, ISO 8601.

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

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

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

ID возможности, без которой сервис недоступен. null — сервис доступен всем.

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

Возможность подписки, открывающая доступ к сервису. Есть ли она у вас — видно в GET /usage.

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

Внутренний идентификатор возможности.

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

Код возможности — по нему сервис проверяет, открыт ли он вам.

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

Название возможности для показа, на языке аккаунта.

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

Дополнительные атрибуты возможности. Набор ключей произвольный.

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

Действует ли возможность.

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

Когда возможность заведена, ISO 8601.

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

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

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

Безлимитна ли эта возможность в рамках тарифа. Поле присутствует только когда право отдаётся в контексте плана.

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

Значение в минимальных единицах актива: реальное — value / 10^precision, где precision лежит в unit_asset.

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

Сколько единиц стоит один символ — работает при посимвольной тарификации. Значение в минимальных единицах актива.

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

Сколько единиц стоит одно изображение. Значение в минимальных единицах актива.

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

Сколько единиц стоит секунда результата. Значение в минимальных единицах актива.

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

Минимум символов, который тарифицируется, даже если текст короче. Защищает от копеечных заказов.

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

Цена одного токена при доплате из LMC, в минимальных единицах. Стоимость добора — tokens × lumcoin_per_token.

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

Число десятичных знаков LMC — делитель 10^precision для всех сумм в минимальных единицах.

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

Цена в минимальных единицах LMC за unit_size натуральных единиц сервиса. null — сервис тарифицируется через токены.

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

За сколько натуральных единиц сервиса назначена цена price_lumc_minor: например, за 1000 символов.

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

true — цена задана сразу в LMC (price_lumc_minor), а не выводится из токенов. Влияет только на способ расчёта, не на итог для вас.

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

Натуральная единица тарифа для показа: символы, секунды, изображения.

может быть null
string
display_categoryобязательное

Раздел каталога, к которому сервис отнесён в интерфейсе.

может быть null
string
is_premiumобязательное

Помечен ли сервис как премиальный. Признак для витрины; на доступ влияет required_entitlement.

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

Вес сортировки в каталоге: меньше — выше.

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

Дополнительные атрибуты сервиса. Набор ключей произвольный и может меняться — не полагайтесь на конкретный.

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

Виден ли сервис в каталоге. Приём заказов останавливает не он, а maintenance_mode.

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

Сервис на технических работах: создание заказа, повтор и перегенерация отвечают 503. Уже принятые заказы продолжают обрабатываться.

boolean
access_levelнеобязательное
string
maintenance_auto_resumeнеобязательное
boolean
maintenance_started_atнеобязательное
string
maintenance_noteнеобязательное
string
created_atобязательное

Когда сервис заведён, ISO 8601.

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

Когда настройки сервиса менялись, ISO 8601.

может быть nulldate-time
string
Показать пример
{
  "id": 1,
  "code": "string",
  "name": "string",
  "display_name": "string",
  "label": [
    "string"
  ],
  "payg_access": "string",
  "billing_mode": "subscription",
  "unit_asset_id": 1,
  "unit_asset": {
    "id": 1,
    "code": "string",
    "kind": "money",
    "precision": 1,
    "name": "string",
    "deleted_at": "string",
    "created_at": "string",
    "updated_at": "string"
  },
  "required_entitlement_id": 1,
  "required_entitlement": {
    "id": 1,
    "code": "string",
    "name": "string",
    "metadata": {},
    "is_active": true,
    "created_at": "string",
    "updated_at": "string",
    "is_unlimited": true
  },
  "units_per_call": 1,
  "units_per_char": 1,
  "units_per_image": 1,
  "units_per_second": 1,
  "min_billable_chars": 1,
  "lumcoin_per_token": 1,
  "lumc_precision": 1,
  "price_lumc_minor": 1,
  "unit_size": 1,
  "uses_money_first_pricing": true,
  "rate_unit": "string",
  "display_category": "string",
  "is_premium": true,
  "display_order": 1,
  "metadata": {},
  "is_active": true,
  "maintenance_mode": true,
  "access_level": "string",
  "maintenance_auto_resume": true,
  "maintenance_started_at": "string",
  "maintenance_note": "string",
  "created_at": "string",
  "updated_at": "string"
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

StoreOrderRequest

object

Параметры создания заказа. Принимается как application/json, так и multipart/form-data (второе — когда нужны input_files).

template_idнеобязательное

UUID шаблона — он определяет сервис, тип задачи и все настройки генерации. Либо template_id, либо task_type обязателен; если переданы оба, ведущим считается шаблон.

Шаблон — обычный способ работы: настройки заданы один раз, в заказе остаётся прислать только текст. Разовое отклонение от настроек шаблона — config_override.

может быть nulluuid
string
Пример 4d3e9f8b-2c1a-4f5a-8b9c-0d1e2f3a4b5c
task_typeнеобязательное

Тип задачи для генерации без шаблона. Обязателен, если не передан template_id.

ЗначениеЧто делаетГде параметры
sfxЗвуковой эффект по текстовому описаниюtask_data
musicМузыкальный трек по описаниюtask_data
voice_searchПодбор похожих голосов по вашему аудиофрагментуinput_files (аудио) + task_data.top

Для tts шаблон нужен — в нём лежит выбор голоса и модели.

может быть null
Значенияttsimagetxt2imgremiximage_editvoice_clonesfxmusicvoice_search
string
Пример sfx
nameнеобязательное

Человекочитаемое имя заказа: определяет имя скачиваемого файла и имя ZIP-архива.

Не передано — сервер выведет сам в таком порядке: имя загруженного файла без расширения → первые ~60 символов текста по границе слова (паузные теги {{pause=…}} вырезаются).

может быть null≤ 120 симв.
string
Пример Приветствие для лендинга
task_dataнеобязательное

Параметры генерации для заказа без шаблона — «временный шаблон» на один заказ. JSON-объект; multipart-клиент может прислать его одной JSON-строкой.

Ключи кладите в корень объекта, без обёртки. GET /templates/config-options показывает те же параметры сгруппированными в секцию (sfx_settings, music_settings) — это форма для интерфейса настроек, а не форма запроса. Прислав {"sfx_settings": {"text": "…"}}, вы получите 422 «text обязателен»: обёртка спрятала ключ.

SFX (task_type: "sfx") — одна генерация = один файл:

КлючТипДефолтНазначение
textstring, обязателен—Описание звука; английский промпт работает лучше
prompt_influencenumber 0..10.3Насколько строго держаться промпта
duration_secondsnumber 0.5..30nullnull = авто-длительность
loopbooleanfalseБесшовное зацикливание
output_formatmp3_44100_128 | mp3_44100_192 | opus_48000_128mp3_44100_128Формат результата

Music (task_type: "music") — n_variants генераций = столько же файлов:

КлючТипДефолтНазначение
promptstring, обязателен—Описание трека: жанр, настроение, инструменты
n_variantsinteger 1..41Сколько вариантов сгенерировать. Умножает цену и даёт столько же файлов в result.files[]
lyrics_textstringnullТекст песни; пусто и без force_instrumental — модель может добавить вокал сама
force_instrumentalbooleanfalseИнструментал без вокала
music_length_msinteger 10000..3000030000Длительность в миллисекундах: 10–30 сек максимум, больше 30000 → 422
model_idmusic_v2music_v2Пока единственное значение

Voice Search (task_type: "voice_search") — аудиофрагмент едет в input_files, здесь только один параметр:

КлючТипДефолтНазначение
topinteger 1..5010Сколько похожих голосов вернуть

Что определяет цену

Считается число генераций, а не их размер:

ТипЦенаНа цену НЕ влияют
sfxОдна ставка сервиса за заказduration_seconds, длина text
musicСтавка × n_variantsmusic_length_ms, длина prompt, lyrics_text
voice_searchОдна ставка за заказДлительность записи, top

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

Сервер домешивает к вашим значениям default_config сервиса (ваши приоритетнее) — отключается флагом skip_service_defaults. Значение вне диапазона или enum → 422 до биллинга, заказ не создаётся и деньги не резервируются.

object
Пример {"text":"Тяжёлая деревянная дверь скрипит и захлопывается","duration_seconds":4}
config_overrideнеобязательное

Разовое отклонение от настроек шаблона — единственный способ поменять параметры под конкретный заказ, не создавая новый шаблон. Форма — тот же JSON-объект, что и config шаблона; применяется поверх него только к этому заказу.

Например, озвучить один заказ другим голосом: {"tts_settings": {"voice_id": "<OTHER_VOICE_ID>"}} — остальной конфиг шаблона сохранится.

Пути, которых нет в схеме сервиса, молча отбрасываются (опечатка в ключе выглядит как «настройка не применилась»); оставшиеся значения валидируются по схеме — вне диапазона или enum → 422. Работает только вместе с template_id: у template-less sfx/music все параметры и так в task_data.

Присылайте только те ключи, которые меняете. Явный null — не «оставить как в шаблоне», а «стереть»: он перезапишет значение шаблона на пустое для этого заказа. Клиент, который сериализует всю форму настроек целиком и кладёт null в незаполненные поля, таким образом молча сбросит половину шаблона. Отсутствующий ключ — единственный способ сказать «не трогать».

Абзацный режим озвучки

По умолчанию текст режется на фрагменты подряд, по техническому размеру, и границы абзацев роли не играют. Абзацный режим меняет порядок: сначала текст делится по пустой строке на абзацы, и уже каждый абзац режется внутри себя.

Ключ лежит НЕ внутри tts_settings, а рядом с ним, в корне config_override:

{"generation_mode": "paragraph"}
ЗначениеЧто делает
paragraphАбзац — самостоятельная единица генерации
defaultСплошной рез по размеру фрагмента (так же, как без ключа)

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

Что изменится в ответе: у заказа появится paragraphs[] (по каждому абзацу — индекс, число фрагментов, общий статус и прогресс), у фрагментов — paragraph_index.

Влияет на цену. Минимальный тарифицируемый объём применяется к КАЖДОМУ абзацу отдельно, а не к заказу целиком: пять коротких абзацев стоят пять минимумов, тогда как тот же текст в обычном режиме обошёлся бы в один.

Влияет и на скорость. Абзац — самостоятельная задача, и одновременно исполняются не больше 10 однофрагментных абзацев плюс 5 многофрагментных на заказ; остальные ждут освобождения места. Текст из сотни коротких абзацев пойдёт волнами, зато первые результаты придут раньше, чем при сплошной нарезке.

Тот же ключ принимает и config шаблона — тогда режим станет постоянным для всех заказов по этому шаблону. В GET /templates/config-options он не перечислен: справочник описывает настройки сервиса, а режим задаётся на заказ.

object
Пример {"tts_settings":{"voice_id":"EXAVITQu4vr4xnSDxMaL"}}
skip_service_defaultsнеобязательное

Не подмешивать default_config сервиса к task_data. Пришлите true, если у вас уже есть полный набор параметров и воркер должен получить ровно его — сервер не добавит ни одного ключа по умолчанию.

Флаг сохраняется на заказе: POST /orders/{order}/retry воспроизведёт то же поведение. На заказы по шаблону не влияет — там конфиг берётся из template.config и config_override, а не из настроек сервиса.

может быть nullпо умолчанию false
boolean
input_textнеобязательное

Текст задачи. Для tts — то, что будет озвучено; сервер сам режет его на чанки.

Каналов текста три, и они равноправны — проверки (капы пауз, «текст нечем озвучить») применяются к каждому:

КаналКогда использовать
input_textОбычный способ: текст прямо в запросе
.txt в input_files[]Длинный текст файлом; содержимое читается как текст задачи
task_data.textТолько для заказа без шаблона

Что происходит с текстом до нарезки и как разметка внутри него влияет на цену — в разделах «Разметка внутри текста» и «Как режется текст» описания этого метода.

Для template-less sfx/music это поле не используется — описание звука кладите в task_data.text (SFX) или task_data.prompt (Music).

может быть null
string
Пример Здравствуйте! Рады видеть вас в Lumean.
confirm_payg_topupнеобязательное

Согласие доплатить из LMC-баланса, когда квоты подписки не хватило на весь заказ. В норме не нужно: добор списывается автоматически, а поле игнорируется. Оно действует только в режиме отката к явному подтверждению, который может включить оператор платформы, — правила ниже описывают этот режим.

Порядок списания всегда один: сначала квота подписки, LMC — только за остаток. Если квоты хватает, флаг ничего не меняет и баланс не трогается вообще.

Один флаг ничего не спишет. Согласие действительно только вместе со свежим quote_token из ответа 402, привязанным к вам, сервису и точному объёму задачи. Присланный без токена (или с истёкшим/чужим) confirm_payg_topup: true снова вернёт 402 — списания не произойдёт.

Рабочий цикл: отправили заказ → 402 с shortfall_tokens, shortfall_lmc, quote_token, expires_at → показали сумму пользователю → повторили тот же запрос с confirm_payg_topup: true и этим quote_token. Токен живёт ~60 секунд.

Согласие — верхняя граница: если к моменту списания добор подешевел, спишется фактическая сумма; если подорожал (параллельный заказ съел квоту) — 409 quote_mismatch, запросите 402 заново.

может быть nullпо умолчанию false
boolean
quote_tokenнеобязательное

Подписанная котировка добора из ответа 402 — передавайте строку «как есть», вместе с confirm_payg_topup: true.

Токен привязан к пользователю, сервису и объёму задачи и живёт ~60 секунд. Просроченный, изменённый или выданный на другой заказ токен не действует: запрос вернёт 402 с новой котировкой.

может быть null
string
input_filesнеобязательное

Входные файлы — только multipart/form-data, до 20 МБ на файл. Одиночный файл можно прислать полем input_file.

Тип задачиФайл
tts (озвучка).txt — полноценная замена input_text: содержимое читается как текст озвучки
voice_searchАудиофрагмент, обязателен. Тип проверяется по содержимому, не по расширению; чужой формат (картинка, архив) → 422 до списания. Длиннее 60 секунд — обрезается, признак придёт в результате
sfx, musicНе используются — всё описание в task_data
может быть null
array<file>
Показать пример
{
  "template_id": "4d3e9f8b-2c1a-4f5a-8b9c-0d1e2f3a4b5c",
  "task_type": "sfx",
  "name": "Приветствие для лендинга",
  "task_data": {
    "text": "Тяжёлая деревянная дверь скрипит и захлопывается",
    "duration_seconds": 4
  },
  "config_override": {
    "tts_settings": {
      "voice_id": "EXAVITQu4vr4xnSDxMaL"
    }
  },
  "skip_service_defaults": false,
  "input_text": "Здравствуйте! Рады видеть вас в Lumean.",
  "confirm_payg_topup": false,
  "quote_token": "string",
  "input_files": [
    "<binary>"
  ]
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

StoreTemplateRequest

object

Новый шаблон генерации. config валидируется по схеме сервиса — структуру для нужного service_key берите из GET /templates/config-options.

folder_idнеобязательное

UUID вашей папки. Не передан — шаблон создаётся в корне.

может быть nulluuid
string
service_keyобязательное

Код сервиса, под который создаётся шаблон: короткая латинская строка — elevenlabs, heygen, lumimg, sfx, music. Доступные вам коды перечисляет GET /usage в поле service_code; от этого выбора зависит, что примет config.

string
Пример elevenlabs
nameобязательное

Название шаблона, до 255 символов. Видно в GET /templates и в интерфейсе.

≤ 255 симв.
string
Пример Диктор — женский, спокойный
is_publicнеобязательное

Опубликовать шаблон в общем каталоге. По умолчанию false — шаблон виден только вам.

по умолчанию false
boolean
configобязательное

Настройки генерации. Структура зависит от service_key; допустимые ключи, диапазоны и списки значений отдаёт GET /templates/config-options?service=<код> — берите их оттуда, а не угадывайте.

Минимальный валидный config для elevenlabs: {"tts_settings": {"mode": "mode_v1", "model_id": "eleven_multilingual_v2", "voice_id": "<VOICE_ID>", "advanced_voice_settings": true, "voice_settings": {"stability": 0.5, "similarity_boost": 0.75, "use_speaker_boost": true, "speed": 1.0}}}

Тонкие настройки голоса включаются флагом

Что из voice_settings доезжает до движка озвучки, зависит от модели и флага tts_settings.advanced_voice_settings (по умолчанию false):

МодельБез флагаС флагом
eleven_v3, eleven_v3_betastabilityвсе пять
eleven_v4, eleven_v4_expstability, similarity_boostвсе пять
остальныевсе пятьвсе пять

Не доехавшие значения сохранятся в шаблоне и пройдут валидацию, но на звук не повлияют. Ошибки не будет: это выглядит как «настройка не работает» — чаще всего со speed на v3/v4.

Зависимость той же природы есть и у voice_settings.stability: на моделях семейства eleven_v3 шаг равен 0.5, то есть принимаются только 0, 0.5 и 1.

Сшивка просодии между фрагментами

Длинный текст режется на фрагменты, и каждый озвучивается своим запросом — поэтому на стыках слышен перепад интонации. Два необязательных булевых флага просят движок учитывать соседей: tts_settings.prev_next_text передаёт текст соседних фрагментов, tts_settings.request_ids — идентификаторы соседних генераций. Оба по умолчанию false. Флаги влияют только на звучание стыков, стоимость и разбиение на фрагменты не меняют.

Включить можно только ОДИН из них. Оба сразу — 422: получив и текст, и идентификаторы, движок использует только идентификаторы и текст игнорирует, так что «включено оба» было бы тихо выключенным prev_next_text.

Нормализация текста

tts_settings.apply_text_normalization — три режима: auto (движок сам решает, нужна ли нормализация, например читать ли числа словами), on (применять всегда), off (пропускать). По умолчанию auto.

object
Показать пример
{
  "folder_id": "string",
  "service_key": "elevenlabs",
  "name": "Диктор — женский, спокойный",
  "is_public": false,
  "config": {}
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

TemplateList

object
itemsобязательное

Записи текущей страницы в порядке сортировки списка.

array<Template>Template
элемент массива
idобязательное

UUID шаблона. Его кладут в template_id при создании заказа.

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

ID владельца шаблона.

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

Короткий публичный идентификатор для расшаривания. null у шаблона, которым не делились.

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

Название шаблона — только для человека, на поведение генерации не влияет.

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

Код сервиса, по схеме которого валидируется config: elevenlabs, lumimg и т. д.

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

Сервис шаблона справочно: название и тарификация, без схем конфигурации. null означает, что сервиса с таким кодом больше нет.

может быть null
Service | null
configобязательное

Настройки генерации: голос, модель, скорость и прочее — набор ключей задаёт сервис. Допустимые значения смотрите в GET /templates/config-options?service=<код>, значение вне схемы отклоняется с 422. В заказе (template в GET /orders/{order}) это настройки самого заказа — снимок на момент его создания с config_override, а не текущий конфиг шаблона (у заказов, созданных до конца сентября 2026 года, — текущий конфиг шаблона с config_override).

object
is_publicобязательное

Опубликован ли шаблон в общем каталоге.

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

UUID папки, в которой лежит шаблон, либо null для корня. Структура папок видна в GET /templates/browse.

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

Когда шаблон создан, ISO 8601.

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

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

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

Номер текущей страницы, с единицы.

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

Номер последней страницы. Обход списка закончен, когда current_page равен last_page.

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

Размер страницы, применённый сервером.

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

Сколько записей всего по фильтру.

integer
Показать пример
{
  "items": [
    {
      "id": "string",
      "user_id": 1,
      "slug": "string",
      "name": "string",
      "service_key": "string",
      "service": {
        "id": 1,
        "code": "string",
        "name": "string",
        "display_name": "string",
        "label": [
          null
        ],
        "payg_access": "string",
        "billing_mode": "subscription",
        "unit_asset_id": 1,
        "unit_asset": {
          "id": 1,
          "code": "string",
          "kind": "money",
          "precision": 1,
          "name": "string",
          "deleted_at": "string",
          "created_at": "string",
          "updated_at": "string"
        },
        "required_entitlement_id": 1,
        "required_entitlement": {
          "id": 1,
          "code": "string",
          "name": "string",
          "metadata": {},
          "is_active": true,
          "created_at": "string",
          "updated_at": "string",
          "is_unlimited": true
        },
        "units_per_call": 1,
        "units_per_char": 1,
        "units_per_image": 1,
        "units_per_second": 1,
        "min_billable_chars": 1,
        "lumcoin_per_token": 1,
        "lumc_precision": 1,
        "price_lumc_minor": 1,
        "unit_size": 1,
        "uses_money_first_pricing": true,
        "rate_unit": "string",
        "display_category": "string",
        "is_premium": true,
        "display_order": 1,
        "metadata": {},
        "is_active": true,
        "maintenance_mode": true,
        "access_level": "string",
        "maintenance_auto_resume": true,
        "maintenance_started_at": "string",
        "maintenance_note": "string",
        "created_at": "string",
        "updated_at": "string"
      },
      "config": {},
      "is_public": true,
      "folder_id": "string",
      "created_at": "string",
      "updated_at": "string"
    }
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1
}

Используется в операциях: 1

TemplateItem

object
typeобязательное
Значенияtemplate
string
idобязательное
string
nameобязательное
string
slugнеобязательное
string
service_keyнеобязательное
string
serviceнеобязательное
может быть null
Service | null
configнеобязательное
object | string
is_publicнеобязательное
string
folder_idнеобязательное
string
created_atобязательное
string
updated_atобязательное
string
templates_countнеобязательное
string | integer
Показать пример
{
  "type": "template",
  "id": "string",
  "name": "string",
  "slug": "string",
  "service_key": "string",
  "service": {
    "id": 1,
    "code": "string",
    "name": "string",
    "display_name": "string",
    "label": [
      "string"
    ],
    "payg_access": "string",
    "billing_mode": "subscription",
    "unit_asset_id": 1,
    "unit_asset": {
      "id": 1,
      "code": "string",
      "kind": "money",
      "precision": 1,
      "name": "string",
      "deleted_at": "string",
      "created_at": "string",
      "updated_at": "string"
    },
    "required_entitlement_id": 1,
    "required_entitlement": {
      "id": 1,
      "code": "string",
      "name": "string",
      "metadata": {},
      "is_active": true,
      "created_at": "string",
      "updated_at": "string",
      "is_unlimited": true
    },
    "units_per_call": 1,
    "units_per_char": 1,
    "units_per_image": 1,
    "units_per_second": 1,
    "min_billable_chars": 1,
    "lumcoin_per_token": 1,
    "lumc_precision": 1,
    "price_lumc_minor": 1,
    "unit_size": 1,
    "uses_money_first_pricing": true,
    "rate_unit": "string",
    "display_category": "string",
    "is_premium": true,
    "display_order": 1,
    "metadata": {},
    "is_active": true,
    "maintenance_mode": true,
    "access_level": "string",
    "maintenance_auto_resume": true,
    "maintenance_started_at": "string",
    "maintenance_note": "string",
    "created_at": "string",
    "updated_at": "string"
  },
  "config": {},
  "is_public": "string",
  "folder_id": "string",
  "created_at": "string",
  "updated_at": "string"
}

Используется в операциях: 1

Template

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

UUID шаблона. Его кладут в template_id при создании заказа.

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

ID владельца шаблона.

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

Короткий публичный идентификатор для расшаривания. null у шаблона, которым не делились.

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

Название шаблона — только для человека, на поведение генерации не влияет.

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

Код сервиса, по схеме которого валидируется config: elevenlabs, lumimg и т. д.

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

Сервис шаблона справочно: название и тарификация, без схем конфигурации. null означает, что сервиса с таким кодом больше нет.

может быть null
Service | null
configобязательное

Настройки генерации: голос, модель, скорость и прочее — набор ключей задаёт сервис. Допустимые значения смотрите в GET /templates/config-options?service=<код>, значение вне схемы отклоняется с 422. В заказе (template в GET /orders/{order}) это настройки самого заказа — снимок на момент его создания с config_override, а не текущий конфиг шаблона (у заказов, созданных до конца сентября 2026 года, — текущий конфиг шаблона с config_override).

object
is_publicобязательное

Опубликован ли шаблон в общем каталоге.

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

UUID папки, в которой лежит шаблон, либо null для корня. Структура папок видна в GET /templates/browse.

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

Когда шаблон создан, ISO 8601.

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

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

может быть nulldate-time
string
Показать пример
{
  "id": "string",
  "user_id": 1,
  "slug": "string",
  "name": "string",
  "service_key": "string",
  "service": {
    "id": 1,
    "code": "string",
    "name": "string",
    "display_name": "string",
    "label": [
      "string"
    ],
    "payg_access": "string",
    "billing_mode": "subscription",
    "unit_asset_id": 1,
    "unit_asset": {
      "id": 1,
      "code": "string",
      "kind": "money",
      "precision": 1,
      "name": "string",
      "deleted_at": "string",
      "created_at": "string",
      "updated_at": "string"
    },
    "required_entitlement_id": 1,
    "required_entitlement": {
      "id": 1,
      "code": "string",
      "name": "string",
      "metadata": {},
      "is_active": true,
      "created_at": "string",
      "updated_at": "string",
      "is_unlimited": true
    },
    "units_per_call": 1,
    "units_per_char": 1,
    "units_per_image": 1,
    "units_per_second": 1,
    "min_billable_chars": 1,
    "lumcoin_per_token": 1,
    "lumc_precision": 1,
    "price_lumc_minor": 1,
    "unit_size": 1,
    "uses_money_first_pricing": true,
    "rate_unit": "string",
    "display_category": "string",
    "is_premium": true,
    "display_order": 1,
    "metadata": {},
    "is_active": true,
    "maintenance_mode": true,
    "access_level": "string",
    "maintenance_auto_resume": true,
    "maintenance_started_at": "string",
    "maintenance_note": "string",
    "created_at": "string",
    "updated_at": "string"
  },
  "config": {},
  "is_public": true,
  "folder_id": "string",
  "created_at": "string",
  "updated_at": "string"
}

UpdateTemplateRequest

object

Частичное обновление шаблона: передавайте только изменяемые поля. service_key и config меняются вместе — конфиг валидируется по схеме нового сервиса.

folder_idнеобязательное

UUID папки, в которую переместить шаблон. null — перенести в корень.

может быть nulluuid
string
service_keyнеобязательное

Новый код сервиса. Меняется только вместе с config — конфиг валидируется по схеме нового сервиса.

string
Пример elevenlabs
nameнеобязательное

Новое название шаблона, до 255 символов.

≤ 255 симв.
string
is_publicнеобязательное

Опубликовать шаблон в общем каталоге или снять с публикации.

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

Новые настройки генерации целиком (не частичный патч). Допустимая структура — GET /templates/config-options?service=<код>.

object
Показать пример
{
  "folder_id": "string",
  "service_key": "elevenlabs",
  "name": "string",
  "is_public": true,
  "config": {}
}

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

UserLibraryList

object
itemsобязательное

Записи текущей страницы в порядке сортировки списка.

array<object>
current_pageобязательное

Номер текущей страницы, с единицы.

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

Номер последней страницы. Обход списка закончен, когда current_page равен last_page.

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

Размер страницы, применённый сервером.

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

Сколько записей всего по фильтру.

integer
Показать пример
{
  "items": [
    {}
  ],
  "current_page": 1,
  "last_page": 1,
  "per_page": 1,
  "total": 1
}

Используется в операциях: 1

VoiceLanguage

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

Внутренний идентификатор языковой версии голоса.

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

Код языка, ISO-639-1. Он же — ключ в preview_urls.

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

Состояние клонирования для этого языка. Заказ принимается только на языке, где клон готов.

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

Длительность референсной записи в миллисекундах — на ней обучен клон.

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

Версия обученной модели. Растёт при переобучении голоса.

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

Почему клонирование не удалось. null, если сбоя не было.

может быть null
string
clone_started_atобязательное

Когда клонирование началось, ISO 8601.

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

Когда клонирование завершилось, ISO 8601. null — ещё идёт либо не удалось.

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

Когда языковая версия последний раз менялась, ISO 8601.

может быть nulldate-time
string
Показать пример
{
  "id": 1,
  "language_code": "string",
  "status": "string",
  "reference_duration_ms": 1,
  "model_version": 1,
  "failure_reason": "string",
  "clone_started_at": "string",
  "clone_completed_at": "string",
  "updated_at": "string"
}

Используется в операциях: 3

VoiceTag

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

Внутренний идентификатор метки.

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

Код метки — устойчивое значение для фильтрации, в отличие от переводимого name.

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

Название метки на языке аккаунта.

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

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

может быть null
string
colorобязательное

Цвет метки в HEX — подсказка для оформления.

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

Вес сортировки в списке меток: меньше — выше.

integer
Показать пример
{
  "id": 1,
  "code": "string",
  "name": "string",
  "description": "string",
  "color": "string",
  "sort_order": 1
}

Используется в операциях: 4

AssetKind

string
  • money
  • unit
Показать пример
"money"

BillingMode

string
  • subscription
  • pay_as_you_go
Показать пример
"subscription"

Ни одна операция справочника не ссылается на эту схему напрямую — она встречается внутри других объектов.

TaskType

string
  • tts
  • image
  • txt2img
  • remix
  • image_edit
  • voice_clone
  • sfx
  • music
  • voice_search
Показать пример
"tts"

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

Открыть .mdllm.md

спека 0.0.1