Source: https://ailoot.ai/docs/fr/cabinet/keys/
Canonical: https://ailoot.ai/docs/fr/cabinet/keys/
Language: fr

[API du tableau de bord](https://ailoot.ai/docs/fr/) 

# Clés API

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

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

Cette rubrique comporte 5 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/keys` | Liste des clés API | Token de l’espace personnel |
| `POST /api/v1/keys` | Création d’une clé API | Token de l’espace personnel |
| `DELETE /api/v1/keys/:id` | Suppression des clés API | Token de l’espace personnel |
| `GET /api/v1/keys/:id` | Récupération d’une clé API par identifiant | Token de l’espace personnel |
| `PUT /api/v1/keys/:id` | Modification d’une clé API | Token de l’espace personnel |

**GET /api/v1/keys** — Liste des clés API

Accès : token de l’espace personnel

GET`/api/v1/keys`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/keys" \
  -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 |
| `search` | `string` | non |  |
| `status` | `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 : `APIKey`. 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)",
        "key": "PLACEHOLDER_KEY (string)",
        "name": "PLACEHOLDER_NAME (string)",
        "status": "PLACEHOLDER_STATUS (string)",
        "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
        "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
        "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
        "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
        "quota": "PLACEHOLDER_QUOTA (number)",
        "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
        "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
        "created_at": "PLACEHOLDER_CREATED_AT (string)",
        "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
        "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
        "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
        "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
        "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
        "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
        "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
        "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
        "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
        "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
        "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
        "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
        "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
        "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
        "user": "PLACEHOLDER_USER (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.

Particularités : la réponse contient la valeur secrète key ; ne publiez pas les valeurs réelles.

**POST /api/v1/keys** — Création d’une clé API

Accès : token de l’espace personnel

POST`/api/v1/keys`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `name` | `string` | oui | required |
| `custom_key` | `string` | non | ; Valeur personnalisée facultative de la clé ; peut être null |
| `ip_whitelist` | `array` | non | ; Liste des IP autorisées |
| `ip_blacklist` | `array` | non | ; Liste des IP interdites |
| `quota` | `number` | non | ; Plafond de dépenses de la clé en USD ; peut être null |
| `expires_in_days` | `integer` | non | ; Durée de validité en jours ; peut être null |
| `rate_limit_5h` | `number` | non | ; peut être null |
| `rate_limit_1d` | `number` | non | ; peut être null |
| `rate_limit_7d` | `number` | non | ; peut être null |

Modèle du corps de la requête

```json
{
  "name": "PLACEHOLDER_NAME (string)",
  "custom_key": "PLACEHOLDER_CUSTOM_KEY (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_in_days": "PLACEHOLDER_EXPIRES_IN_DAYS (integer)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)"
}
```

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 : `CreateAPIKeyRequest`

## 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 : `APIKey`. 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)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.

Particularités : cette opération modifie l’état ou poursuit une autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.

Particularités : Idempotency-Key est pris en charge ; un nouvel envoi renvoie la réponse enregistrée avec X-Idempotency-Replayed.

Particularités : la réponse contient la valeur secrète key ; ne publiez pas les valeurs réelles.

Cette méthode modifie les données. Un nouvel envoi n’est sûr que lorsque la méthode indique Idempotency-Key. Si la réponse a été perdue, vérifiez d’abord le résultat, par exemple la liste des clés, puis décidez s’il faut renvoyer la requête.

**DELETE /api/v1/keys/ :id** — Suppression des clés API

Accès : token de l’espace personnel

DELETE`/api/v1/keys/:id`

## Paramètres du chemin

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | oui |  |

Aucun corps de requête n’est nécessaire.

## 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": {
    "message": "VALUE_FROM_RESPONSE"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.

Particularités : cette opération modifie l’état ou poursuit une autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.

Particularités : la réponse contient la valeur secrète key ; ne publiez pas les valeurs réelles.

Cette méthode modifie les données. Un nouvel envoi n’est sûr que lorsque la méthode indique Idempotency-Key. Si la réponse a été perdue, vérifiez d’abord le résultat, par exemple la liste des clés, puis décidez s’il faut renvoyer la requête.

**GET /api/v1/keys/ :id** — Récupération d’une clé API par identifiant

Accès : token de l’espace personnel

GET`/api/v1/keys/:id`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/keys/$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 : `APIKey`. 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)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.

Particularités : la réponse contient la valeur secrète key ; ne publiez pas les valeurs réelles.

**PUT /api/v1/keys/ :id** — Modification d’une clé API

Accès : token de l’espace personnel

PUT`/api/v1/keys/:id`

## Paramètres du chemin

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | oui |  |

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `name` | `string` | non |  |
| `status` | `string` | non | omitempty,oneof=active inactive |
| `ip_whitelist` | `array` | non | ; IP autorisées : null ne modifie pas la liste, un tableau vide l’efface ; peut être null |
| `ip_blacklist` | `array` | non | ; IP interdites : null ne modifie pas la liste, un tableau vide l’efface ; peut être null |
| `quota` | `number` | non | ; Plafond de dépenses de la clé en USD ; 0 signifie sans plafond ; peut être null |
| `expires_at` | `string` | non | ; Date et heure d’expiration au format ISO 8601 ; peut être null |
| `reset_quota` | `boolean` | non | ; Remettre à zéro la part dépensée du plafond ; peut être null |
| `rate_limit_5h` | `number` | non | ; peut être null |
| `rate_limit_1d` | `number` | non | ; peut être null |
| `rate_limit_7d` | `number` | non | ; peut être null |
| `reset_rate_limit_usage` | `boolean` | non | ; Remettre à zéro les dépenses comptabilisées par fenêtre ; peut être null |

Modèle du corps de la requête

```json
{
  "name": "PLACEHOLDER_NAME (string)",
  "status": "PLACEHOLDER_STATUS (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
  "reset_quota": "PLACEHOLDER_RESET_QUOTA (boolean)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
  "reset_rate_limit_usage": "PLACEHOLDER_RESET_RATE_LIMIT_USAGE (boolean)"
}
```

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 : `UpdateAPIKeyRequest`

## 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 : `APIKey`. 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)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet du JWT.

Particularités : cette opération modifie l’état ou poursuit une autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.

Particularités : la réponse contient la valeur secrète key ; ne publiez pas les valeurs réelles.

Particularités : tant que la clé a des requêtes en cours avec une réservation, son plafond de dépenses ne peut pas être réduit ni sa consommation remise à zéro. Transmettez uniquement les champs que vous modifiez.

Cette méthode modifie les données. Un nouvel envoi n’est sûr que lorsque la méthode indique Idempotency-Key. Si la réponse a été perdue, vérifiez d’abord le résultat, par exemple la liste des clés, puis décidez s’il faut renvoyer la requête.

Encore des questions ? Envoyez le Request ID et une description : nous vous aiderons à comprendre.[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.
