ProxyAPI записывает информацию о каждом запросе к API в виде транзакций — вы видите модель, количество токенов и списанную сумму. Однако этих данных недостаточно для полноценной отладки: нет статус-кодов, задержек, ошибок провайдера и, главное, — содержимого запросов и ответов.

Логирование запросов решает эту проблему. При включении сервис записывает полные данные о каждом обращении к API: метаданные (статус, задержка, модель, ключ), потребление (токены с разбивкой по типам), а также полное содержимое запросов и ответов — включая промпты, ответы модели и сообщения об ошибках.

Логируются не только успешные запросы, но и отклонённые на уровне прокси — превышение лимита, недостаточный баланс, превышение бюджета ключа. Это позволяет увидеть полную картину: почему часть запросов не доходит до провайдера.

  1. Перейдите в раздел Логи в боковом меню личного кабинета
  2. Нажмите Включить логирование
  3. Выберите период хранения (3, 7, 30 или 365 дней)
  4. Подтвердите активацию

Логирование действует на уровне аккаунта — записываются запросы по всем API-ключам. Новые запросы начнут логироваться сразу после активации.

Историческая информация после активации не переносится в логи — записи накапливаются с момента включения.

Каждый запрос к API ProxyAPI возвращает заголовок X-Request-ID с уникальным идентификатором (UUID):

X-Request-ID: 550e8400-e29b-41d4-a716-446655440000

Этот идентификатор можно использовать для:

  • Поиска в логах — в фильтрах на странице Логи есть поле «Request ID»
  • Обращения в поддержку — передайте Request ID, чтобы мы могли быстро найти информацию о запросе

Каждая запись в логах имеет один из четырёх статусов:

СтатусОписание
successЗапрос отправлен провайдеру, получен успешный ответ
provider_errorЗапрос отправлен провайдеру, получена ошибка (4xx/5xx)
provider_timeoutЗапрос отправлен провайдеру, соединение оборвалось или истекло время ожидания
proxy_errorЗапрос отклонён на стороне ProxyAPI (rate limit, недостаточный баланс, превышение бюджета и т.д.)

  • Идентификация: API-ключ (название и маскированный), модель, провайдер, endpoint
  • Производительность: HTTP-код ответа, общая задержка (мс), время до первого токена (для стриминга), флаг стриминга
  • Потребление: разбивка по типам токенов (ввод, вывод, размышления, кэш и др.), размер запроса и ответа в байтах
  • Биллинг: списанная сумма (для отклонённых запросов — пусто, так как списания не происходит)
  • Ошибки: тип и текст ошибки (от провайдера или от ProxyAPI)
  • Содержимое запросов и ответов: промпт, ответ модели или сообщение об ошибке

Для запросов, отклонённых на уровне ProxyAPI (proxy_error): нет ответа от провайдера, нет потребления токенов, задержка отражает время обработки на стороне ProxyAPI. Содержимое ответа — наше сообщение об ошибке.

Стоимость логирования зависит от выбранного периода хранения:

Период храненияСтоимость за 1 000 запросовБесплатный лимит
3 дня8 ₽10 000 запросов/мес
7 дней10 ₽
30 дней12 ₽
365 дней15 ₽

На тарифе с хранением 3 дня первые 10 000 запросов в месяц — бесплатно. После исчерпания лимита запросы продолжают логироваться и оплачиваются по стандартной ставке 8 ₽ за 1 000 запросов. Счётчик обнуляется в начале каждого месяца.

При переходе на любой другой период хранения (7, 30, 365 дней) оплата начинается с первого запроса.

  • Списание происходит с вашего баланса ProxyAPI — того же, с которого оплачиваются запросы к моделям
  • Биллинг — ежедневный: каждую ночь в 04:00 МСК начисляется оплата за запросы предыдущего дня по текущему тарифу
  • Смена тарифа влияет только на будущие списания — пересчёта за прошлые дни не происходит

Период хранения — это скользящее окно: хранятся все логи за последние N дней. Очистка устаревших записей выполняется автоматически каждую ночь.

При увеличении периода хранения существующие логи будут храниться дольше.

При уменьшении периода хранения записи за пределами нового окна будут удалены в ближайшую ночную очистку (04:00 МСК). До этого момента можно отменить изменение.

При отключении логирования:

  1. Новые запросы сразу перестают логироваться
  2. Существующие логи остаются доступны до 04:00 МСК — у вас есть время экспортировать данные
  3. В 04:00 МСК: начисляется оплата за последние запросы, затем все логи удаляются

Если вы передумали — включите логирование обратно до 04:00 МСК, и все существующие логи сохранятся, запись возобновится.

Экспорт позволяет скачать логи в машиночитаемом формате для внешнего анализа или архивирования.

  1. На странице Логи нажмите кнопку экспорта (иконка скачивания)
  2. Выберите вариант включения содержимого запросов/ответов (см. ниже)
  3. Нажмите Экспортировать
  4. Ссылка на скачивание придёт на вашу почту (действует 24 часа)

Экспорт выгружает все логи за выбранный на странице диапазон дат (или за всё время, если даты не указаны).

ВариантОписание
Без содержимогоТолько метаданные — самый быстрый и компактный
С содержимым (без крупного)Включает содержимое запросов и ответов до 128 КБ; крупное содержимое (изображения, аудио) — пропускается
С содержимым (все)Всё содержимое, включая крупное — оно помещается в папку payloads/ внутри архива

Экспорт — zip-архив, содержащий:

  • logs.ndjson — по одной JSON-строке на каждую запись
  • payloads/ — папка с крупным содержимым запросов и ответов (только при выборе варианта «все»)

  • Не более 10 экспортов в сутки
  • Только один экспорт одновременно — дождитесь завершения текущего

Каждая строка в файле logs.ndjson — это JSON-объект со следующими полями:

ПолеТипОписание
idstring (UUID)Уникальный идентификатор запроса. Совпадает со значением заголовка X-Request-ID
created_atstring (ISO 8601)Время получения запроса
modelstringНазвание модели (например, gpt-4o, claude-3.5-sonnet)
snapshotstringТочная версия модели, использованная провайдером (например, gpt-4o-2024-08-06)
providerstringПровайдер: openai, anthropic, google, openrouter
endpointstringПуть запроса, включая query-параметры (например, /openai/v1/chat/completions)
api_key_namestringНазвание API-ключа
api_key_maskedstringМаскированный API-ключ (например, sk-...a1b2)
statusstringСтатус: success, provider_error, provider_timeout, proxy_error
status_codeintegerHTTP-код ответа, возвращённый клиенту (включая коды ProxyAPI: 429, 402, 400)
latency_msintegerОбщая задержка в миллисекундах
ttft_msinteger / nullВремя до первого токена в миллисекундах. Только для стриминговых запросов, иначе null
is_streamingbooleanБыл ли запрос стриминговым
request_bytesintegerРазмер содержимого запроса в байтах
response_bytesintegerРазмер содержимого ответа в байтах
amountstring / nullСписанная сумма в рублях (строка с десятичным числом). null для запросов, отклонённых на стороне ProxyAPI
vatintegerПроцент НДС, включённый в сумму
error_typestringТип ошибки. Пустая строка при успешном запросе
error_messagestringТекст ошибки. Пустая строка при успешном запросе
usage_breakdownarrayРазбивка потребления (см. ниже)
request_bodystring / nullСодержимое запроса (JSON-строка). Присутствует при выборе варианта «с содержимым». null для крупного содержимого при варианте «без крупного»
response_bodystring / nullСодержимое ответа (JSON-строка). Присутствует при выборе варианта «с содержимым». null для крупного содержимого при варианте «без крупного»
request_body_filestring / nullПуть к файлу содержимого запроса внутри архива (например, payloads/550e8400_req.json). Только для крупного содержимого при варианте «все»
response_body_filestring / nullПуть к файлу содержимого ответа внутри архива. Только для крупного содержимого при варианте «все»

Массив объектов, описывающих потребление ресурсов в рамках запроса. Один запрос может содержать несколько элементов — например, при использовании модели с веб-поиском будет отдельная запись на потребление модели и отдельная на веб-поиск.

Каждый элемент имеет два поля:

  • product — строка вида провайдер/продукт/снапшот (например, openai/gpt-4o/gpt-4o-2024-08-06) или провайдер/продукт для сервисных продуктов (например, openai/web-search)
  • breakdown — объект с парами «тип потребления → количество»

Пример:

[
  {
    "product": "openai/gpt-4o/gpt-4o-2024-08-06",
    "breakdown": {
      "input_tokens": 150,
      "output_tokens": 420,
      "reasoning_tokens": 100
    }
  },
  {
    "product": "openai/web-search",
    "breakdown": {
      "web_search": 1
    }
  }
]

КлючОписание
input_tokensТокены ввода (промпт, контекст)
output_tokensТокены вывода (ответ модели)
reasoning_tokensТокены размышлений (когда тарицифируются отдельно от токенов вывода)
cached_read_tokensТокены, прочитанные из кэша провайдера
cached_write_tokensТокены, записанные в кэш провайдера
audio_input_tokensАудио-токены ввода
audio_output_tokensАудио-токены вывода
imagesКоличество сгенерированных изображений
web_searchКоличество операций веб-поиска
sessionsКоличество сессий (Code interpreter и др.)
charactersКоличество символов (синтез речи)

На данный момент не логируются:

  • Запросы через OpenAI-совместимый API
  • Запросы к API, включенных в подписку OpenAI Pro (Assistants API, Files API, и т.д.)
  • Запросы на генерацию видео (Sora, Veo)
  • Некоторые клиентские ошибки валидации (неизвестная модель, некорректное содержимое запроса), которые отклоняются до начала обработки запроса — такие ошибки не попадают в логи

Логирование действует на уровне аккаунта. Включение логирования для отдельных API-ключей пока не поддерживается.

ProxyAPI Logo

Доступ к последним разработкам мировых лидеров в области AI для вашего проекта или бизнеса в России. Без VPN и блокировок. Оплата в рублях.

Accepted payment methods