Информация о запросе
Стоимость, токены и время одного запроса по его 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",
"router": null,
"service_tier": null,
"cost_rub": 0.03,
"tool_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",
"web_search_engine": null,
"num_citations": null,
"num_fetches": null
}| Поле | Смысл |
|---|---|
id | ID запроса, тот же, что в ответе модели |
object | Всегда request |
created_at | Когда запрос пришёл, ISO 8601 (UTC) |
endpoint | Метод API, например /v1/chat/completions или /v1/images/edits |
model | Модель, которая обработала запрос |
router | Кто выбрал модель: auto — алиас auto, имя — пресет, null — модель указана в запросе явно |
service_tier | Тариф провайдера, если был задан, иначе null |
cost_rub | Сколько списали за запрос, ₽. То же число, что usage.cost_rub в ответе модели |
tool_cost_rub | Часть стоимости за серверные инструменты, например веб-поиск, ₽, или null |
cache_savings_rub | Сколько сэкономил кэш промпта, ₽, или null |
discount_savings_rub | Сколько сэкономила персональная скидка, ₽, или null |
usage | Токены и единицы, которые были в запросе. Поля без значения не возвращаются |
duration_ms | Сколько запрос шёл, мс, или null |
streamed | true, если вы просили потоковый ответ (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 |
web_search_engine | Поисковый движок, который вы указали в инструменте веб-поиска (parameters.engine), если поиск выполнялся. null — поиска не было или движок не указан |
num_citations | Сколько разных источников процитировал ответ после поиска, или null |
num_fetches | Сколько страниц загрузил инструмент web fetch, или 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.
Провайдер и его собственный ID запроса не возвращаются.
Ошибки
| Код | Когда |
|---|---|
400 | ID не похож на наш: нужен вид chat- + 22 символа, как в ответе API. ID от самого провайдера (gen-…, chatcmpl-…) не подходит |
401 | Нет ключа или он неверный |
404 | Запроса нет в журнале этого ключа |
404
{
"error": {
"code": 404,
"message": "Запрос не найден. Он мог быть сделан другим ключом или уже удалён из журнала."
}
}Когда запрос появляется и пропадает
- Запись создаётся, когда запрос рассчитан. Если сразу после ответа получили
404, повторите через пару секунд. - Журнал хранится около трёх месяцев. Потом подробности запроса удаляются, а расход остаётся в расходе за период и кабинете.