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

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

Информация о запросе

Стоимость, токены и время одного запроса по его ID. Метод AITUNNEL, не OpenAI.

Эндпоинт
Авторизация
Тот же Bearer, что для чата

ID приходит в поле id ответа модели (chat-…, resp-…, msg-…, emb-…, img-… и другие), он же показан в истории расходов в кабинете.

Как вызвать

curl https://api.aitunnel.ru/v1/aitunnel/requests/chat-034pYx9KaOzvCxWdvYoAvp \
  -H "Authorization: Bearer sk-aitunnel-xxx"

Ответ

JSON
{
  "id": "chat-034pYx9KaOzvCxWdvYoAvp",
  "object": "request",
  "created_at": "2026-10-31T16:43:24.774Z",
  "endpoint": "/v1/chat/completions",
  "model": "deepseek-v4.1-flash-1017",
  "provider": "DeepSeek",
  "router": null,
  "service_tier": null,
  "cost_rub": 0.03,
  "tool_cost_rub": null,
  "log_cost_rub": null,
  "cache_savings_rub": 0.26,
  "discount_savings_rub": null,
  "usage": {
    "prompt_tokens": 9201,
    "completion_tokens": 49,
    "cached_tokens": 8704,
    "reasoning_tokens": 49
  },
  "duration_ms": 761,
  "streamed": true,
  "ttft_ms": 318,
  "finish_reason": "stop",
  "user": "customer-42",
  "session_id": "conv-2026-10-31-abc",
  "app": "My App",
  "web_search_engine": null,
  "num_citations": null,
  "num_fetches": null,
  "log": null
}
ПолеСмысл
idID запроса, тот же, что в ответе модели
objectВсегда request
created_atКогда запрос пришёл, ISO 8601 (UTC)
endpointМетод API, например /v1/chat/completions или /v1/images/edits
modelМодель, которая обработала запрос
providerПровайдер, который обработал запрос, например OpenAI, Google, Amazon Bedrock. Тот же, что в карточке запроса и CSV кабинета. null, если не записан
routerКто выбрал модель: auto — алиас auto, имя — пресет, null — модель указана в запросе явно
service_tierТариф провайдера, если был задан, иначе null
cost_rubСколько списали за запрос, ₽. То же число, что usage.cost_rub в ответе модели
tool_cost_rubЧасть стоимости за серверные инструменты, например веб-поиск, ₽, или null
log_cost_rubЧасть стоимости за хранение запроса и ответа, ₽. 0 — запрос сохранён бесплатно (хранение 1 день), null — не сохранялся
cache_savings_rubСколько сэкономил кэш промпта, ₽, или null
discount_savings_rubСколько сэкономила персональная скидка, ₽, или null
usageТокены и единицы, которые были в запросе. Поля без значения не возвращаются
duration_msСколько запрос шёл, мс, или null
streamedtrue, если вы просили потоковый ответ (stream: true). null у методов без стрима и у запросов, записанных до появления поля
ttft_msВремя до первого токена потока, мс: от старта запроса до первого текста, рассуждения или вызова инструмента. Только для потока, иначе null
finish_reasonЧем закончился ответ, как в Chat Completions: stop, length (упёрся в лимит токенов), tool_calls, content_filter, error. Для Responses и Messages приводится к тем же словам. null, если неизвестно
userВаш идентификатор конечного пользователя из запроса: user или metadata.user_id у Messages, до 128 символов. Пишется для чата, Responses, Messages и эмбеддингов. Иначе null
session_idСессия, к которой вы отнесли запрос: session_id в теле, заголовок x-session-id или сессия, которую сам шлёт агент (Claude Code, Codex, OpenCode, Kilo Code, Roo Code, Goose, Crush, OpenClaw), до 256 символов. См. session_id. Иначе null
appПриложение, которое отправило запрос: заголовок X-Title, иначе домен из HTTP-Referer (до 64 символов). Запросы из Студии в кабинете — studio, из Песочницы — playground. Иначе null
web_search_engineПоисковый движок, который вы указали в инструменте веб-поиска (parameters.engine), если поиск выполнялся. null — поиска не было или движок не указан
num_citationsСколько разных источников процитировал ответ после поиска, или null
num_fetchesСколько страниц загрузил инструмент web fetch, или null
logСохранённый лог: days, expires_at и пути request, response, media (видео, иначе null) — читаются тем же ключом. null, если запрос не сохранялся или срок истёк

Поля usage: prompt_tokens, completion_tokens, cached_tokens, cache_write_tokens, reasoning_tokens, audio_input_tokens, audio_output_tokens, video_input_tokens, image_output_tokens, web_search_requests, video_seconds, speech_characters, transcription_seconds, embedding_inputs, rerank_documents.

Объём нетокенных методов, если он был: video_seconds (секунды видео), speech_characters (символы озвученного текста), transcription_seconds (секунды распознанного аудио), embedding_inputs (входы эмбеддингов), rerank_documents (документы в rerank).

Собственный ID запроса у провайдера не возвращается.

Ошибки

КодКогда
400ID не похож на наш: нужен вид chat- + 22 символа, как в ответе API. ID от самого провайдера (gen-…, chatcmpl-…) не подходит
401Нет ключа или он неверный
404Запроса нет в журнале этого ключа
404
{
  "error": {
    "code": 404,
    "type": "not_found",
    "message": "Запрос не найден. Он мог быть сделан другим ключом или уже удалён из журнала.",
    "request_id": "req-0J9fQk2vXc8LrT1mNbZa4e"
  }
}

Когда запрос появляется и пропадает

  • Запись создаётся, когда запрос рассчитан. Если сразу после ответа получили 404, повторите через пару секунд. Запрос, чья стоимость уточняется у провайдера (заголовок X-AITunnel-Cost-Pending, остановленный поток), появляется позже — обычно в течение минуты.
  • Журнал хранится около трёх месяцев. Потом подробности запроса удаляются, а расход остаётся в расходе за период и кабинете.