Подключите AITUNNEL к популярным инструментам разработки и автоматизации.

DeepSeek HarnessАгентный харнесс DeepSeek с рабочими пространствами и плагинами — модели через AITUNNEL
Claude CodeТерминальный агент Anthropic — правит код, запускает команды и git-операции через AITUNNEL
Codex CLICodex CLIOpen-source агент OpenAI в терминале — правки кода, ревью и автоматизация задач
Cursor IDEAI-редактор на VS Code с автодополнением Tab, агентом Composer и моделями через AITUNNEL
Qwen CodeCLI-агент для Qwen3-Coder — навигация по проекту, сборка фич и правки через AITUNNEL
OpenCodeОткрытый агент для терминала и IDE с поддержкой 75+ LLM-провайдеров
n8nВизуальная автоматизация с AI-агентами, RAG и интеграциями — модели через AITUNNEL
ClineAI-агент для VS Code — правки файлов, команды в терминале и браузер с подтверждением шагов
OpenClawAI-агент для Telegram, Discord и Slack — модели через один API-ключ AITUNNEL
Все инструменты

Задачи

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

Адрес
Авторизация
Ключ управления с правом usage:read

Здесь видны задачи всех ключей аккаунта и Студии — то же, что во вкладке «Задачи» кабинета. Интеграция со своим API-ключом читает свои задачи через GET /v1/jobs, /v1/videos и /v1/batches; ключ управления эти методы не вызывает.

Методы

МетодПравоЧто делает
GET /jobsusage:readЗадачи аккаунта, новые первыми
GET /jobs/summaryusage:readСколько задач выполняется и сколько денег они держат
GET /jobs/filtersusage:readМодели, на которых шли задачи периода
GET /jobs/{id}usage:readОдна задача
GET /jobs/{id}/resultsusage:readРезультаты завершённого пакета

Методы только читают. Отменить выполняющуюся задачу нельзя.

Список задач

curl "https://api.aitunnel.ru/v1/aitunnel/jobs?active=true" \
  -H "Authorization: Bearer sk-aitunnel-mgmt-xxx"
JSON
{
  "data": [
    {
      "id": "batch_1a2b3c4d5e6f708192a3b4c5d6e7f809",
      "kind": "batch",
      "status": "in_progress",
      "model": "gpt-5.4-mini",
      "key_id": 4218,
      "created_at": "2026-11-14T09:00:00.000Z",
      "expires_at": "2026-11-15T09:00:00.000Z",
      "settled_at": null,
      "reserved_rub": 0.46,
      "cost_rub": null,
      "refunded_rub": null,
      "error": null,
      "request": { "endpoint": "/v1/chat/completions" },
      "request_count": 3,
      "request_counts": { "total": 3, "completed": 1, "failed": 0 },
      "video_urls": []
    },
    {
      "id": "vid_9f8e7d6c5b4a39281706f5e4d3c2b1a0",
      "kind": "video",
      "status": "completed",
      "model": "seedance-2.0",
      "key_id": 4217,
      "created_at": "2026-11-14T08:00:00.000Z",
      "expires_at": "2026-11-14T09:00:00.000Z",
      "settled_at": "2026-11-14T08:01:00.000Z",
      "reserved_rub": 34,
      "cost_rub": 17,
      "refunded_rub": 17,
      "error": null,
      "request": {
        "size": "720x720",
        "duration": 2,
        "audio": true,
        "end_user": "customer-42"
      },
      "request_count": null,
      "request_counts": null,
      "video_urls": ["https://api.aitunnel.ru/public/jobs/vid_9f8e7d6c5b4a39281706f5e4d3c2b1a0/content?index=0"]
    }
  ],
  "next_cursor": null
}
ПараметрСмысл
from, toПериод: даты YYYY-MM-DD, целые сутки в timezone, обе включительно. Передаются вместе
from_time, to_timeВремя ЧЧ:ММ в первый и последний день периода. Без них — с начала первого дня до конца последнего
timezoneЧасовой пояс IANA, по умолчанию UTC
key_idТолько задачи, отправленные этим API-ключом
kindvideo или batch
statuspending, in_progress, completed, failed, expired, cancelled
modelТолько эта модель, имя целиком
activetrue — только задачи, которые ещё выполняются и держат резерв
job_idОдна задача по её id; период и остальные фильтры не учитываются
limitОт 1 до 100, по умолчанию 30
beforenext_cursor предыдущей страницы

next_cursor — передайте его в before, чтобы получить следующую страницу. null — страница последняя.

Задача

GET /jobs/{id} возвращает один такой объект.

ПолеСмысл
idid задачи — тот же, что вернул POST /v1/videos или POST /v1/batches
kindvideo или batch
statuspending и in_progress — выполняется; completed — готово; failed, expired, cancelled — не выполнена, резерв возвращён
modelМодель, как в каталоге
key_idAPI-ключ, которым задача отправлена. null у задачи из Студии и если ключа больше нет
created_at, expires_atКогда задача создана и крайний срок: незавершённая к этому моменту задача закрывается с возвратом резерва
settled_atКогда задача рассчитана. null, пока резерв удерживается
reserved_rubСколько отложено на время выполнения, ₽
cost_rubСколько задача стоила, ₽. null до расчёта
refunded_rubСколько из резерва вернулось, ₽. null до расчёта
errorПричина неудачи или null
requestПараметры, с которыми задача отправлена, те, что были: endpoint, size, duration, audio, continuation, end_user, session_id, app
request_count, request_countsУ пакета: сколько в нём запросов и сколько из них total, completed, failed. У видео — null
video_urlsСсылки на видео готовой и оплаченной задачи, по одной на ролик. Иначе пустой список
  • Пока задача выполняется, известен только резерв. Цена появляется после расчёта: cost_rub — сколько списано, refunded_rub — остаток резерва, который вернулся.
  • Чтение не обращается к провайдеру: статус обновляется в фоне, поэтому может отставать на несколько секунд.
  • Ссылки из video_urls открываются без ключа: их можно поставить прямо в плеер. &download=1 в конце — та же ссылка скачивает файл. Не публикуйте id задачи, если видео не должно быть доступно всем.

Сводка и фильтры

GET /jobs/summary — сколько задач выполняется сейчас и сколько рублей они держат в резерве:

JSON
{
  "active": 2,
  "reserved_rub": 34.46
}

GET /jobs/filters — модели, на которых шли задачи. Принимает тот же период и key_id, что список:

JSON
{
  "models": ["gpt-5.4-mini", "seedance-2.0"]
}

Результаты пакета

GET /jobs/{id}/results отдаёт ответы завершённого пакета: по строке на запрос.

curl https://api.aitunnel.ru/v1/aitunnel/jobs/batch_1a2b3c4d5e6f708192a3b4c5d6e7f809/results \
  -H "Authorization: Bearer sk-aitunnel-mgmt-xxx"
JSON
{
  "id": "batch_1a2b3c4d5e6f708192a3b4c5d6e7f809",
  "model": "gpt-5.4-mini",
  "status": "completed",
  "endpoint": "/v1/chat/completions",
  "request_counts": { "total": 2, "completed": 1, "failed": 1 },
  "results": [
    {
      "custom_id": "a",
      "status_code": 200,
      "body": {
        "id": "gen-1",
        "model": "gpt-5.4-mini",
        "choices": []
      }
    },
    { "custom_id": "b", "status_code": 429, "body": null }
  ]
}
  • custom_id — ваш идентификатор запроса в пакете, status_code — чем он закончился, body — ответ модели или null.
  • Результаты есть только у пакета в статусе completed. Они запрашиваются у провайдера при каждом чтении.

Ошибки

СтатусСмысл
400invalid_request — неверный параметр (error.metadata.fields) или результаты запрошены у видео: «Результаты есть только у batch-задач.»
401authentication_failed — ключа нет, он неверный, отозван или истёк
403permission_denied — у ключа нет нужного права, IP не в списке разрешённых или метод вызван API-ключом
404not_found — «Задача не найдена»: такого id в аккаунте нет. Или «Результаты задачи больше не хранятся.»
409invalid_request — у задачи нет результатов. metadata.code: job_not_finished — ещё выполняется, job_refunded — не выполнена, деньги возвращены
502provider_unavailable — «Не удалось получить результаты задачи. Повторите попытку.»