Экспорт логов
GET /api/open/v1/logs/exportВозвращает все подходящие строки логов одним ответом, без пагинации. Фильтры те же, что у Получить логи аккаунта; ответ — файл в формате CSV или JSONL.
Параметры запроса
Section titled “Параметры запроса”| Параметр | Где | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
start_timestamp | query | integer | Нет | См. ниже | Время начала (включительно), unix-секунды |
end_timestamp | query | integer | Нет | См. ниже | Время окончания (включительно), unix-секунды |
type | query | integer | Нет | 2 | Тип лога: 2 — запросы с потреблением (биллингом), 7 — запросы, окончательно завершившиеся ошибкой (без списания). Повторяйте параметр или разделяйте запятыми (?type=2,7); другие значения возвращают 400 |
model_name | query | string | Нет | — | Точное имя модели; для нескольких значений повторяйте параметр (?model_name=a&model_name=b) или разделяйте запятыми |
key_name | query | string | Нет | — | Точное имя Key; для нескольких значений повторяйте параметр. Запятые не поддерживаются, так как имена могут их содержать |
key_id | query | integer | Нет | — | ID Key, положительное целое; повторяйте параметр или разделяйте запятыми. ID других пользователей вернут пустой результат |
format | query | string | Нет | csv | Формат выгрузки: csv или jsonl; другие значения возвращают 400 |
Правила временного диапазона:
- Оба параметра опущены: последние 30 дней.
- Только
start_timestamp: 30 дней вперёд, но не позже текущего времени. - Только
end_timestamp: 30 дней назад. - Диапазон может составлять не более 366 дней.
Каждый параметр с несколькими значениями принимает не более 50 значений; при превышении возвращается 400 invalid_request. Timestamps должны быть неотрицательными целыми числами, иначе 400. Этот эндпоинт не принимает p и page_size.
Пример запроса
Section titled “Пример запроса”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-Truncated | true, если подходящих строк больше лимита на запрос; иначе false |
Cache-Control | Всегда no-store |
Content-Disposition | attachment; filename="logs-<UTC yyyyMMdd-HHmmss>.csv" или .jsonl |
За один запрос возвращается не более 50 000 строк. Если подходящих строк больше, возвращаются 50 000 самых новых по ID лога, а X-Export-Truncated принимает значение true; чтобы получить остальное, разбейте временной диапазон на меньшие окна. В отличие от Получить логи аккаунта, строки сортируются по ID лога по убыванию.
Формат CSV
Section titled “Формат CSV”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_source12345,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-секундах. К ячейкам, начинающимся с =, +, @, табуляции или возврата каретки, а также с нецифрового -, добавляется префикс ', чтобы табличные редакторы не воспринимали их как формулы.
Формат JSONL
Section titled “Формат JSONL”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"}Ошибки
Section titled “Ошибки”| HTTP | code | Сценарий |
|---|---|---|
| 400 | invalid_request | Временная метка отрицательна или не является числом, диапазон превышает 366 дней, start_timestamp больше end_timestamp, параметр с несколькими значениями содержит более 50 значений, key_id не является положительным целым, type не равен 2 или 7, или format не равен csv или jsonl |
| 429 | — | Превышен лимит запросов на пользователя (по умолчанию 30/минуту); тело может быть пустым |
Ошибки возвращаются обычным JSON-телом, а не файлом. Прочие общие коды ошибок см. в Ошибки и лимиты.
Примечания
Section titled “Примечания”- По умолчанию выгружаются только логи потребления (биллинга). Чтобы включить также запросы, окончательно завершившиеся ошибкой (без списания), передайте
type=2,7. key_name— имя Key на момент запроса; переименование Key не переписывает прошлые записи.key— маскированное значение; пустая строка, если Key с тех пор был окончательно удалён.- Количество токенов указано в исходных единицах, не в миллионах. Суммы указаны в валюте отображения сайта, см. Получить баланс.
- Этот эндпоинт делит лимит запросов на пользователя (по умолчанию 30/минуту) с Логи аккаунта, Использование, Использование по моделям и Использование по Key. См. Ограничения частоты.