Profil et sécurité
MarkdownMéthodes, champs des requêtes et réponses.
Guide complet
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
/api/v1/userChamps 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 |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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 ».
{
"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 : 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 : 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/passkeys — Liste des clés d’accès
Accès : token de l’espace client
/api/v1/user/passkeyscurl --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 ».
{
"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 périmètre du sujet du 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
/api/v1/user/passwordChamps JSON / du formulaire
| Le champ | Type | Obligatoire | Validation / description |
|---|---|---|---|
old_password | string | oui | required |
new_password | string | oui | required,min=6 |
{
"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 ; les marqueurs textuels ne doivent pas remplacer des nombres, des booléens (boolean), des objets ou des 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.
{
"code": 0,
"message": "success",
"data": {
"message": "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.
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/user/profile — Profil, solde et liaisons
Accès : token de l’espace client
/api/v1/user/profilecurl --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 ».
{
"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.
GET /api/v1/user/totp/status — Statut 2FA (TOTP)
Accès : token de l’espace client
/api/v1/user/totp/statuscurl --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 ».
{
"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 périmètre du sujet du 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
/api/v1/user/totp/verification-methodcurl --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.
{
"code": 0,
"message": "success",
"data": {
"method": "email"
}
}Particularités : toutes les données personnelles et tous les objets sont limités au périmètre du sujet du JWT.
Particularités : secret et setup_token sont confidentiels ; la vérification dépend des paramètres TOTP et de l’utilisateur.
TotpVerificationMethod
{
"type": "object",
"required": [
"method"
],
"properties": {
"method": {
"type": "string",
"enum": [
"email",
"password"
]
}
}
}