Historique et dépenses
MarkdownMéthodes, champs des requêtes et réponses.
Guide complet
Cette rubrique comporte 11 méthodes. Ouvrez une méthode pour consulter les conditions d’accès, les champs de la requête et la réponse.
| Méthode et chemin | Description | Accès |
|---|---|---|
GET /api/v1/usage | Historique des requêtes | Token de l’espace personnel |
GET /api/v1/usage/:id | Une requête de l’historique | Token de l’espace personnel |
POST /api/v1/usage/dashboard/api-keys-usage | Statistiques de vos clés API | Token de l’espace personnel |
GET /api/v1/usage/dashboard/models | Consommation par modèle | Token de l’espace personnel |
GET /api/v1/usage/dashboard/snapshot-v2 | Instantané commun des graphiques | Token de l’espace personnel |
GET /api/v1/usage/dashboard/stats | Bilan de consommation | Token de l’espace personnel |
GET /api/v1/usage/dashboard/trend | Évolution de la consommation | Token de l’espace personnel |
GET /api/v1/usage/errors | Historique des erreurs | Token de l’espace personnel |
GET /api/v1/usage/errors/:id | Détails d’une erreur de votre compte | Token de l’espace personnel |
GET /api/v1/usage/stats | Statistiques de consommation | Token de l’espace personnel |
GET /api/v1/user/api-keys/:id/usage/daily | Statistiques quotidiennes d’une clé API de votre compte | Token de l’espace personnel |
GET /api/v1/usage — Historique des requêtes
Accès : token de l’espace personnel
/api/v1/usagecurl --fail-with-body "https://ailoot.ai/api/v1/usage" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
sort_by | string | non | ; par défaut : created_at |
sort_order | string | non | ; par défaut : desc |
api_key_id | integer | non | |
request_type | string | non | |
stream | boolean | non | |
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
period | string | non | |
model | string | non | |
page | integer | non | ; par défaut : 1 ; positive ; page_size/limit <=1000 |
page_size | integer | non | ; par défaut : 20 ; positive ; page_size/limit <=1000 |
limit | integer | non | ; par défaut : 20 ; positive ; page_size/limit <=1000 |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : UsageLog. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
"request_id": "PLACEHOLDER_REQUEST_ID (string)",
"model": "PLACEHOLDER_MODEL (string)",
"service_tier": "PLACEHOLDER_SERVICE_TIER (string)",
"reasoning_effort": "PLACEHOLDER_REASONING_EFFORT (string)",
"input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
"output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
"cache_creation_tokens": "PLACEHOLDER_CACHE_CREATION_TOKENS (integer)",
"cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
"cache_creation_5m_tokens": "PLACEHOLDER_CACHE_CREATION_5M_TOKENS (integer)",
"cache_creation_1h_tokens": "PLACEHOLDER_CACHE_CREATION_1H_TOKENS (integer)",
"input_cost": "PLACEHOLDER_INPUT_COST (number)",
"output_cost": "PLACEHOLDER_OUTPUT_COST (number)",
"cache_creation_cost": "PLACEHOLDER_CACHE_CREATION_COST (number)",
"cache_read_cost": "PLACEHOLDER_CACHE_READ_COST (number)",
"total_cost": "PLACEHOLDER_TOTAL_COST (number)",
"actual_cost": "PLACEHOLDER_ACTUAL_COST (number)",
"long_context_billing_applied": "PLACEHOLDER_LONG_CONTEXT_BILLING_APPLIED (boolean)",
"request_type": "PLACEHOLDER_REQUEST_TYPE (string)",
"stream": "PLACEHOLDER_STREAM (boolean)",
"duration_ms": "PLACEHOLDER_DURATION_MS (integer)",
"first_token_ms": "PLACEHOLDER_FIRST_TOKEN_MS (integer)",
"image_count": "PLACEHOLDER_IMAGE_COUNT (integer)",
"image_size": "PLACEHOLDER_IMAGE_SIZE (string)",
"image_input_size": "PLACEHOLDER_IMAGE_INPUT_SIZE (string)",
"image_output_size": "PLACEHOLDER_IMAGE_OUTPUT_SIZE (string)",
"image_input_tokens": "PLACEHOLDER_IMAGE_INPUT_TOKENS (integer)",
"image_input_cost": "PLACEHOLDER_IMAGE_INPUT_COST (number)",
"image_output_tokens": "PLACEHOLDER_IMAGE_OUTPUT_TOKENS (integer)",
"image_output_cost": "PLACEHOLDER_IMAGE_OUTPUT_COST (number)",
"image_size_breakdown": "PLACEHOLDER_IMAGE_SIZE_BREAKDOWN (object)",
"media_type": "PLACEHOLDER_MEDIA_TYPE (string)",
"ip_address": "PLACEHOLDER_IP_ADDRESS (string)",
"session_id": "PLACEHOLDER_SESSION_ID (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"user": "PLACEHOLDER_USER (object)",
"api_key": "PLACEHOLDER_API_KEY (object)"
}
],
"total": "PLACEHOLDER_TOTAL (integer)",
"page": "PLACEHOLDER_PAGE (integer)",
"page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
"pages": "PLACEHOLDER_PAGES (integer)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/ :id — Une requête de l’historique
Accès : token de l’espace personnel
/api/v1/usage/:idcurl --fail-with-body "https://ailoot.ai/api/v1/usage/$ID" \
-H "Authorization: Bearer $TOKEN"Paramètres du chemin
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
id | integer | oui |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : UsageLog. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"id": "PLACEHOLDER_ID (integer)",
"user_id": "PLACEHOLDER_USER_ID (integer)",
"api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
"request_id": "PLACEHOLDER_REQUEST_ID (string)",
"model": "PLACEHOLDER_MODEL (string)",
"service_tier": "PLACEHOLDER_SERVICE_TIER (string)",
"reasoning_effort": "PLACEHOLDER_REASONING_EFFORT (string)",
"input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
"output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
"cache_creation_tokens": "PLACEHOLDER_CACHE_CREATION_TOKENS (integer)",
"cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
"cache_creation_5m_tokens": "PLACEHOLDER_CACHE_CREATION_5M_TOKENS (integer)",
"cache_creation_1h_tokens": "PLACEHOLDER_CACHE_CREATION_1H_TOKENS (integer)",
"input_cost": "PLACEHOLDER_INPUT_COST (number)",
"output_cost": "PLACEHOLDER_OUTPUT_COST (number)",
"cache_creation_cost": "PLACEHOLDER_CACHE_CREATION_COST (number)",
"cache_read_cost": "PLACEHOLDER_CACHE_READ_COST (number)",
"total_cost": "PLACEHOLDER_TOTAL_COST (number)",
"actual_cost": "PLACEHOLDER_ACTUAL_COST (number)",
"long_context_billing_applied": "PLACEHOLDER_LONG_CONTEXT_BILLING_APPLIED (boolean)",
"request_type": "PLACEHOLDER_REQUEST_TYPE (string)",
"stream": "PLACEHOLDER_STREAM (boolean)",
"duration_ms": "PLACEHOLDER_DURATION_MS (integer)",
"first_token_ms": "PLACEHOLDER_FIRST_TOKEN_MS (integer)",
"image_count": "PLACEHOLDER_IMAGE_COUNT (integer)",
"image_size": "PLACEHOLDER_IMAGE_SIZE (string)",
"image_input_size": "PLACEHOLDER_IMAGE_INPUT_SIZE (string)",
"image_output_size": "PLACEHOLDER_IMAGE_OUTPUT_SIZE (string)",
"image_input_tokens": "PLACEHOLDER_IMAGE_INPUT_TOKENS (integer)",
"image_input_cost": "PLACEHOLDER_IMAGE_INPUT_COST (number)",
"image_output_tokens": "PLACEHOLDER_IMAGE_OUTPUT_TOKENS (integer)",
"image_output_cost": "PLACEHOLDER_IMAGE_OUTPUT_COST (number)",
"image_size_breakdown": "PLACEHOLDER_IMAGE_SIZE_BREAKDOWN (object)",
"media_type": "PLACEHOLDER_MEDIA_TYPE (string)",
"ip_address": "PLACEHOLDER_IP_ADDRESS (string)",
"session_id": "PLACEHOLDER_SESSION_ID (string)",
"created_at": "PLACEHOLDER_CREATED_AT (string)",
"user": "PLACEHOLDER_USER (object)",
"api_key": "PLACEHOLDER_API_KEY (object)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
POST /api/v1/usage/dashboard/api-keys-usage — Statistiques de vos clés API
Accès : token de l’espace personnel
/api/v1/usage/dashboard/api-keys-usageChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
api_key_ids | array | oui | required |
{
"api_key_ids": "PLACEHOLDER_API_KEY_IDS (array)"
}PLACEHOLDER représente votre saisie et son type. Remplacez les valeurs et ne conservez que les champs facultatifs nécessaires ; les marqueurs textuels ne doivent pas remplacer des nombres, des boolean, des objets ou des tableaux.
Schéma de la requête : BatchAPIKeysUsageRequest
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : BatchAPIKeyUsageStats. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
"today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
"total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
Particularités : cette méthode lit les statistiques de vos propres clés API ; l’exemple décrit le contrat et n’est pas exécuté.
GET /api/v1/usage/dashboard/models — Consommation par modèle
Accès : token de l’espace personnel
/api/v1/usage/dashboard/modelscurl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/models" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
api_key_id | integer | non | |
request_type | string | non | |
stream | boolean | non | |
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
period | string | non | |
model | string | non |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
{
"code": 0,
"message": "success",
"data": {
"end_date": "VALUE_FROM_RESPONSE",
"models": "VALUE_FROM_RESPONSE",
"month": "VALUE_FROM_RESPONSE",
"start_date": "VALUE_FROM_RESPONSE",
"today": "VALUE_FROM_RESPONSE",
"week": "VALUE_FROM_RESPONSE"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/dashboard/snapshot-v2 — Instantané commun des graphiques
Accès : token de l’espace personnel
/api/v1/usage/dashboard/snapshot-v2curl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/snapshot-v2" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
granularity | string | non | ; par défaut : day |
include_trend | boolean | non | ; par défaut : true |
include_model_stats | boolean | non | ; par défaut : true |
api_key_id | integer | non | |
request_type | string | non | |
stream | boolean | non | |
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
period | string | non | |
model | string | non |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
{
"code": 0,
"message": "success",
"data": {
"end_date": "VALUE_FROM_RESPONSE",
"generated_at": "VALUE_FROM_RESPONSE",
"granularity": "VALUE_FROM_RESPONSE",
"month": "VALUE_FROM_RESPONSE",
"start_date": "VALUE_FROM_RESPONSE",
"today": "VALUE_FROM_RESPONSE",
"week": "VALUE_FROM_RESPONSE"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/dashboard/stats — Bilan de consommation
Accès : token de l’espace personnel
/api/v1/usage/dashboard/statscurl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/stats" \
-H "Authorization: Bearer $TOKEN"Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : UserDashboardStats. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"total_api_keys": "PLACEHOLDER_TOTAL_API_KEYS (integer)",
"active_api_keys": "PLACEHOLDER_ACTIVE_API_KEYS (integer)",
"total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
"total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
"total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
"total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
"total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
"total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
"total_cost": "PLACEHOLDER_TOTAL_COST (number)",
"total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
"today_requests": "PLACEHOLDER_TODAY_REQUESTS (integer)",
"today_input_tokens": "PLACEHOLDER_TODAY_INPUT_TOKENS (integer)",
"today_output_tokens": "PLACEHOLDER_TODAY_OUTPUT_TOKENS (integer)",
"today_cache_creation_tokens": "PLACEHOLDER_TODAY_CACHE_CREATION_TOKENS (integer)",
"today_cache_read_tokens": "PLACEHOLDER_TODAY_CACHE_READ_TOKENS (integer)",
"today_tokens": "PLACEHOLDER_TODAY_TOKENS (integer)",
"today_cost": "PLACEHOLDER_TODAY_COST (number)",
"today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
"average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
"rpm": "PLACEHOLDER_RPM (integer)",
"tpm": "PLACEHOLDER_TPM (integer)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/dashboard/trend — Évolution de la consommation
Accès : token de l’espace personnel
/api/v1/usage/dashboard/trendcurl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/trend" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
granularity | string | non | ; par défaut : day |
api_key_id | integer | non | |
request_type | string | non | |
stream | boolean | non | |
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
period | string | non | |
model | string | non |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
{
"code": 0,
"message": "success",
"data": {
"end_date": "VALUE_FROM_RESPONSE",
"granularity": "VALUE_FROM_RESPONSE",
"month": "VALUE_FROM_RESPONSE",
"start_date": "VALUE_FROM_RESPONSE",
"today": "VALUE_FROM_RESPONSE",
"trend": "VALUE_FROM_RESPONSE",
"week": "VALUE_FROM_RESPONSE"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/errors — Historique des erreurs
Accès : token de l’espace personnel
/api/v1/usage/errorscurl --fail-with-body "https://ailoot.ai/api/v1/usage/errors" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
model | string | non | |
api_key_id | integer | non | |
status_code | integer | non | |
category | string | non | |
sort_by | string | non | |
sort_order | string | non | |
page | integer | non | ; par défaut : 1 ; positive ; page_size/limit <=1000 |
page_size | integer | non | ; par défaut : 20 ; positive ; page_size/limit <=1000 |
limit | integer | non | ; par défaut : 20 ; positive ; page_size/limit <=1000 |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
{
"code": 0,
"message": "success",
"data": {
"items": [
"PLACEHOLDER_DATA (object, description — sur la page « Schémas de données »)"
],
"total": "PLACEHOLDER_TOTAL (integer)",
"page": "PLACEHOLDER_PAGE (integer)",
"page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
"pages": "PLACEHOLDER_PAGES (integer)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/errors/ :id — Détails d’une erreur de votre compte
Accès : token de l’espace personnel
/api/v1/usage/errors/:idcurl --fail-with-body "https://ailoot.ai/api/v1/usage/errors/$ID" \
-H "Authorization: Bearer $TOKEN"Paramètres du chemin
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
id | integer | oui |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
{
"code": 0,
"message": "success",
"data": "PLACEHOLDER_DATA (object, description — sur la page « Schémas de données »)"
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/usage/stats — Statistiques de consommation
Accès : token de l’espace personnel
/api/v1/usage/statscurl --fail-with-body "https://ailoot.ai/api/v1/usage/stats" \
-H "Authorization: Bearer $TOKEN"Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
api_key_id | integer | non | |
request_type | string | non | |
stream | boolean | non | |
timezone | string | non | |
start_date | string | non | |
end_date | string | non | |
period | string | non | |
model | string | non |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : UsageStats. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
"total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
"total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
"total_cache_tokens": "PLACEHOLDER_TOTAL_CACHE_TOKENS (integer)",
"total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
"total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
"total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
"total_cost": "PLACEHOLDER_TOTAL_COST (number)",
"total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
"average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
"endpoints": "PLACEHOLDER_ENDPOINTS (array)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
GET /api/v1/user/api-keys/ :id/usage/daily — Statistiques quotidiennes d’une clé API de votre compte
Accès : token de l’espace personnel
/api/v1/user/api-keys/:id/usage/dailycurl --fail-with-body "https://ailoot.ai/api/v1/user/api-keys/$ID/usage/daily" \
-H "Authorization: Bearer $TOKEN"Paramètres du chemin
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
id | integer | oui |
Paramètres de requête
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
days | integer | non | ; par défaut : 30 |
timezone | string | non |
Aucun corps de requête n’est nécessaire. Transmettez les paramètres ci-dessus dans l’URL.
Réponse
La réponse JSON contient code, message et data. Le contenu de data est décrit dans les schémas ci-dessous.
Schémas des données de réponse : APIKeyDailyUsagePoint. Les champs et les types figurent sur les pages « Schémas de données ».
{
"code": 0,
"message": "success",
"data": {
"date": "PLACEHOLDER_DATE (string)",
"requests": "PLACEHOLDER_REQUESTS (integer)",
"input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
"output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
"cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
"cache_write_tokens": "PLACEHOLDER_CACHE_WRITE_TOKENS (integer)",
"total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
"cost": "PLACEHOLDER_COST (number)",
"actual_cost": "PLACEHOLDER_ACTUAL_COST (number)"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.
Historique et dépenses · USD
total_cost est le coût calculé selon le tarif ; actual_cost est le montant débité enregistré en USD.
Exemple de calcul
{
"total_cost": 0.1,
"actual_cost": 0.08
}period ∈ {today, week, month}; start_date, end_date: YYYY-MM-DD; timezone: IANA · timezone=UTC. end_date: [00:00, +1 day 00:00). display: actual_cost.toFixed(8); JSON: number.