Connexion et sessions
MarkdownMéthodes, champs des requêtes et réponses.
Guide complet
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 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 | 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 | 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 60 secondes depuis une même adresse.
/api/v1/auth/forgot-passwordChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
email | string | oui | required,email |
turnstile_token | string | non |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"code": 0,
"message": "success",
"data": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}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é.
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 60 secondes depuis une même adresse.
/api/v1/auth/loginChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
email | string | oui | required,email |
password | string | oui | required |
turnstile_token | string | non |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.
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 60 secondes depuis une même adresse.
/api/v1/auth/login/2faChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
temp_token | string | oui | required |
totp_code | string | oui | required,len=6 |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.
POST /api/v1/auth/logout — Déconnexion et révocation du refresh token
Accès : sans connexion ; les conditions supplémentaires sont précisées pour la méthode
/api/v1/auth/logoutChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
refresh_token | string | non | ; Facultatif : révoquer le token de renouvellement indiqué |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"code": 0,
"message": "success",
"data": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}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é.
GET /api/v1/auth/me — Utilisateur actuel, solde et limites
Accès : token de l’espace client
/api/v1/auth/mecurl --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 ».
{
"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 périmètre du sujet du 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
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 60 secondes depuis une même adresse.
/api/v1/auth/passkey/login/beginChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
turnstile_token | string | non |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"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 autorisation à 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.
POST /api/v1/auth/passkey/login/finish — Finalisation de la connexion avec une clé d’accès
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 60 secondes depuis une même adresse.
/api/v1/auth/passkey/login/finishChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
session_token | string | oui | required |
name | string | non | |
credential | object | oui | required |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 autorisation à 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.
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 60 secondes depuis une même adresse.
/api/v1/auth/refreshChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
refresh_token | string | oui | required |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"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 autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.
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 60 secondes depuis une même adresse.
/api/v1/auth/registerChamps 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 |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.
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 60 secondes depuis une même adresse.
/api/v1/auth/reset-passwordChamps 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 |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"code": 0,
"message": "success",
"data": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}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é.
POST /api/v1/auth/revoke-all-sessions — Révocation de toutes les sessions
Accès : token de l’espace client
/api/v1/auth/revoke-all-sessionsAucun 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 ».
{
"code": 0,
"message": "success",
"data": {
"message": "PLACEHOLDER_MESSAGE (string)"
}
}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 opération modifie l’état ou poursuit une autorisation à usage unique ; l’exemple décrit le contrat et n’est pas exécuté.
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 60 secondes depuis une même adresse.
/api/v1/auth/send-verify-codeChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
email | string | oui | required,email |
turnstile_token | string | non |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"code": 0,
"message": "success",
"data": {
"message": "PLACEHOLDER_MESSAGE (string)",
"countdown": "PLACEHOLDER_COUNTDOWN (integer)"
}
}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é.
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 60 secondes depuis une même adresse.
/api/v1/auth/validate-invitation-codeChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
code | string | oui | required |
{
"code": "PLACEHOLDER_CODE (string)"
}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 : 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 ».
{
"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é.
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 60 secondes depuis une même adresse.
/api/v1/auth/validate-promo-codeChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
code | string | oui | required |
{
"code": "PLACEHOLDER_CODE (string)"
}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 : 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 ».
{
"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é.
Connexion et sessions · 2FA
POST /api/v1/auth/login → data
data.requires_2fa === true→ TotpLoginResponse →data.temp_token→POST /api/v1/auth/login/2fa·{"temp_token": "…", "totp_code": "…"}→data.access_tokendata.access_token→ AuthResponse →Authorization: Bearer $TOKEN
totp_code: string, len = 6. temp_token ≠ access_token. User