Aller au contenu

Obtenir les logs du compte

GET /api/open/v1/logs
ParamètreEmplacementTypeRequisDéfautDescription
start_timestampqueryintegerNonVoir ci-dessousDate de début (incluse), secondes unix
end_timestampqueryintegerNonVoir ci-dessousDate de fin (incluse), secondes unix
model_namequerystringNon—Nom de modèle exact ; répétez le paramètre pour plusieurs valeurs (?model_name=a&model_name=b) ou séparez par des virgules
key_namequerystringNon—Nom de Key exact ; répétez le paramètre pour plusieurs valeurs. Les virgules ne sont pas prises en charge car les noms peuvent en contenir
key_idqueryintegerNon—ID de Key, entier positif ; répétez le paramètre ou séparez par des virgules. Les ID d’autres utilisateurs ne renvoient aucune ligne
typequeryintegerNon2Type de log : 2 pour les requêtes de consommation (facturées), 7 pour les requêtes ayant définitivement échoué (non facturées). Répétez le paramètre ou séparez par des virgules (?type=2,7) ; toute autre valeur renvoie 400
pqueryintegerNon1Numéro de page, de 1 à 1000000
page_sizequeryintegerNon10Éléments par page, de 1 à 1000

Règles de plage temporelle :

  • Les deux omis : les 30 derniers jours.
  • Seulement start_timestamp : 30 jours vers l’avant, plafonné à l’heure actuelle.
  • Seulement end_timestamp : 30 jours vers l’arrière.
  • La plage peut couvrir au maximum 366 jours.

Chaque paramètre multi-valeurs accepte au maximum 50 valeurs ; au-delà, la réponse est 400 invalid_request. Un p / page_size fourni explicitement et invalide retourne 400 ; voir Pagination. Les timestamps doivent être des entiers non négatifs, sinon 400.

Fenêtre de terminal
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"
{
"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
}
}
ChampTypeDescription
items[].idintegerID du log
items[].created_atintegerDate du log, secondes unix
items[].typeinteger2 consommation, 7 échec définitif de la requête
items[].key_idintegerID de la Key ayant émis la requête
items[].key_namestringNom de la Key au moment de la requête
items[].keystringValeur masquée de la Key, au même format que Lister les API Keys, par exemple sk-abcd**********wxyz ; chaîne vide si la Key a été définitivement supprimée
items[].model_namestringNom du modèle
items[].prompt_tokensintegerTokens d’entrée
items[].completion_tokensintegerTokens de sortie
items[].total_tokensintegerTotal des tokens d’entrée et de sortie
items[].amountnumberMontant consommé dans la devise du site, deux décimales ; peut valoir 0.00 pour les très petits montants
items[].use_timeintegerDurée de la requête, en secondes
items[].is_streambooleanIndique si la requête était en streaming
items[].first_response_msintegerTemps jusqu’à la première réponse, en millisecondes ; 0 si inconnu (par exemple requêtes non streamées)
items[].cache_read_tokensintegerTokens lus depuis le cache de prompt
items[].cache_creation_tokensintegerTokens écrits dans le cache de prompt
items[].reasoning_effortstringEffort de raisonnement (low, medium, high, etc.) ; chaîne vide si non défini
items[].request_pathstringChemin de la requête, par exemple /v1/chat/completions
items[].web_search_callsintegerNombre d’appels de recherche web effectués pendant la requête
items[].audio_input_tokensintegerTokens audio d’entrée
items[].audio_output_tokensintegerTokens audio de sortie
items[].billing_sourcestringwallet pour le solde du portefeuille, subscription pour un abonnement, chaîne vide si inconnu
items[].request_idstringID de requête, utile pour le diagnostic
totalintegerNombre de logs correspondants, compté jusqu’à 10000
pageintegerNuméro de page courant
page_sizeintegerNombre effectif d’éléments par page
start_timestampintegerDate de début effective
end_timestampintegerDate de fin effective
HTTPcodeScénario
400invalid_requestUn timestamp est négatif, la plage dépasse 366 jours, start_timestamp est supérieur à end_timestamp, les paramètres de pagination sont invalides, un paramètre multi-valeurs dépasse 50 valeurs, key_id n’est pas un entier positif, ou type n’est ni 2 ni 7
429—Limite de requêtes par utilisateur dépassée (30/minute par défaut) ; le corps peut être vide

Pour les autres codes d’erreur communs, voir Erreurs de l’API de la plateforme.

  • Par défaut, seuls les logs de consommation (facturation) sont renvoyés. Ajoutez type=2,7 pour inclure aussi les requêtes ayant définitivement échoué (non facturées).
  • Les résultats sont triés par created_at décroissant (les plus récents en premier) ; les enregistrements de même horodatage sont triés par ID de log décroissant, la pagination est donc stable.
  • key_name est le nom de la Key au moment de la requête ; renommer une Key ne réécrit pas les enregistrements passés.
  • key est la valeur masquée ; elle est vide si la Key a depuis été définitivement supprimée.
  • Les champs use_time, first_response_ms, cache, recherche, audio et raisonnement valent 0 ou une chaîne vide lorsque la donnée correspondante n’a pas été enregistrée ; les champs sont toujours présents.
  • Les nombres de tokens sont des comptes bruts, pas des millions.
  • Les montants utilisent la devise d’affichage du site, voir Obtenir le solde.
  • Cet endpoint partage la limite de requêtes par utilisateur (30/minute par défaut) avec Exporter les logs, Usage, Usage par modèle et Usage par Key. Voir Limites de débit.
  • Pour exporter toutes les lignes correspondantes en une fois (CSV ou JSONL), utilisez Exporter les logs au lieu de paginer puis concaténer cet endpoint.