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 | Jeton du tableau de bord |
GET /api/v1/usage/:id | Une requête de l’historique | Jeton du tableau de bord |
POST /api/v1/usage/dashboard/api-keys-usage | Statistiques de vos clés API | Jeton du tableau de bord |
GET /api/v1/usage/dashboard/models | Consommation par modèle | Jeton du tableau de bord |
GET /api/v1/usage/dashboard/snapshot-v2 | Instantané commun des graphiques | Jeton du tableau de bord |
GET /api/v1/usage/dashboard/stats | Bilan de consommation | Jeton du tableau de bord |
GET /api/v1/usage/dashboard/trend | Évolution de la consommation | Jeton du tableau de bord |
GET /api/v1/usage/errors | Historique des erreurs | Jeton du tableau de bord |
GET /api/v1/usage/errors/:id | Détails d’une erreur de votre compte | Jeton du tableau de bord |
GET /api/v1/usage/stats | Statistiques de consommation | Jeton du tableau de bord |
GET /api/v1/user/api-keys/:id/usage/daily | Statistiques quotidiennes d’une clé API de votre compte | Jeton du tableau de bord |
GET /api/v1/usage — Historique des requêtes
Accès : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 booléens, 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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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 : jeton du tableau de bord
/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.