Братуха для ИИ-агентов
Как это работает
Что агент делает сам и что проверяет сервер.
Агент — Claude Code, Codex, Cursor, Claude Desktop, OpenCode или ваш собственный скрипт — получает доступ к Братухе через обычный API-ключ. Дальше он работает так же, как человек на сайте, только без интерфейса:
- находит нужную нейросеть в каталоге (
GET /tools); - читает её схему: какие поля есть, что обязательно, какие файлы принимаются (
GET /tools/{slug}/schema); - при необходимости загружает файл во временное хранилище (
POST /uploads); - узнаёт точную цену до списания (
POST /operations/estimate); - запускает операцию с ограничением цены и ключом повтора (
POST /operations); - ждёт результат (
GET /operations/{id}) и скачивает файлы по ссылкам.
Списание идёт с вашего баланса Братухи. Три предохранителя защищают бюджет: серверный предел цены max_price, защита от повторного запуска Idempotency-Key и лимит трат на ключ в сутки и в месяц.
Чат-модели (GPT, Claude, Gemini, Grok, Qwen, DeepSeek) доступны тем же ключом через OpenAI- и Anthropic-совместимые эндпоинты, поэтому Claude Code и Codex могут работать на моделях Братухи целиком, без аккаунтов у зарубежных поставщиков.
Ключ и лимит трат
Отдельный ключ для агента и предел расходов в сутки и месяц.
- Откройте настройки API и создайте отдельный ключ для агента — так его легко отозвать, а траты видны отдельно.
- Полный ключ
brth_...показывается один раз. Сохраните его в менеджере секретов или переменной окружения, не в файле проекта и не в чате с агентом. - Нажмите «Лимиты» у ключа и задайте предел трат в сутки и в месяц. Когда лимит исчерпан, ключ перестаёт запускать генерации и чат до начала следующих суток или месяца; деньги при отказе не списываются. Сутки считаются с 03:00 по московскому времени.
Все инструкции ниже ожидают, что ключ лежит в переменной окружения BRATUHA_API_KEY:
export BRATUHA_API_KEY=brth_...
Способ подключения
Скиллы, MCP, HTTP API или только чат-модели — что выбрать.
- Что у васClaude Code, Codex, Cursor или другой агент с поддержкой agent skillsЧто подключатьСкиллы — одна команда установкиЧто получает агентПошаговую инструкцию, как искать нейросети, считать цену и запускать операции через HTTP API, плюс настройку чат-моделей
- Что у васCursor, Claude Code, Claude Desktop или другой MCP-клиентЧто подключатьMCP-сервер
https://bratuha.ru/api/mcpЧто получает агентСемь готовых инструментов: поиск, схема, оценка цены, загрузка файла, запуск, статус, баланс - Что у васСвой агент, n8n, Make, скрипт на Python или Node.jsЧто подключатьHTTP API напрямуюЧто получает агентТе же маршруты, что используют скиллы и MCP
- Что у васНужны только чат-модели в Claude Code, Codex, OpenCode, Cline или Roo CodeЧто подключатьЧат-эндпоинтыЧто получает агентOpenAI Chat Completions, OpenAI Responses и Anthropic Messages
| Что у вас | Что подключать | Что получает агент |
|---|---|---|
| Claude Code, Codex, Cursor или другой агент с поддержкой agent skills | Скиллы — одна команда установки | Пошаговую инструкцию, как искать нейросети, считать цену и запускать операции через HTTP API, плюс настройку чат-моделей |
| Cursor, Claude Code, Claude Desktop или другой MCP-клиент | MCP-сервер https://bratuha.ru/api/mcp | Семь готовых инструментов: поиск, схема, оценка цены, загрузка файла, запуск, статус, баланс |
| Свой агент, n8n, Make, скрипт на Python или Node.js | HTTP API напрямую | Те же маршруты, что используют скиллы и MCP |
| Нужны только чат-модели в Claude Code, Codex, OpenCode, Cline или Roo Code | Чат-эндпоинты | OpenAI Chat Completions, OpenAI Responses и Anthropic Messages |
Способы можно сочетать: например, скилл для правил работы и MCP для инструментов.
Скиллы
Одна команда — и агент знает порядок работы с Братухой.
npx skills add https://bratuha.ru
Скиллы — это инструкции в формате Agent Skills, которые агент читает перед работой. Установщик находит их по адресу https://bratuha.ru/.well-known/agent-skills/index.json и ставит в папку скиллов вашего агента (Claude Code, Codex, Cursor и другие поддерживаемые клиенты).
Устанавливаются два скилла:
- bratuha-media — нейросети изображений, видео, аудио и 3D: обязательный порядок «каталог → схема → оценка → запуск с
max_priceиIdempotency-Key→ ожидание результата», правило подтверждать запуск дороже 100 ₽, если бюджет не задан, и разбор ошибок API. - bratuha-chat-agents — подключение чат-моделей Братухи к Claude Code, Codex, OpenCode, Cline и Roo Code и типичные ошибки настройки.
После установки скажите агенту, что хотите, например: «Сделай озвучку этого текста через Братуху и сохрани в папку audio». Агент сам найдёт нейросеть, покажет цену и спросит подтверждение.
Скиллы читают ключ только из BRATUHA_API_KEY. Перезапустите агент из терминала, где эта переменная задана.
MCP
Семь готовых инструментов для Cursor, Claude Code и Claude Desktop.
MCP-сервер работает по протоколу Streamable HTTP без сессий и без OAuth: ключ передаётся заголовком Authorization: Bearer brth_.... Каждый инструмент — тонкая обёртка над соответствующим маршрутом HTTP API, поэтому цены, проверки и лимиты у них общие.
- Инструмент
search_toolsЧто делаетПоиск нейросетей:query,kind(image,video,audio,text),categoryПлатныйНет - Инструмент
get_tool_schemaЧто делаетJSON Schema входа, пример и правила цены поslugПлатныйНет - Инструмент
estimate_priceЧто делаетПроверяетinputи возвращает точную цену без списанияПлатныйНет - Инструмент
upload_fileЧто делаетЗагружает файл до 10 МБ (base64 или data URL) на 8 дней, возвращает ссылкуПлатныйНет - Инструмент
run_toolЧто делаетСоздаёт операцию;max_priceобязателен,idempotency_key— по желаниюПлатныйДа - Инструмент
get_operationЧто делаетСтатус и результат операцииПлатныйНет - Инструмент
get_balanceЧто делаетБаланс, траты и остаток лимитов ключаПлатныйНет
| Инструмент | Что делает | Платный |
|---|---|---|
search_tools | Поиск нейросетей: query, kind (image, video, audio, text), category | Нет |
get_tool_schema | JSON Schema входа, пример и правила цены по slug | Нет |
estimate_price | Проверяет input и возвращает точную цену без списания | Нет |
upload_file | Загружает файл до 10 МБ (base64 или data URL) на 8 дней, возвращает ссылку | Нет |
run_tool | Создаёт операцию; max_price обязателен, idempotency_key — по желанию | Да |
get_operation | Статус и результат операции | Нет |
get_balance | Баланс, траты и остаток лимитов ключа | Нет |
Ответ маршрута с ошибкой приходит агенту как ошибка инструмента, а не как результат, поэтому агент не примет отказ за успех.
Cursor
Добавьте сервер в ~/.cursor/mcp.json (для всех проектов) или в .cursor/mcp.json проекта. Cursor подставит переменную окружения вместо ${env:BRATUHA_API_KEY}, поэтому сам ключ в файл не попадает.
{
"mcpServers": {
"bratuha": {
"url": "https://bratuha.ru/api/mcp",
"headers": {
"Authorization": "Bearer ${env:BRATUHA_API_KEY}"
}
}
}
}Claude Code
Одна команда в терминале, где задана переменная окружения:
claude mcp add --transport http bratuha https://bratuha.ru/api/mcp \ --header "Authorization: Bearer $BRATUHA_API_KEY"
Claude Desktop
Приложение не умеет добавлять свой заголовок к удалённому серверу, поэтому используется мост mcp-remote. Добавьте блок в claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\). Ключ в этом файле хранится открытым текстом — создайте для Desktop отдельный ключ с лимитом.
{
"mcpServers": {
"bratuha": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://bratuha.ru/api/mcp",
"--header", "Authorization:${AUTH_HEADER}"
],
"env": { "AUTH_HEADER": "Bearer brth_..." }
}
}
}Чат-модели в кодинг-агентах
Claude Code, Codex, OpenCode и другие на моделях Братухи.
Один ключ открывает три совместимых эндпоинта. Список моделей и их цены за миллион токенов — GET /api/v1/models; не берите названия моделей из памяти, они меняются.
- Эндпоинт
POST /api/v1/chat/completionsФорматOpenAI Chat CompletionsКто используетOpenCode, Cline, Roo Code, Continue, библиотеки OpenAI - Эндпоинт
POST /api/v1/responsesФорматOpenAI ResponsesКто используетCodex CLI - Эндпоинт
POST /api/v1/messagesФорматAnthropic MessagesКто используетClaude Code, Anthropic SDK
| Эндпоинт | Формат | Кто использует |
|---|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions | OpenCode, Cline, Roo Code, Continue, библиотеки OpenAI |
POST /api/v1/responses | OpenAI Responses | Codex CLI |
POST /api/v1/messages | Anthropic Messages | Claude Code, Anthropic SDK |
Списание — по фактическим токенам после ответа. Перед запросом резервируется оценка стоимости; если на балансе или в лимите ключа её нет, запрос отклоняется до обращения к модели.
Claude Code
Базовый адрес — без /v1/messages: Claude Code добавляет путь сам. Переменные должны быть видны процессу, который запускает claude.
export ANTHROPIC_BASE_URL=https://bratuha.ru/api export ANTHROPIC_API_KEY="$BRATUHA_API_KEY" export ANTHROPIC_MODEL=claude-sonnet-5 export ANTHROPIC_SMALL_FAST_MODEL=claude-sonnet-5
Codex CLI
Добавьте блок в ~/.codex/config.toml и запускайте codex --profile bratuha. env_key — имя переменной, а не сам ключ. Ответы не хранятся на сервере, поэтому Codex передаёт историю целиком (его режим по умолчанию, store = false); previous_response_id не поддерживается. Из инструментов Responses поддержаны только function: встроенные инструменты OpenAI (web search, file search) недоступны.
[model_providers.bratuha] name = "Bratuha" base_url = "https://bratuha.ru/api/v1" wire_api = "responses" env_key = "BRATUHA_API_KEY" [profiles.bratuha] model_provider = "bratuha" model = "gpt-6-sol"
OpenCode, Cline, Roo Code, Continue
Выберите OpenAI-совместимого провайдера: Base URL https://bratuha.ru/api/v1, ключ из BRATUHA_API_KEY, модель из GET /api/v1/models. Если клиент просит полный путь, укажите /chat/completions.
Если агент не подключается, загляните в раздел «Что-то не работает».
HTTP API для своих агентов
Полный цикл запросов с примерами ответов.
Базовый адрес — https://bratuha.ru/api/v1, авторизация — заголовок Authorization: Bearer brth_.... Все ответы и ошибки — JSON. Машиночитаемые версии документации: /developers/api.md и /tools/{slug}/api.md для каждой нейросети, краткая карта сайта для моделей — /llms.txt.
Ниже — полный цикл с реальными формами ответов. Полный HTTP-контракт операций, формат ошибок и примеры на cURL есть на странице Public API.
1. Найти нейросеть
GET /tools?q=&kind=&category= — только нейросети с открытым API. q ищет подстроку в slug, названии, описании, провайдере и категориях; kind — тип результата (image, video, audio, text); category — имя или подпись категории каталога (lip-sync, video-from-images, image-3d, «Липсинк»).
{
"object": "list",
"data": [
{
"slug": "kling-3-0",
"name": "Kling 3.0",
"description": "…",
"provider": "…",
"categories": ["video", "video-from-images", "kling"],
"output_types": ["video"],
"pricing": { "type": "variable", "from": 11, "currency": "RUB" },
"runtime": {
"requests_24h": 120, "success_rate_24h": 97.5,
"median_duration_ms_24h": 180000
},
"schema_url": "/api/v1/tools/kling-3-0/schema",
"documentation_url": "/tools/kling-3-0/api"
}
]
}
pricing.from — цена «от»; точная цена зависит от параметров и считается оценкой. runtime — живая статистика запусков за сутки и неделю, по ней агент может выбрать более быструю или стабильную нейросеть.
2. Прочитать схему
GET /tools/{slug}/schema возвращает input_schema (JSON Schema 2020-12), pricing, example_input и documentation_markdown. Схема — единственный источник допустимых полей: не подставляйте параметры по памяти.
Расширения x-bratuha-* в схеме:
x-bratuha-file-kindиx-bratuha-extensions— какой файл ждёт поле (image,video,audio,file) и допустимые расширения;x-bratuha-option-labels— русские подписи значенийenum;x-bratuha-show-if— поле имеет смысл только при указанных значениях других полей;x-bratuha-required-when-visible— обязательно, когда видно; в общийrequiredтакие поля не входят.
Поля с точкой в идентификаторе (imagine.prompt) передаются вложенным объектом: {"imagine": {"prompt": "…"}}.
3. Загрузить файл
Нейросети принимают файлы только по публичным http(s)-ссылкам. Если файл лежит у агента локально:
POST /uploads— тело{"filename", "content_type", "data"}, гдеdata— base64 или data URL, размер до 10 МБ. Ответ:{"url", "storage_path", "expires_in_days": 8}.POST /uploads/presign— тело{"filename", "content_type", "size"}для файлов до 100 МБ. Ответ содержитurl,fieldsиpublicUrl: отправьте формуmultipart/form-dataнаurlсо всемиfieldsи самим файлом в полеfile(хранилище ответит 201), затем используйтеpublicUrlвinput.
Допустимые типы: изображения (JPEG, PNG, WebP), видео (MP4, MOV, WebM), аудио (MP3, WAV, M4A, AAC, FLAC, OGG, Opus), текстовые файлы и JSON. Файлы API удаляются через 8 дней и не занимают место в библиотеке.
4. Узнать цену
POST /operations/estimate с телом {"tool", "input"} проходит ту же проверку, что и запуск, но ничего не списывает:
{ "tool": "elevenlabs-eleven-v4", "effective_tool": "elevenlabs-eleven-v4",
"cost": 0.08, "currency": "RUB", "input": { "...": "нормализованные значения" } }
Ошибка валидации приходит кодом 400 с текстом, какое поле исправить.
5. Запустить
POST /operations с заголовком Idempotency-Key и телом {"tool", "input", "max_price"}:
max_price— предел в рублях. Если точная цена выше, сервер отвечает 400 с ценой в сообщении и ничего не создаёт.Idempotency-Key— любая строка от 1 до 255 символов, обычно UUID. Повтор с тем же ключом и тем же телом в течение 24 часов возвращает ту же операцию с заголовкомIdempotent-Replayed: trueбез второго списания. Тот же ключ с другим телом — 409idempotency_conflict.
{ "id": "801f5327-…", "status": "queued", "tool": "elevenlabs-eleven-v4",
"cost": 0.08, "balance_after": 1234.56, "created_at": "2026-10-02T18:32:48Z" }
6. Дождаться результата
GET /operations/{id} не чаще раза в секунду на одну операцию (иначе 429 с Retry-After: 1). Статусы: queued → processing → completed или failed.
{ "id": "801f5327-…", "status": "completed", "cost": 0.08,
"completed_at": "2026-10-02T18:32:57Z",
"result": { "type": "audio", "urls": ["https://…/file.mp3"], "files": [ { "url": "…" } ] },
"error_message": null }
При failed стоимость автоматически возвращается на баланс, причина — в error_message. Ссылки на результат могут быть временными: скачайте файлы туда, куда просил пользователь.
7. Баланс и лимиты
GET /balance:
{ "balance": 1234.56, "currency": "RUB",
"limits": { "daily": 500, "monthly": null, "spent_today": 12.4, "spent_this_month": 310.2,
"daily_remaining": 487.6, "monthly_remaining": null, "period_timezone": "UTC" } }
null в daily или monthly означает «без лимита».
Лимиты и безопасность
Лимит трат, частота запросов, ключ и повторы.
Лимит трат ключа. Перед каждым платным действием сервер резервирует его цену в лимите ключа; после фактического списания резерв заменяется реальной суммой, при отказе — освобождается. Превышение возвращает key_spend_limit_exceeded до обращения к нейросети: код 402 для операций, Chat Completions и Responses, код 400 в конверте Anthropic для Messages. Возвраты за неудачные операции в счётчике лимита не учитываются — лимит считает попытки, а не итоговые расходы. Сутки и месяц считаются по UTC, то есть с 03:00 по Москве.
Частота. На один ключ — 60 запросов в минуту на создание операций и чат-запросы вместе и не больше 8 одновременных чат-потоков; одну операцию можно опрашивать раз в секунду. Каталог, схемы, оценка и баланс в этот счётчик не входят. При превышении — 429 с Retry-After.
Что делает скилл, а что сервер. Подтверждение запуска дороже 100 ₽ при неясном бюджете — правило скилла, его соблюдает агент. max_price, Idempotency-Key и лимиты ключа проверяет сервер независимо от того, каким клиентом пришёл запрос.
Ключ. Никогда не вставляйте brth_... в чат, скриншот, репозиторий или настройки проекта, которые попадают в git. Если ключ утёк — отключите или удалите его в настройках API: запросы с ним сразу начнут получать 401.
Повторы. 503 с Retry-After — временная перегрузка, повторите тот же запрос с тем же Idempotency-Key. 500 на создании операции без Idempotency-Key повторять вслепую не стоит: сверьтесь со списком операций в кабинете.
Коды ошибок
Что означает каждый код и что с ним делать.
Ошибки HTTP API приходят в виде { "error": { "code", "message", "request_id" } }. Чат-эндпоинты отвечают в формате OpenAI или Anthropic с теми же кодами в поле error.code.
- 401
unauthorized / invalid_api_keyКлюч не передан, не распознан или отключён. Проверьте заголовок Authorization и переменную окружения.
- 403
account_blockedАккаунт владельца ключа заблокирован.
- 404
tool_not_foundНейросети нет, она выключена или закрыта для API. Ищите через GET /tools.
- 404
operation_not_foundОперация не найдена или принадлежит другому пользователю.
- 404
model_not_foundЧат-модель с таким ID недоступна. Обновите список из GET /models.
- 400
validation_errorНеверные параметры, цена выше max_price или некорректный Idempotency-Key. Текст говорит, что исправить.
- 400
insufficient_fundsНа балансе не хватает средств. Пополните баланс на сайте.
- 402
key_spend_limit_exceededИсчерпан дневной или месячный лимит ключа. Деньги не списаны. Лимит меняется в настройках API.
- 409
idempotency_conflictЭтот Idempotency-Key уже использован с другим телом запроса. Для нового запуска нужен новый ключ.
- 429
rate_limit_exceededСлишком часто. Повторите после Retry-After.
- 503
service_unavailableВременная перегрузка: операция не создана, деньги не списаны. Повторите с тем же Idempotency-Key.
- 500
internal_errorВнутренняя ошибка. Сохраните X-Request-Id из заголовка ответа и напишите в поддержку.
| HTTP | error.code | Что делать |
|---|---|---|
| 401 | unauthorized / invalid_api_key | Ключ не передан, не распознан или отключён. Проверьте заголовок Authorization и переменную окружения. |
| 403 | account_blocked | Аккаунт владельца ключа заблокирован. |
| 404 | tool_not_found | Нейросети нет, она выключена или закрыта для API. Ищите через GET /tools. |
| 404 | operation_not_found | Операция не найдена или принадлежит другому пользователю. |
| 404 | model_not_found | Чат-модель с таким ID недоступна. Обновите список из GET /models. |
| 400 | validation_error | Неверные параметры, цена выше max_price или некорректный Idempotency-Key. Текст говорит, что исправить. |
| 400 | insufficient_funds | На балансе не хватает средств. Пополните баланс на сайте. |
| 402 | key_spend_limit_exceeded | Исчерпан дневной или месячный лимит ключа. Деньги не списаны. Лимит меняется в настройках API. |
| 409 | idempotency_conflict | Этот Idempotency-Key уже использован с другим телом запроса. Для нового запуска нужен новый ключ. |
| 429 | rate_limit_exceeded | Слишком часто. Повторите после Retry-After. |
| 503 | service_unavailable | Временная перегрузка: операция не создана, деньги не списаны. Повторите с тем же Idempotency-Key. |
| 500 | internal_error | Внутренняя ошибка. Сохраните X-Request-Id из заголовка ответа и напишите в поддержку. |
Что-то не работает
Частые проблемы при настройке: что видите, почему и как исправить.
- Что видите401
unauthorized, агент говорит, что ключа нетПочемуПеременнаяBRATUHA_API_KEYне видна процессу агентаЧто сделатьЗадайте её командойexportи запустите агент из того же терминала. Приложение, открытое из Dock или меню «Пуск», переменных терминала не видит — запустите его из терминала или перезапустите после изменения профиля оболочки - Что видитеClaude Code просит войти в аккаунт AnthropicПочемуНе заданы
ANTHROPIC_BASE_URLиANTHROPIC_API_KEYЧто сделатьВыполните блок из раздела Claude Code в том же терминале и проверьтеecho $ANTHROPIC_BASE_URL - Что видите404 на пути вроде
/messages/messagesили/v1/v1ПочемуВ базовом адресе лишняя часть пути: клиент добавляет её самЧто сделатьClaude Code —https://bratuha.ru/api; Codex и OpenAI-совместимые клиенты —https://bratuha.ru/api/v1 - Что видите404
model_not_foundПочемуНазвание модели взято из памяти или старой настройкиЧто сделатьВозьмите точный ID изGET /api/v1/models - Что видитеMCP отвечает 403ПочемуЗапрос пришёл с заголовком
Originчужого сайта — так делают браузерные клиентыЧто сделатьПодключайтесь из настольного приложения или терминала: Cursor, Claude Code, Claude Desktop - Что видитеClaude Desktop не показывает инструменты БратухиПочемуНет Node.js для моста
mcp-remoteили ошибка в JSON настройкиЧто сделатьУстановите Node.js 18+, сверьте блок с примером и полностью закройте и откройте приложение - Что видите402
key_spend_limit_exceededПочемуИсчерпан дневной или месячный лимит ключаЧто сделатьПодождите до 03:00 по Москве (или до нового месяца) либо поднимите лимит в настройках API - Что видите400: цена выше
max_priceПочемуС выбранными параметрами генерация дороже пределаЧто сделатьПокажите цену пользователю и после согласия повторите запуск с большимmax_priceили выберите параметры дешевле - Что видитеНейросеть не принимает файлПочемуПередан локальный путь или ссылка, закрытая для интернетаЧто сделатьЗагрузите файл через
POST /uploadsили/uploads/presignи передайте полученную ссылку - Что видите429
rate_limit_exceededПочемуСлишком частый опрос операции или больше 60 запусков в минутуЧто сделатьЖдите столько секунд, сколько вRetry-After; длинные видео опрашивайте раз в 5–10 секунд
| Что видите | Почему | Что сделать |
|---|---|---|
401 unauthorized, агент говорит, что ключа нет | Переменная BRATUHA_API_KEY не видна процессу агента | Задайте её командой export и запустите агент из того же терминала. Приложение, открытое из Dock или меню «Пуск», переменных терминала не видит — запустите его из терминала или перезапустите после изменения профиля оболочки |
| Claude Code просит войти в аккаунт Anthropic | Не заданы ANTHROPIC_BASE_URL и ANTHROPIC_API_KEY | Выполните блок из раздела Claude Code в том же терминале и проверьте echo $ANTHROPIC_BASE_URL |
404 на пути вроде /messages/messages или /v1/v1 | В базовом адресе лишняя часть пути: клиент добавляет её сам | Claude Code — https://bratuha.ru/api; Codex и OpenAI-совместимые клиенты — https://bratuha.ru/api/v1 |
404 model_not_found | Название модели взято из памяти или старой настройки | Возьмите точный ID из GET /api/v1/models |
| MCP отвечает 403 | Запрос пришёл с заголовком Origin чужого сайта — так делают браузерные клиенты | Подключайтесь из настольного приложения или терминала: Cursor, Claude Code, Claude Desktop |
| Claude Desktop не показывает инструменты Братухи | Нет Node.js для моста mcp-remote или ошибка в JSON настройки | Установите Node.js 18+, сверьте блок с примером и полностью закройте и откройте приложение |
402 key_spend_limit_exceeded | Исчерпан дневной или месячный лимит ключа | Подождите до 03:00 по Москве (или до нового месяца) либо поднимите лимит в настройках API |
400: цена выше max_price | С выбранными параметрами генерация дороже предела | Покажите цену пользователю и после согласия повторите запуск с большим max_price или выберите параметры дешевле |
| Нейросеть не принимает файл | Передан локальный путь или ссылка, закрытая для интернета | Загрузите файл через POST /uploads или /uploads/presign и передайте полученную ссылку |
429 rate_limit_exceeded | Слишком частый опрос операции или больше 60 запусков в минуту | Ждите столько секунд, сколько в Retry-After; длинные видео опрашивайте раз в 5–10 секунд |
Вопросы и ответы
Полный контракт операций, формат ошибок и примеры cURL — на странице Public API. Ключи и лимиты — в настройках API.