Skip to content
Lumean

Para agentes de IA

Puntos de entrada a la documentación legibles por máquina, orden de lectura y reglas de la API. Si configura un agente, dele el enlace a esta página o a /llms.txt.

Puntos de entrada

  • /llms.txt

    Un mapa de todas las páginas de la documentación con enlaces a sus versiones Markdown. Empiece aquí.

    https://lumean.app/llms.txt
  • llm.md

    Toda la API en un archivo, con secciones y recetas de principio a fin. Úselo cuando necesite el contexto completo. El archivo solo está en ruso.

    https://api.lumean.app/docs/llm.md
  • .md

    La versión Markdown de cualquier página: sustituya /developers/docs/ en la dirección por /developers/docs/md/. Úsela cuando necesite un solo tema.

    https://lumean.app/es/developers/docs/md/<path>
  • OpenAPI

    El contrato REST: operaciones, parámetros y esquemas. Para generar un cliente y tipos exactos. Disponible en ruso e inglés.

    https://api.lumean.app/docs/public-openapi.en.json
  • AsyncAPI

    Canales y eventos de WebSocket. Para suscribirse a los estados de los pedidos en lugar de consultarlos.

    https://api.lumean.app/docs/public-asyncapi.en.json

Orden de lectura

  1. Lea /llms.txt y elija las páginas que necesita.
  2. Descargue sus versiones Markdown, no el HTML.
  3. Tome los esquemas y tipos de OpenAPI.
  4. Envíe las solicitudes con el encabezado X-API-KEY. La clave la crea el titular de la cuenta en su cuenta.

Reglas de la API

Los agentes fallan en estas reglas con más frecuencia. /llms.txt y la versión Markdown de esta página contienen las mismas reglas en inglés.

  • La voz se define en la plantilla

    Un pedido no tiene campo voice_id. La voz se guarda en config.tts_settings.voice_id de la plantilla, y el pedido hace referencia a la plantilla con template_id. Para locutar un solo pedido con otra voz, envíe config_override.tts_settings.voice_id. El texto a locutar va en input_text.

  • Los pedidos se ejecutan de forma asíncrona

    POST /orders responde 201 con estado created y todavía sin resultado. El estado se consulta con GET /orders/{order} o por WebSocket. partially_completed no es un estado final: algunos fragmentos fallaron y puede reintentarlos o cancelar el pedido.

  • result.files[] contiene rutas, no enlaces

    El enlace de descarga lo devuelve POST /storage/url y es válido durante una hora. Los archivos del pedido se conservan 7 días después de que termina.

  • Repetir un pedido crea un pedido nuevo

    POST /orders/{order}/retry crea un pedido nuevo con los mismos parámetros y se cobra de nuevo. Los fragmentos fallidos se reintentan dentro del pedido original: POST /orders/{order}/items/retry-failed. POST /orders no tiene clave de idempotencia, así que tras un corte de conexión busque primero el pedido en la lista.

  • Un 429 tiene varias causas

    Puede ser el límite de frecuencia de solicitudes, la cuota de tokens de la clave, un límite de la suscripción, el límite de tareas simultáneas o una pausa tras bloqueos de la política de contenido. La causa la indica el campo reason. Si la respuesta trae un encabezado Retry-After, espere el tiempo que indica. concurrency_limit_exceeded llega sin él y se levanta cuando terminan sus pedidos activos. limit_exceeded es el límite de la suscripción: reintentar no sirve hasta que se reinicie el periodo o cambie el plan.

Lo que los modelos entienden mal

La lista de la sección 0 de llm.md. Añádala al contexto del agente antes de la primera solicitud.

  1. TTS-голос задаётся только через шаблон, а не полем заказа. Нет orders.voice_id. Порядок: положить voice_id в config.tts_settings.voice_id шаблона → создать заказ по этому шаблону. См. §11 (Рецепты).
  2. Текст для TTS передаётся в top-level поле input_text запроса POST /orders (сырая строка). НЕ кладите текст TTS в task_data. А вот для template-less SFX/music промпт идёт в task_data.
  3. У заказов НЕТ update/delete. Доступны только index, store, show, плюс действия cancel/retry. PUT/PATCH/DELETE /orders/{order} вернут 405/404.
  4. Два независимых лимита: rate-limit по числу запросов (429, reason: rate_limit_exceeded, заголовок Retry-After) и токен-квота по объёму генерации (429, reason: token_quota_exceeded; Retry-After — только у окна со сбросом по времени, у пула window: "quota" его нет). См. §6.
  5. Пагинация с разными базами: внешние каталоги голосов (voices/elevenlabs/library, voices/heygen) считают page с 0; обычные списки (orders, templates, templates/browse, а также каталог и клоны Cartesia voices/cartesia, voices/cartesia/clones, а также Fish Audio voices/fishaudio, voices/fishaudio/clones) — current_page с 1.
  6. Субтитры и другие сервисные файлы лежат ОТДЕЛЬНО — в result.service_files[], не в result.files[]. Оба поля — плоские массивы строк-путей (напр. .../output/final/service/subtitles.srt), генерируется только для TTS. Скачивается тем же POST /storage/url. См. §7.10.
  7. Сбой чанка чинится на уровне чанка, не заказа. У чанка бывают статусы failed (тех. ошибка) и policy_flagged (контент отклонён политикой провайдера). Частично готовый заказ (partially_completed) доводят до completed так: один вызов POST /orders/{order}/items/retry-failed забирает все failed разом, а policy_flagged добивают поштучно POST /orders/{order}/items/{item}/retry с исправленным text (повтор с тем же текстом бессмыслен). Order-level retry для этого не годится — он создаёт новый заказ. См. §7.11.
  8. Бесплатна только пауза {{pause}}; квадратные скобки и <break/> оплачиваются. {{pause=2s}} — наш формат: тишину строит воркер, до провайдера строка не доезжает, в цену и в длину фрагмента не входит. Любые […] ([шёпот], а заодно [1], [sic], [00:12]) и <break time="…"/> — синтаксис провайдера: он получает их целиком, модель читает их как указание диктору, а символы тарифицируются и занимают место во фрагменте. (ремарка), <тег>, *звёздочки* — прозвучат вслух и тоже тарифицируются. См. §8.3.
  9. Тонкие настройки голоса включаются флагом. Без tts_settings.advanced_voice_settings: true (по умолчанию false) на eleven_v3* до движка доезжает только stability, на eleven_v4* — stability и similarity_boost; остальные значения (в том числе speed) молча не влияют на звук — ошибки не будет. На прочих моделях флаг на звук не влияет. См. §8.2.
  10. Свой голос для Cartesia клонируется по API, но асинхронно. POST /voices/cartesia/clones (право voices.write) сразу отвечает 201 с клоном в статусе pending, а voice_id появляется только в статусе ready — ждите событие voice_clone.updated (§10) или опрашивайте GET /voices/cartesia/clones. В шаблон кладут voice_id клона, а НЕ его id. Клонирование требует живой подписки с Cartesia, только если сервис закрыт для оплаты с баланса (иначе 402 no_subscription), и упирается в потолок клонов: 2 без подписки, лимит тарифа с подпиской. См. §7.12, Рецепт H. То же у Fish Audio (POST /voices/fishaudio/clones, §7.12): правила те же, что у Cartesia, лимит клонов у Fish свой, voice_id — строка из 32 hex-символов, а не UUID.
  11. Не подбирайте адреса — все эндпоинты описаны в этом файле. Путь, которого нет, отвечает 404 с reason: "endpoint_not_found", текстом-подсказкой и ссылками на этот файл. Перебор несуществующих путей распознаётся как http probing: после нескольких таких 404 IP банится на ВСЕХ путях — 429 reason: "ip_banned" (5 мин → 10 → 30 → 1 ч → 24 ч). Получили endpoint_not_found — остановитесь и найдите нужный запрос здесь. См. §6.1, §12.
  12. Есть отдельный AI API (LLM-гейтвей), не входящий в /api/public/*. OpenAI- и Anthropic-совместимые ручки на https://api.lumean.app/v1 (/chat/completions, /responses, /messages, /models, /images/*) работают с ЛЮБЫМ ключом кабинета (Authorization: Bearer или x-api-key), оплата с баланса LUMC. Полностью — §14.
  13. Цены AI-моделей не фиксированы. Они меняются вслед за поставщиками (иногда несколько раз в день), модель может временно пропасть. Перед дорогой генерацией сверяйте цену — GET /api/public/ai/models/{key} (любой ключ, ETag → 304, пока цена прежняя) — и держите месячный лимит ключа. См. §14.6.

Esta página para IA

Open .mdllm.md

Updated 18/10/2026 · versión de la API 1.0.0