Source: https://ailoot.ai/docs/fr-ch/cabinet/profile/
Canonical: https://ailoot.ai/docs/fr-ch/cabinet/profile/
Language: fr-ch

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

# Profil et sécurité

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

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

Cette rubrique comporte 6 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 |
| --- | --- | --- |
| `PUT /api/v1/user` | Modification du profil | Token de l’espace client |
| `GET /api/v1/user/passkeys` | Liste des clés d’accès | Token de l’espace client |
| `PUT /api/v1/user/password` | Changement du mot de passe | Token de l’espace client |
| `GET /api/v1/user/profile` | Profil, solde et liaisons | Token de l’espace client |
| `GET /api/v1/user/totp/status` | Statut 2FA (TOTP) | Token de l’espace client |
| `GET /api/v1/user/totp/verification-method` | Méthode de vérification TOTP | Token de l’espace client |

**PUT /api/v1/user** — Modification du profil

Accès : token de l’espace client

PUT`/api/v1/user`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `username` | `string` | non | ; peut être null |
| `avatar_url` | `string` | non | ; peut être null |
| `balance_notify_enabled` | `boolean` | non | ; peut être null |
| `balance_notify_threshold` | `number` | non | ; peut être null |

Modèle du corps de la requête

```json
{
  "username": "PLACEHOLDER_USERNAME (string)",
  "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
  "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
  "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)"
}
```

PLACEHOLDER représente votre saisie et son type. Remplacez les valeurs et ne conservez que les champs facultatifs nécessaires ; n’envoyez pas ces marqueurs textuels à la place de nombres, de booléens (boolean), d’objets ou de tableaux.

Schéma de la requête : `UpdateProfileRequest`

## 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 : `User`, `UserProfileResponse`. 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)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet représenté par le JWT.

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

Particularités : les plafonds de dépenses des clés, quota et quota\_used, figurent dans la réponse des clés, et non dans le profil. frozen\_balance est un montant réservé et ne doit pas être considéré comme un solde disponible.

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/user/passkeys** — Liste des clés d’accès

Accès : token de l’espace client

GET`/api/v1/user/passkeys`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/passkeys" \
  -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 : `PasskeyCredentialSummary`. 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)",
    "name": "PLACEHOLDER_NAME (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "backup": "PLACEHOLDER_BACKUP (boolean)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet représenté par le JWT.

Particularités : credential provient de navigator.credentials ; session\_token provient de begin. Le corps de finish doit faire \<=65536 octets ; l’enregistrement et la suppression nécessitent le mot de passe.

**PUT /api/v1/user/password** — Changement du mot de passe

Accès : token de l’espace client

PUT`/api/v1/user/password`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `old_password` | `string` | oui | required |
| `new_password` | `string` | oui | required,min=6 |

Modèle du corps de la requête

```json
{
  "old_password": "PLACEHOLDER_OLD_PASSWORD (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}
```

PLACEHOLDER représente votre saisie et son type. Remplacez les valeurs et ne conservez que les champs facultatifs nécessaires ; n’envoyez pas ces marqueurs textuels à la place de nombres, de booléens (boolean), d’objets ou de tableaux.

Schéma de la requête : `ChangePasswordRequest`

## 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 représenté par le JWT.

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

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/user/profile** — Profil, solde et liaisons

Accès : token de l’espace client

GET`/api/v1/user/profile`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/profile" \
  -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 : `User`, `UserProfileResponse`. 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)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet représenté par le JWT.

Particularités : les plafonds de dépenses des clés, quota et quota\_used, figurent dans la réponse des clés, et non dans le profil. frozen\_balance est un montant réservé et ne doit pas être considéré comme un solde disponible.

**GET /api/v1/user/totp/status** — Statut 2FA (TOTP)

Accès : token de l’espace client

GET`/api/v1/user/totp/status`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/status" \
  -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 : `TotpStatusResponse`. 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": {
    "enabled": "PLACEHOLDER_ENABLED (boolean)",
    "enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
    "feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet représenté par le JWT.

Particularités : secret et setup\_token sont confidentiels ; la vérification dépend des paramètres TOTP et de l’utilisateur.

**GET /api/v1/user/totp/verification-method** — Méthode de vérification TOTP

Accès : token de l’espace client

GET`/api/v1/user/totp/verification-method`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/verification-method" \
  -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éma de la réponse, avec des valeurs fictives

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "method": "email"
  }
}
```

Particularités : toutes les données personnelles et tous les objets sont limités au sujet représenté par le JWT.

Particularités : secret et setup\_token sont confidentiels ; la vérification dépend des paramètres TOTP et de l’utilisateur.

## TotpVerificationMethod

```json
{
  "type": "object",
  "required": [
    "method"
  ],
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "email",
        "password"
      ]
    }
  }
}
```

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