Skip to content

Экспорт логов

GET /api/open/v1/logs/export

Возвращает все подходящие строки логов одним ответом, без пагинации. Фильтры те же, что у Получить логи аккаунта; ответ — файл в формате CSV или JSONL.

ПараметрГдеТипОбязательныйПо умолчаниюОписание
start_timestampqueryintegerНетСм. нижеВремя начала (включительно), unix-секунды
end_timestampqueryintegerНетСм. нижеВремя окончания (включительно), unix-секунды
typequeryintegerНет2Тип лога: 2 — запросы с потреблением (биллингом), 7 — запросы, окончательно завершившиеся ошибкой (без списания). Повторяйте параметр или разделяйте запятыми (?type=2,7); другие значения возвращают 400
model_namequerystringНет—Точное имя модели; для нескольких значений повторяйте параметр (?model_name=a&model_name=b) или разделяйте запятыми
key_namequerystringНет—Точное имя Key; для нескольких значений повторяйте параметр. Запятые не поддерживаются, так как имена могут их содержать
key_idqueryintegerНет—ID Key, положительное целое; повторяйте параметр или разделяйте запятыми. ID других пользователей вернут пустой результат
formatquerystringНетcsvФормат выгрузки: csv или jsonl; другие значения возвращают 400

Правила временного диапазона:

  • Оба параметра опущены: последние 30 дней.
  • Только start_timestamp: 30 дней вперёд, но не позже текущего времени.
  • Только end_timestamp: 30 дней назад.
  • Диапазон может составлять не более 366 дней.

Каждый параметр с несколькими значениями принимает не более 50 значений; при превышении возвращается 400 invalid_request. Timestamps должны быть неотрицательными целыми числами, иначе 400. Этот эндпоинт не принимает p и page_size.

Terminal window
curl "https://www.routeapi.ai/api/open/v1/logs/export?start_timestamp=1726408000&end_timestamp=1729000000&key_name=bot&type=2,7&format=csv" \
-H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \
-o logs.csv

Тело ответа — экспортированный файл, а не обычный JSON { success, message, data }. Заголовки:

ЗаголовокОписание
X-Export-RowsКоличество строк, записанных в файл
X-Export-Truncatedtrue, если подходящих строк больше лимита на запрос; иначе false
Cache-ControlВсегда no-store
Content-Dispositionattachment; filename="logs-<UTC yyyyMMdd-HHmmss>.csv" или .jsonl

За один запрос возвращается не более 50 000 строк. Если подходящих строк больше, возвращаются 50 000 самых новых по ID лога, а X-Export-Truncated принимает значение true; чтобы получить остальное, разбейте временной диапазон на меньшие окна. В отличие от Получить логи аккаунта, строки сортируются по ID лога по убыванию.

format=csv возвращает Content-Type: text/csv; charset=utf-8 с UTF-8 BOM, затем строку заголовков и по одной строке на лог. Порядок столбцов всегда такой:

id,created_at,type,key_id,key_name,model_name,prompt_tokens,completion_tokens,total_tokens,amount,request_id,key,use_time,is_stream,first_response_ms,cache_read_tokens,cache_creation_tokens,reasoning_effort,request_path,web_search_calls,audio_input_tokens,audio_output_tokens,billing_source
12345,1729000000,2,12,bot,gpt-4o,1200,300,1500,0.05,20261020120000123456789,sk-abcd**********wxyz,3,true,420,800,0,medium,/v1/chat/completions,0,0,0,wallet

Поля совпадают с items из Получить логи аккаунта; created_at указан в unix-секундах. К ячейкам, начинающимся с =, +, @, табуляции или возврата каретки, а также с нецифрового -, добавляется префикс ', чтобы табличные редакторы не воспринимали их как формулы.

format=jsonl возвращает Content-Type: application/x-ndjson, по одному JSON-объекту на строку, с теми же полями, что и items из Получить логи аккаунта:

{"id":12345,"created_at":1729000000,"type":2,"key_id":12,"key_name":"bot","key":"sk-abcd**********wxyz","model_name":"gpt-4o","prompt_tokens":1200,"completion_tokens":300,"total_tokens":1500,"amount":0.05,"use_time":3,"is_stream":true,"first_response_ms":420,"cache_read_tokens":800,"cache_creation_tokens":0,"reasoning_effort":"medium","request_path":"/v1/chat/completions","web_search_calls":0,"audio_input_tokens":0,"audio_output_tokens":0,"billing_source":"wallet","request_id":"20261020120000123456789"}
HTTPcodeСценарий
400invalid_requestВременная метка отрицательна или не является числом, диапазон превышает 366 дней, start_timestamp больше end_timestamp, параметр с несколькими значениями содержит более 50 значений, key_id не является положительным целым, type не равен 2 или 7, или format не равен csv или jsonl
429—Превышен лимит запросов на пользователя (по умолчанию 30/минуту); тело может быть пустым

Ошибки возвращаются обычным JSON-телом, а не файлом. Прочие общие коды ошибок см. в Ошибки и лимиты.

  • По умолчанию выгружаются только логи потребления (биллинга). Чтобы включить также запросы, окончательно завершившиеся ошибкой (без списания), передайте type=2,7.
  • key_name — имя Key на момент запроса; переименование Key не переписывает прошлые записи.
  • key — маскированное значение; пустая строка, если Key с тех пор был окончательно удалён.
  • Количество токенов указано в исходных единицах, не в миллионах. Суммы указаны в валюте отображения сайта, см. Получить баланс.
  • Этот эндпоинт делит лимит запросов на пользователя (по умолчанию 30/минуту) с Логи аккаунта, Использование, Использование по моделям и Использование по Key. См. Ограничения частоты.