Получить логи аккаунта
GET /api/open/v1/logsПараметры запроса
Section titled “Параметры запроса”| Параметр | Где | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
start_timestamp | query | integer | Нет | См. ниже | Время начала (включительно), unix-секунды |
end_timestamp | query | integer | Нет | См. ниже | Время окончания (включительно), unix-секунды |
model_name | query | string | Нет | — | Точное имя модели; для нескольких значений повторяйте параметр (?model_name=a&model_name=b) или разделяйте запятыми |
key_name | query | string | Нет | — | Точное имя Key; для нескольких значений повторяйте параметр. Запятые не поддерживаются, так как имена могут их содержать |
key_id | query | integer | Нет | — | ID Key, положительное целое; повторяйте параметр или разделяйте запятыми. ID других пользователей вернут пустой результат |
type | query | integer | Нет | 2 | Тип лога: 2 — запросы с потреблением (биллингом), 7 — запросы, окончательно завершившиеся ошибкой (без списания). Повторяйте параметр или разделяйте запятыми (?type=2,7); другие значения возвращают 400 |
p | query | integer | Нет | 1 | Номер страницы, от 1 до 1000000 |
page_size | query | integer | Нет | 10 | Элементов на странице, от 1 до 1000 |
Правила временного диапазона:
- Оба параметра опущены: последние 30 дней.
- Только
start_timestamp: 30 дней вперёд, но не позже текущего времени. - Только
end_timestamp: 30 дней назад. - Диапазон может составлять не более 366 дней.
Явно переданные неверные p / page_size возвращают 400; см. Пагинация. Timestamps должны быть неотрицательными целыми числами, иначе 400.
Каждый параметр с несколькими значениями принимает не более 50 значений; при превышении возвращается 400 invalid_request.
Пример запроса
Section titled “Пример запроса”curl "https://www.routeapi.ai/api/open/v1/logs?start_timestamp=1726408000&end_timestamp=1729000000&key_name=bot&model_name=gpt-4o&p=1&page_size=20" \ -H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY"Пример ответа
Section titled “Пример ответа”{ "success": true, "message": "", "data": { "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" } ], "total": 1, "page": 1, "page_size": 20, "start_timestamp": 1726408000, "end_timestamp": 1729000000 }}Поля ответа
Section titled “Поля ответа”| Поле | Тип | Описание |
|---|---|---|
items[].id | integer | ID лога |
items[].created_at | integer | Время лога, unix-секунды |
items[].type | integer | 2 — потребление, 7 — окончательная ошибка запроса |
items[].key_id | integer | ID Key, отправившего запрос |
items[].key_name | string | Имя Key на момент запроса |
items[].key | string | Маскированное значение Key в том же формате, что и в Список API Key, например sk-abcd**********wxyz; пустая строка, если Key был окончательно удалён |
items[].model_name | string | Имя модели |
items[].prompt_tokens | integer | Входные токены |
items[].completion_tokens | integer | Выходные токены |
items[].total_tokens | integer | Сумма входных и выходных токенов |
items[].amount | number | Потраченная сумма в валюте сайта, два знака после запятой; очень маленькие суммы могут быть 0.00 |
items[].use_time | integer | Длительность запроса в секундах |
items[].is_stream | boolean | Был ли запрос потоковым |
items[].first_response_ms | integer | Время до первого ответа в миллисекундах; 0, если неизвестно (например, для непоточных запросов) |
items[].cache_read_tokens | integer | Токены, прочитанные из кеша промпта |
items[].cache_creation_tokens | integer | Токены, записанные в кеш промпта |
items[].reasoning_effort | string | Уровень рассуждений (low, medium, high и т. п.); пустая строка, если не задан |
items[].request_path | string | Путь запроса, например /v1/chat/completions |
items[].web_search_calls | integer | Количество вызовов веб-поиска в рамках запроса |
items[].audio_input_tokens | integer | Входные аудиотокены |
items[].audio_output_tokens | integer | Выходные аудиотокены |
items[].billing_source | string | wallet — баланс кошелька, subscription — подписка, пустая строка, если неизвестно |
items[].request_id | string | ID запроса, полезен для диагностики |
total | integer | Количество подходящих логов, считается до 10000 |
page | integer | Текущий номер страницы |
page_size | integer | Фактическое количество элементов на странице |
start_timestamp | integer | Фактическое время начала |
end_timestamp | integer | Фактическое время окончания |
Ошибки
Section titled “Ошибки”| HTTP | code | Сценарий |
|---|---|---|
| 400 | invalid_request | Временная метка отрицательна, диапазон превышает 366 дней, start_timestamp больше end_timestamp, параметр с несколькими значениями содержит более 50 значений, key_id не является положительным целым, type не равен 2 или 7, или неверные параметры пагинации |
| 429 | — | Превышен лимит запросов на пользователя (по умолчанию 30/минуту); тело может быть пустым |
Прочие общие коды ошибок см. в Ошибки и лимиты.
Примечания
Section titled “Примечания”- По умолчанию возвращаются только логи потребления (биллинга). Чтобы включить также запросы, окончательно завершившиеся ошибкой (без списания), передайте
type=2,7. - Результаты отсортированы по
created_atпо убыванию (сначала новые); записи с одинаковым временем сортируются по ID лога по убыванию, поэтому пагинация стабильна. key_name— имя Key на момент запроса; переименование Key не переписывает прошлые записи.key— маскированное значение; пустая строка, если Key с тех пор был окончательно удалён.- Поля
use_time,first_response_ms, кеша, поиска, аудио и рассуждений равны0или пустой строке, если соответствующие данные не записаны; сами поля присутствуют всегда. - Количество токенов указано в исходных единицах, не в миллионах.
- Суммы указаны в валюте отображения сайта, см. Получить баланс.
- Этот эндпоинт делит лимит запросов на пользователя (по умолчанию 30/минуту) с Экспорт логов, Использование, Использование по моделям и Использование по Key. См. Ограничения частоты.
- Чтобы выгрузить все подходящие строки сразу (CSV или JSONL), используйте Экспорт логов вместо постраничного запроса и склейки
items.