Source: https://ailoot.ai/docs/fr-be/cabinet/usage/
Canonical: https://ailoot.ai/docs/fr-be/cabinet/usage/
Language: fr-be

[API de l’espace client](https://ailoot.ai/docs/fr-be/) 

# Historique et dépenses

[Markdown](https://ailoot.ai/docs/fr-be/cabinet/usage/index.md)

Méthodes, champs des requêtes et réponses.

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 client |
| `GET /api/v1/usage/:id` | Une requête de l’historique | Token de l’espace client |
| `POST /api/v1/usage/dashboard/api-keys-usage` | Statistiques de vos clés API | Token de l’espace client |
| `GET /api/v1/usage/dashboard/models` | Consommation par modèle | Token de l’espace client |
| `GET /api/v1/usage/dashboard/snapshot-v2` | Instantané unifié des graphiques | Token de l’espace client |
| `GET /api/v1/usage/dashboard/stats` | Bilan de consommation | Token de l’espace client |
| `GET /api/v1/usage/dashboard/trend` | Évolution de la consommation | Token de l’espace client |
| `GET /api/v1/usage/errors` | Historique des erreurs | Token de l’espace client |
| `GET /api/v1/usage/errors/:id` | Détails d’une erreur de votre compte | Token de l’espace client |
| `GET /api/v1/usage/stats` | Statistiques de consommation | Token de l’espace client |
| `GET /api/v1/user/api-keys/:id/usage/daily` | Statistiques quotidiennes de votre propre clé API | Token de l’espace client |

**GET /api/v1/usage** — Historique des requêtes

Accès : token de l’espace client

GET`/api/v1/usage`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/ :id** — Une requête de l’historique

Accès : token de l’espace client

GET`/api/v1/usage/:id`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**POST /api/v1/usage/dashboard/api-keys-usage** — Statistiques de vos clés API

Accès : token de l’espace client

POST`/api/v1/usage/dashboard/api-keys-usage`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `api_key_ids` | `array` | oui | required |

Modèle du corps de la requête

```json
{
  "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 (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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du 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é.

Cette méthode renvoie des statistiques sans modifier les clés API ni les dépenses. Idempotency-Key n’est pas nécessaire pour une nouvelle lecture ; la réponse reflète l’état au moment de la requête.

**GET /api/v1/usage/dashboard/models** — Consommation par modèle

Accès : token de l’espace client

GET`/api/v1/usage/dashboard/models`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/models" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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éma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/dashboard/snapshot-v2** — Instantané unifié des graphiques

Accès : token de l’espace client

GET`/api/v1/usage/dashboard/snapshot-v2`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/snapshot-v2" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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.

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/dashboard/stats** — Bilan de consommation

Accès : token de l’espace client

GET`/api/v1/usage/dashboard/stats`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/dashboard/trend** — Évolution de la consommation

Accès : token de l’espace client

GET`/api/v1/usage/dashboard/trend`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/dashboard/trend" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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.

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/errors** — Historique des erreurs

Accès : token de l’espace client

GET`/api/v1/usage/errors`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/errors" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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.

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/errors/ :id** — Détails d’une erreur de votre compte

Accès : token de l’espace client

GET`/api/v1/usage/errors/:id`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --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.

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/usage/stats** — Statistiques de consommation

Accès : token de l’espace client

GET`/api/v1/usage/stats`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/usage/stats" \
  -H "Authorization: Bearer $TOKEN"
```

## Paramètres de la chaîne 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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du sujet du JWT.

**GET /api/v1/user/api-keys/ :id/usage/daily** — Statistiques quotidiennes de votre propre clé API

Accès : token de l’espace client

GET`/api/v1/user/api-keys/:id/usage/daily`

Lecture ; l’ID provient de votre réponse précédente

```bash
curl --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 la chaîne 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 ».

Schéma de la réponse, avec des valeurs fictives

```json
{
  "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 périmètre du 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

```json
{
  "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`.

Des questions ? Envoyez-nous le Request ID et une description : nous vous aiderons à y voir plus clair.[Contacter l’assistance](mailto:support@ailoot.ai)

## Ailoot · L’entreprise et son portefeuille de projets





Ailoot s’appuie sur une expérience opérationnelle éprouvée, une large clientèle, un service stable et un suivi continu des KPI.





L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.





Ailoot met cette expérience opérationnelle au service de l’accès API aux fonctions d’IA dans les produits des clients, leurs agents, applications et automatisations.
