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

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

# Connexion et sessions

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

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

Cette rubrique comporte 14 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 |
| --- | --- | --- |
| `POST /api/v1/auth/forgot-password` | Demande de réinitialisation du mot de passe | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/login` | Connexion par adresse e-mail et mot de passe | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/login/2fa` | Finalisation de la connexion avec TOTP | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/logout` | Déconnexion et révocation du token de renouvellement (refresh token) | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `GET /api/v1/auth/me` | Utilisateur actuel, solde et limites | Token de l’espace client |
| `POST /api/v1/auth/passkey/login/begin` | Début de la connexion avec une clé d’accès (passkey) | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/passkey/login/finish` | Finalisation de la connexion avec une clé d’accès (passkey) | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/refresh` | Renouvellement des tokens | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/register` | Inscription | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/reset-password` | Réinitialisation du mot de passe | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/revoke-all-sessions` | Révocation de toutes les sessions | Token de l’espace client |
| `POST /api/v1/auth/send-verify-code` | Envoi du code de vérification | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/validate-invitation-code` | Vérification de l’invitation | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |
| `POST /api/v1/auth/validate-promo-code` | Vérification du code promotionnel | Sans connexion ; les conditions supplémentaires sont précisées pour la méthode |

**POST /api/v1/auth/forgot-password** — Demande de réinitialisation du mot de passe

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

Limite de fréquence : 5 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/forgot-password`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `email` | `string` | oui | required,email |
| `turnstile_token` | `string` | non |  |

Modèle du corps de la requête

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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 : `ForgotPasswordRequest`

## 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 : `ForgotPasswordResponse`. 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": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

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.

**POST /api/v1/auth/login** — Connexion par adresse e-mail et mot de passe

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 20 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/login`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `email` | `string` | oui | required,email |
| `password` | `string` | oui | required |
| `turnstile_token` | `string` | non |  |

Modèle du corps de la requête

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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 : `LoginRequest`

## 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 : `TotpLoginResponse`, `User`, `AuthResponse`. Les champs et les types figurent sur les pages « Schémas de données ».

Si plusieurs variantes de réponse sont possibles, leurs champs sont décrits dans des schémas distincts ; ne les fusionnez pas dans un même objet.

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.

**POST /api/v1/auth/login/2fa** — Finalisation de la connexion avec TOTP

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 20 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/login/2fa`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `temp_token` | `string` | oui | required |
| `totp_code` | `string` | oui | required,len=6 |

Modèle du corps de la requête

```json
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (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 : `Login2FARequest`

## 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`, `AuthResponse`. Les champs et les types figurent sur les pages « Schémas de données ».

Si plusieurs variantes de réponse sont possibles, leurs champs sont décrits dans des schémas distincts ; ne les fusionnez pas dans un même objet.

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.

**POST /api/v1/auth/logout** — Déconnexion et révocation du token de renouvellement (refresh token)

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

POST`/api/v1/auth/logout`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `refresh_token` | `string` | non | ; Facultatif : révoquer le token de renouvellement indiqué |

Modèle du corps de la requête

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (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 : `LogoutRequest`

## 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 : `LogoutResponse`. 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": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

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/auth/me** — Utilisateur actuel, solde et limites

Accès : token de l’espace client

GET`/api/v1/auth/me`

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

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/auth/me" \
  -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.

**POST /api/v1/auth/passkey/login/begin** — Début de la connexion avec une clé d’accès (passkey)

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 20 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/passkey/login/begin`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `turnstile_token` | `string` | non |  |

Modèle du corps de la requête

```json
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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 : `PasskeyBeginLoginRequest`

## 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 : `PasskeyOptionsResponse`. 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": {
    "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
    "options": "PLACEHOLDER_OPTIONS (any)"
  }
}
```

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 : 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.

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.

**POST /api/v1/auth/passkey/login/finish** — Finalisation de la connexion avec une clé d’accès (passkey)

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 20 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/passkey/login/finish`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `session_token` | `string` | oui | required |
| `name` | `string` | non |  |
| `credential` | `object` | oui | required |

Modèle du corps de la requête

```json
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "name": "PLACEHOLDER_NAME (string)",
  "credential": "PLACEHOLDER_CREDENTIAL (object)"
}
```

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

## 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`, `AuthResponse`. Les champs et les types figurent sur les pages « Schémas de données ».

Si plusieurs variantes de réponse sont possibles, leurs champs sont décrits dans des schémas distincts ; ne les fusionnez pas dans un même objet.

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 : 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.

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.

**POST /api/v1/auth/refresh** — Renouvellement des tokens

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 30 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/refresh`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `refresh_token` | `string` | oui | required |

Modèle du corps de la requête

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (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 : `RefreshTokenRequest`

## 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 : `RefreshTokenResponse`. 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": {
    "access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
    "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
    "expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
    "token_type": "PLACEHOLDER_TOKEN_TYPE (string)"
  }
}
```

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.

**POST /api/v1/auth/register** — Inscription

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

Limite de fréquence : 5 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/register`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `email` | `string` | oui | required,email |
| `password` | `string` | oui | required,min=6 |
| `verify_code` | `string` | non |  |
| `turnstile_token` | `string` | non |  |
| `promo_code` | `string` | non | ; Code promotionnel d’inscription |
| `invitation_code` | `string` | non | ; Code d’invitation |

Modèle du corps de la requête

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "verify_code": "PLACEHOLDER_VERIFY_CODE (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)",
  "promo_code": "PLACEHOLDER_PROMO_CODE (string)",
  "invitation_code": "PLACEHOLDER_INVITATION_CODE (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 : `RegisterRequest`

## 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`, `AuthResponse`. Les champs et les types figurent sur les pages « Schémas de données ».

Si plusieurs variantes de réponse sont possibles, leurs champs sont décrits dans des schémas distincts ; ne les fusionnez pas dans un même objet.

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.

**POST /api/v1/auth/reset-password** — Réinitialisation du mot de passe

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

Limite de fréquence : 10 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/reset-password`

## Champs JSON / du formulaire

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

Modèle du corps de la requête

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (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 : `ResetPasswordRequest`

## 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 : `ResetPasswordResponse`. 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": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

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.

**POST /api/v1/auth/revoke-all-sessions** — Révocation de toutes les sessions

Accès : token de l’espace client

POST`/api/v1/auth/revoke-all-sessions`

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émas des données de réponse : `RevokeAllSessionsResponse`. 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": {
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

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.

**POST /api/v1/auth/send-verify-code** — Envoi du code de vérification

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

Limite de fréquence : 5 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/send-verify-code`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `email` | `string` | oui | required,email |
| `turnstile_token` | `string` | non |  |

Modèle du corps de la requête

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (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 : `SendVerifyCodeRequest`

## 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 : `SendVerifyCodeResponse`. 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": {
    "message": "PLACEHOLDER_MESSAGE (string)",
    "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
  }
}
```

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.

**POST /api/v1/auth/validate-invitation-code** — Vérification de l’invitation

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 10 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/validate-invitation-code`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `code` | `string` | oui | required |

Modèle du corps de la requête

```json
{
  "code": "PLACEHOLDER_CODE (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 : `ValidateInvitationCodeRequest`

## 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 : `ValidateInvitationCodeResponse`. 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": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)"
  }
}
```

Particularités : cette méthode vérifie l’invitation sans consommer le code ; l’exemple décrit le contrat et n’est pas exécuté.

Cette méthode vérifie uniquement le code d’invitation sans le consommer. La vérification peut être répétée en respectant la limite de fréquence ; le résultat reflète l’état du code au moment de la requête.

**POST /api/v1/auth/validate-promo-code** — Vérification du code promotionnel

Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode

La disponibilité de la fonction et les conditions d’accès supplémentaires sont vérifiées lors de l’exécution de la requête.

Limite de fréquence : 10 requêtes par période de 60 secondes depuis une même adresse.

POST`/api/v1/auth/validate-promo-code`

## Champs JSON / du formulaire

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `code` | `string` | oui | required |

Modèle du corps de la requête

```json
{
  "code": "PLACEHOLDER_CODE (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 : `ValidatePromoCodeRequest`

## 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 : `ValidatePromoCodeResponse`. 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": {
    "valid": "PLACEHOLDER_VALID (boolean)",
    "bonus_amount": "PLACEHOLDER_BONUS_AMOUNT (number)",
    "error_code": "PLACEHOLDER_ERROR_CODE (string)",
    "message": "PLACEHOLDER_MESSAGE (string)"
  }
}
```

Particularités : cette méthode vérifie le code promotionnel sans créditer de bonus ; l’exemple décrit le contrat et n’est pas exécuté.

Cette méthode vérifie uniquement le code promotionnel sans l’appliquer au compte. La vérification peut être répétée en respectant la limite de fréquence ; le résultat reflète l’état du code au moment de la requête.

## Connexion et sessions · 2FA

`POST /api/v1/auth/login` → `data`

- `data.requires_2fa === true` → [TotpLoginResponse](https://ailoot.ai/docs/fr-ch/cabinet/schemas-1/#totploginresponse) → `data.temp_token` → `POST /api/v1/auth/login/2fa` · `{"temp_token": "…", "totp_code": "…"}` → `data.access_token`
- `data.access_token` → [AuthResponse](https://ailoot.ai/docs/fr-ch/cabinet/schemas-1/#authresponse) → `Authorization: Bearer $TOKEN`

`totp_code`: `string`, `len = 6`. `temp_token ≠ access_token`. [User](https://ailoot.ai/docs/fr-ch/cabinet/schemas-1/#user)

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.
