Exporter les logs
GET /api/open/v1/logs/exportRenvoie toutes les lignes de log correspondantes en une seule réponse, sans pagination. Les filtres sont les mêmes que ceux de Obtenir les logs du compte ; la réponse est un fichier CSV ou JSONL.
Paramètres de requête
Section intitulée « Paramètres de requête »| Paramètre | Emplacement | Type | Requis | Défaut | Description |
|---|---|---|---|---|---|
start_timestamp | query | integer | Non | Voir ci-dessous | Date de début (incluse), secondes unix |
end_timestamp | query | integer | Non | Voir ci-dessous | Date de fin (incluse), secondes unix |
type | query | integer | Non | 2 | Type 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 |
model_name | query | string | Non | — | 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_name | query | string | Non | — | 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_id | query | integer | Non | — | 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 |
format | query | string | Non | csv | Format de sortie : csv ou jsonl ; toute autre valeur renvoie 400 |
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. Les timestamps doivent être des entiers non négatifs, sinon 400. Cet endpoint n’accepte pas p ni page_size.
Exemple de requête
Section intitulée « Exemple de requête »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.csvLe corps de la réponse est le fichier exporté, et non le JSON habituel { success, message, data }. En-têtes :
| En-tête | Description |
|---|---|
X-Export-Rows | Nombre de lignes écrites dans le fichier |
X-Export-Truncated | true lorsque plus de lignes correspondent que la limite par requête ; sinon false |
Cache-Control | Toujours no-store |
Content-Disposition | attachment; filename="logs-<UTC yyyyMMdd-HHmmss>.csv" ou .jsonl |
Chaque requête renvoie au plus 50 000 lignes. Lorsque davantage de lignes correspondent, les 50 000 plus récentes par ID de log sont renvoyées et X-Export-Truncated vaut true ; découpez la plage temporelle en fenêtres plus petites pour récupérer le reste. Contrairement à Obtenir les logs du compte, les lignes sont triées par ID de log décroissant.
Format CSV
Section intitulée « Format CSV »format=csv renvoie Content-Type: text/csv; charset=utf-8 avec un BOM UTF-8, suivi d’une ligne d’en-tête et d’une ligne par log. L’ordre des colonnes est toujours le suivant :
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,walletLes champs sont identiques aux items de Obtenir les logs du compte ; created_at est en secondes unix. Les cellules commençant par =, +, @, une tabulation ou un retour chariot, ainsi que celles commençant par un - non numérique, sont préfixées par ' pour empêcher les tableurs de les interpréter comme des formules.
Format JSONL
Section intitulée « Format JSONL »format=jsonl renvoie Content-Type: application/x-ndjson avec un objet JSON par ligne, en utilisant les mêmes champs que les items de Obtenir les logs du compte :
{"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"}| HTTP | code | Scénario |
|---|---|---|
| 400 | invalid_request | Un timestamp est négatif ou non numérique, la plage dépasse 366 jours, start_timestamp est supérieur à end_timestamp, un paramètre multi-valeurs dépasse 50 valeurs, key_id n’est pas un entier positif, type n’est ni 2 ni 7, ou format n’est ni csv ni jsonl |
| 429 | — | Limite de requêtes par utilisateur dépassée (30/minute par défaut) ; le corps peut être vide |
Les erreurs sont renvoyées sous la forme habituelle d’un corps JSON, pas d’un fichier. Pour les autres codes d’erreur communs, voir Erreurs de l’API de la plateforme.
Remarques
Section intitulée « Remarques »- Par défaut, seuls les logs de consommation (facturation) sont exportés. Ajoutez
type=2,7pour inclure aussi les requêtes ayant définitivement échoué (non facturées). key_nameest le nom de la Key au moment de la requête ; renommer une Key ne réécrit pas les enregistrements passés.keyest la valeur masquée ; elle est vide si la Key a depuis été définitivement supprimée.- 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 Logs du compte, Usage, Usage par modèle et Usage par Key. Voir Limites de débit.