Source: https://ailoot.ai/docs/fr/cabinet/schemas-1/
Canonical: https://ailoot.ai/docs/fr/cabinet/schemas-1/
Language: fr

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

# Schémas de données

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

Champs et types des objets de l’API de l’espace personnel.

Champs et types des objets de l’API de l’espace personnel. omitempty signifie qu’un champ peut être absent de la réponse ; cela n’autorise pas l’envoi de null. Les chaînes PLACEHOLDER représentent un type, et non une réponse réelle.

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#apikey)APIKey

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `user_id` | `integer` | non |  |
| `key` | `string` | non |  |
| `name` | `string` | non |  |
| `status` | `string` | non |  |
| `ip_whitelist` | `array` · `items: string` | non |  |
| `ip_blacklist` | `array` · `items: string` | non |  |
| `last_used_at` | `string` | non | ; peut être null |
| `last_used_ip` | `string` | non | ; peut être null |
| `quota` | `number` | non | ; Plafond de dépenses de la clé en USD ; 0 signifie sans plafond |
| `quota_used` | `number` | non | ; Montant dépensé sur le plafond de la clé, en USD |
| `expires_at` | `string` | non | ; Date d’expiration ; null signifie sans expiration ; peut être null |
| `created_at` | `string` | non |  |
| `updated_at` | `string` | non |  |
| `current_concurrency` | `integer` | non |  |
| `rate_limit_5h` | `number` | non |  |
| `rate_limit_1d` | `number` | non |  |
| `rate_limit_7d` | `number` | non |  |
| `usage_5h` | `number` | non |  |
| `usage_1d` | `number` | non |  |
| `usage_7d` | `number` | non |  |
| `window_5h_start` | `string` | non | ; peut être null |
| `window_1d_start` | `string` | non | ; peut être null |
| `window_7d_start` | `string` | non | ; peut être null |
| `reset_5h_at` | `string` | non | ; peut être null |
| `reset_1d_at` | `string` | non | ; peut être null |
| `reset_7d_at` | `string` | non | ; peut être null |
| `user` | object · [User](https://ailoot.ai/docs/fr/cabinet/schemas-1/#user) | non | ; peut être null |

Champs de l’objet

```json
{
  "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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#apikeydailyusagepoint)APIKeyDailyUsagePoint

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `date` | `string` | non |  |
| `requests` | `integer` | non |  |
| `input_tokens` | `integer` | non |  |
| `output_tokens` | `integer` | non |  |
| `cache_read_tokens` | `integer` | non |  |
| `cache_write_tokens` | `integer` | non |  |
| `total_tokens` | `integer` | non |  |
| `cost` | `number` | non | ; Coût au tarif standard |
| `actual_cost` | `number` | non | ; Débit réel |

Champs de l’objet

```json
{
  "date": "PLACEHOLDER_DATE (string)",
  "requests": "PLACEHOLDER_REQUESTS (integer)",
  "input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
  "output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
  "cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
  "cache_write_tokens": "PLACEHOLDER_CACHE_WRITE_TOKENS (integer)",
  "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
  "cost": "PLACEHOLDER_COST (number)",
  "actual_cost": "PLACEHOLDER_ACTUAL_COST (number)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#authresponse)AuthResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `access_token` | `string` | non |  |
| `refresh_token` | `string` | non | ; Token de renouvellement de session |
| `expires_in` | `integer` | non | ; Durée de validité du token d’accès, en secondes |
| `token_type` | `string` | non |  |
| `user` | object · [User](https://ailoot.ai/docs/fr/cabinet/schemas-1/#user) | non | ; peut être null |

Champs de l’objet

```json
{
  "access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
  "expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
  "token_type": "PLACEHOLDER_TOKEN_TYPE (string)",
  "user": "PLACEHOLDER_USER (object)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#batchapikeysusagerequest)BatchAPIKeysUsageRequest

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `api_key_ids` | `array` · `items: integer (int64)` | oui | required |

Champs de l’objet

```json
{
  "api_key_ids": "PLACEHOLDER_API_KEY_IDS (array)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#batchapikeyusagestats)BatchAPIKeyUsageStats

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `api_key_id` | `integer` | non |  |
| `today_actual_cost` | `number` | non |  |
| `total_actual_cost` | `number` | non |  |

Champs de l’objet

```json
{
  "api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
  "today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
  "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#changepasswordrequest)ChangePasswordRequest

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

Champs de l’objet

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

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#createapikeyrequest)CreateAPIKeyRequest

| 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` · `items: string` | non | ; Liste des IP autorisées |
| `ip_blacklist` | `array` · `items: string` | 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 |

Champs de l’objet

```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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#forgotpasswordrequest)ForgotPasswordRequest

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

Champs de l’objet

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#forgotpasswordresponse)ForgotPasswordResponse

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

Champs de l’objet

```json
{
  "message": "PLACEHOLDER_MESSAGE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#login2farequest)Login2FARequest

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

Champs de l’objet

```json
{
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "totp_code": "PLACEHOLDER_TOTP_CODE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#loginrequest)LoginRequest

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

Champs de l’objet

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "password": "PLACEHOLDER_PASSWORD (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#logoutrequest)LogoutRequest

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

Champs de l’objet

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#logoutresponse)LogoutResponse

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

Champs de l’objet

```json
{
  "message": "PLACEHOLDER_MESSAGE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#passkeybeginloginrequest)PasskeyBeginLoginRequest

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

Champs de l’objet

```json
{
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#passkeycredentialsummary)PasskeyCredentialSummary

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `name` | `string` | non |  |
| `created_at` | `string` | non |  |
| `last_used_at` | `string` | non | ; peut être null |
| `backup` | `boolean` | non |  |

Champs de l’objet

```json
{
  "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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#passkeyfinishrequest)PasskeyFinishRequest

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

Champs de l’objet

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

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#passkeyoptionsresponse)PasskeyOptionsResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `session_token` | `string` | non |  |
| `options` | `any` | non |  |

Champs de l’objet

```json
{
  "session_token": "PLACEHOLDER_SESSION_TOKEN (string)",
  "options": "PLACEHOLDER_OPTIONS (any)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#redeemcode)RedeemCode

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `code` | `string` | non |  |
| `type` | `string` | non |  |
| `value` | `number` | non |  |
| `status` | `string` | non |  |
| `used_by` | `integer` | non | ; peut être null |
| `used_at` | `string` | non | ; peut être null |
| `created_at` | `string` | non |  |
| `expires_at` | `string` | non | ; peut être null |
| `validity_days` | `integer` | non |  |
| `notes` | `string` | non | ; peut être null |
| `user` | object · [User](https://ailoot.ai/docs/fr/cabinet/schemas-1/#user) | non | ; peut être null |

Champs de l’objet

```json
{
  "id": "PLACEHOLDER_ID (integer)",
  "code": "PLACEHOLDER_CODE (string)",
  "type": "PLACEHOLDER_TYPE (string)",
  "value": "PLACEHOLDER_VALUE (number)",
  "status": "PLACEHOLDER_STATUS (string)",
  "used_by": "PLACEHOLDER_USED_BY (integer)",
  "used_at": "PLACEHOLDER_USED_AT (string)",
  "created_at": "PLACEHOLDER_CREATED_AT (string)",
  "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
  "validity_days": "PLACEHOLDER_VALIDITY_DAYS (integer)",
  "notes": "PLACEHOLDER_NOTES (string)",
  "user": "PLACEHOLDER_USER (object)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#redeemrequest)RedeemRequest

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

Champs de l’objet

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#refreshtokenrequest)RefreshTokenRequest

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

Champs de l’objet

```json
{
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#refreshtokenresponse)RefreshTokenResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `access_token` | `string` | non |  |
| `refresh_token` | `string` | non |  |
| `expires_in` | `integer` | non | ; Durée de validité du token d’accès, en secondes |
| `token_type` | `string` | non |  |

Champs de l’objet

```json
{
  "access_token": "PLACEHOLDER_ACCESS_TOKEN (string)",
  "refresh_token": "PLACEHOLDER_REFRESH_TOKEN (string)",
  "expires_in": "PLACEHOLDER_EXPIRES_IN (integer)",
  "token_type": "PLACEHOLDER_TOKEN_TYPE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#registerrequest)RegisterRequest

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

Champs de l’objet

```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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#resetpasswordrequest)ResetPasswordRequest

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

Champs de l’objet

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "token": "PLACEHOLDER_TOKEN (string)",
  "new_password": "PLACEHOLDER_NEW_PASSWORD (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#resetpasswordresponse)ResetPasswordResponse

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

Champs de l’objet

```json
{
  "message": "PLACEHOLDER_MESSAGE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#revokeallsessionsresponse)RevokeAllSessionsResponse

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

Champs de l’objet

```json
{
  "message": "PLACEHOLDER_MESSAGE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#sendverifycoderequest)SendVerifyCodeRequest

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

Champs de l’objet

```json
{
  "email": "PLACEHOLDER_EMAIL (string)",
  "turnstile_token": "PLACEHOLDER_TURNSTILE_TOKEN (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#sendverifycoderesponse)SendVerifyCodeResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `message` | `string` | non |  |
| `countdown` | `integer` | non | ; Délai d’attente en secondes |

Champs de l’objet

```json
{
  "message": "PLACEHOLDER_MESSAGE (string)",
  "countdown": "PLACEHOLDER_COUNTDOWN (integer)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#totploginresponse)TotpLoginResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `requires_2fa` | `boolean` | non |  |
| `temp_token` | `string` | non |  |
| `user_email_masked` | `string` | non |  |

Champs de l’objet

```json
{
  "requires_2fa": "PLACEHOLDER_REQUIRES_2FA (boolean)",
  "temp_token": "PLACEHOLDER_TEMP_TOKEN (string)",
  "user_email_masked": "PLACEHOLDER_USER_EMAIL_MASKED (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#totpstatusresponse)TotpStatusResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `enabled` | `boolean` | non |  |
| `enabled_at` | `integer` | non | ; Unix timestamp ; peut être null |
| `feature_enabled` | `boolean` | non |  |

Champs de l’objet

```json
{
  "enabled": "PLACEHOLDER_ENABLED (boolean)",
  "enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
  "feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#updateapikeyrequest)UpdateAPIKeyRequest

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `name` | `string` | non |  |
| `status` | `string` | non | omitempty,oneof=active inactive |
| `ip_whitelist` | `array` · `items: string` | non | ; IP autorisées : null ne modifie pas la liste, un tableau vide l’efface ; peut être null |
| `ip_blacklist` | `array` · `items: string` | 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 |

Champs de l’objet

```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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#updateprofilerequest)UpdateProfileRequest

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

Champs de l’objet

```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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#usagelog)UsageLog

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `user_id` | `integer` | non |  |
| `api_key_id` | `integer` | non |  |
| `request_id` | `string` | non |  |
| `model` | `string` | non |  |
| `service_tier` | `string` | non | ; peut être null |
| `reasoning_effort` | `string` | non | ; peut être null |
| `input_tokens` | `integer` | non |  |
| `output_tokens` | `integer` | non |  |
| `cache_creation_tokens` | `integer` | non |  |
| `cache_read_tokens` | `integer` | non |  |
| `cache_creation_5m_tokens` | `integer` | non |  |
| `cache_creation_1h_tokens` | `integer` | non |  |
| `input_cost` | `number` | non |  |
| `output_cost` | `number` | non |  |
| `cache_creation_cost` | `number` | non |  |
| `cache_read_cost` | `number` | non |  |
| `total_cost` | `number` | non |  |
| `actual_cost` | `number` | non |  |
| `long_context_billing_applied` | `boolean` | non |  |
| `request_type` | `string` | non |  |
| `stream` | `boolean` | non |  |
| `duration_ms` | `integer` | non | ; peut être null |
| `first_token_ms` | `integer` | non | ; peut être null |
| `image_count` | `integer` | non |  |
| `image_size` | `string` | non | ; peut être null |
| `image_input_size` | `string` | non | ; peut être null |
| `image_output_size` | `string` | non | ; peut être null |
| `image_input_tokens` | `integer` | non |  |
| `image_input_cost` | `number` | non |  |
| `image_output_tokens` | `integer` | non |  |
| `image_output_cost` | `number` | non |  |
| `image_size_breakdown` | `object` · `additionalProperties: integer` | non |  |
| `media_type` | `string` | non | ; peut être null |
| `ip_address` | `string` | non | ; peut être null |
| `session_id` | `string` | non | ; peut être null |
| `created_at` | `string` | non |  |
| `user` | object · [User](https://ailoot.ai/docs/fr/cabinet/schemas-1/#user) | non | ; peut être null |
| `api_key` | object · [APIKey](https://ailoot.ai/docs/fr/cabinet/schemas-1/#apikey) | non | ; peut être null |

Champs de l’objet

```json
{
  "id": "PLACEHOLDER_ID (integer)",
  "user_id": "PLACEHOLDER_USER_ID (integer)",
  "api_key_id": "PLACEHOLDER_API_KEY_ID (integer)",
  "request_id": "PLACEHOLDER_REQUEST_ID (string)",
  "model": "PLACEHOLDER_MODEL (string)",
  "service_tier": "PLACEHOLDER_SERVICE_TIER (string)",
  "reasoning_effort": "PLACEHOLDER_REASONING_EFFORT (string)",
  "input_tokens": "PLACEHOLDER_INPUT_TOKENS (integer)",
  "output_tokens": "PLACEHOLDER_OUTPUT_TOKENS (integer)",
  "cache_creation_tokens": "PLACEHOLDER_CACHE_CREATION_TOKENS (integer)",
  "cache_read_tokens": "PLACEHOLDER_CACHE_READ_TOKENS (integer)",
  "cache_creation_5m_tokens": "PLACEHOLDER_CACHE_CREATION_5M_TOKENS (integer)",
  "cache_creation_1h_tokens": "PLACEHOLDER_CACHE_CREATION_1H_TOKENS (integer)",
  "input_cost": "PLACEHOLDER_INPUT_COST (number)",
  "output_cost": "PLACEHOLDER_OUTPUT_COST (number)",
  "cache_creation_cost": "PLACEHOLDER_CACHE_CREATION_COST (number)",
  "cache_read_cost": "PLACEHOLDER_CACHE_READ_COST (number)",
  "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
  "actual_cost": "PLACEHOLDER_ACTUAL_COST (number)",
  "long_context_billing_applied": "PLACEHOLDER_LONG_CONTEXT_BILLING_APPLIED (boolean)",
  "request_type": "PLACEHOLDER_REQUEST_TYPE (string)",
  "stream": "PLACEHOLDER_STREAM (boolean)",
  "duration_ms": "PLACEHOLDER_DURATION_MS (integer)",
  "first_token_ms": "PLACEHOLDER_FIRST_TOKEN_MS (integer)",
  "image_count": "PLACEHOLDER_IMAGE_COUNT (integer)",
  "image_size": "PLACEHOLDER_IMAGE_SIZE (string)",
  "image_input_size": "PLACEHOLDER_IMAGE_INPUT_SIZE (string)",
  "image_output_size": "PLACEHOLDER_IMAGE_OUTPUT_SIZE (string)",
  "image_input_tokens": "PLACEHOLDER_IMAGE_INPUT_TOKENS (integer)",
  "image_input_cost": "PLACEHOLDER_IMAGE_INPUT_COST (number)",
  "image_output_tokens": "PLACEHOLDER_IMAGE_OUTPUT_TOKENS (integer)",
  "image_output_cost": "PLACEHOLDER_IMAGE_OUTPUT_COST (number)",
  "image_size_breakdown": "PLACEHOLDER_IMAGE_SIZE_BREAKDOWN (object)",
  "media_type": "PLACEHOLDER_MEDIA_TYPE (string)",
  "ip_address": "PLACEHOLDER_IP_ADDRESS (string)",
  "session_id": "PLACEHOLDER_SESSION_ID (string)",
  "created_at": "PLACEHOLDER_CREATED_AT (string)",
  "user": "PLACEHOLDER_USER (object)",
  "api_key": "PLACEHOLDER_API_KEY (object)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#usagestats)UsageStats

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `total_requests` | `integer` | non |  |
| `total_input_tokens` | `integer` | non |  |
| `total_output_tokens` | `integer` | non |  |
| `total_cache_tokens` | `integer` | non |  |
| `total_cache_creation_tokens` | `integer` | non |  |
| `total_cache_read_tokens` | `integer` | non |  |
| `total_tokens` | `integer` | non |  |
| `total_cost` | `number` | non |  |
| `total_actual_cost` | `number` | non |  |
| `average_duration_ms` | `number` | non |  |
| `endpoints` | `array` · `items: EndpointStat` · [EndpointStat](https://ailoot.ai/docs/fr/cabinet/schemas-1/#endpointstat) | non |  |

Champs de l’objet

```json
{
  "total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
  "total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
  "total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
  "total_cache_tokens": "PLACEHOLDER_TOTAL_CACHE_TOKENS (integer)",
  "total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
  "total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
  "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
  "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
  "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
  "average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
  "endpoints": "PLACEHOLDER_ENDPOINTS (array)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#user)User

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `email` | `string` | non |  |
| `username` | `string` | non |  |
| `role` | `string` | non |  |
| `balance` | `number` | non |  |
| `frozen_balance` | `number` | non |  |
| `concurrency` | `integer` | non |  |
| `status` | `string` | non |  |
| `last_active_at` | `string` | non | ; peut être null |
| `created_at` | `string` | non |  |
| `updated_at` | `string` | non |  |
| `deleted_at` | `string` | non | ; peut être null |
| `balance_notify_enabled` | `boolean` | non |  |
| `balance_notify_threshold_type` | `string` | non |  |
| `balance_notify_threshold` | `number` | non | ; peut être null |
| `balance_notify_extra_emails` | `array` · `items: NotifyEmailEntry` · [NotifyEmailEntry](https://ailoot.ai/docs/fr/cabinet/schemas-1/#notifyemailentry) | non |  |
| `total_recharged` | `number` | non |  |
| `rpm_limit` | `integer` | non |  |
| `api_keys` | `array` · `items: APIKey` · [APIKey](https://ailoot.ai/docs/fr/cabinet/schemas-1/#apikey) | non |  |

Champs de l’objet

```json
{
  "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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#userannouncement)UserAnnouncement

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `title` | `string` | non |  |
| `content` | `string` | non |  |
| `notify_mode` | `string` | non |  |
| `starts_at` | `string` | non | ; peut être null |
| `ends_at` | `string` | non | ; peut être null |
| `read_at` | `string` | non | ; peut être null |
| `created_at` | `string` | non |  |
| `updated_at` | `string` | non |  |

Champs de l’objet

```json
{
  "id": "PLACEHOLDER_ID (integer)",
  "title": "PLACEHOLDER_TITLE (string)",
  "content": "PLACEHOLDER_CONTENT (string)",
  "notify_mode": "PLACEHOLDER_NOTIFY_MODE (string)",
  "starts_at": "PLACEHOLDER_STARTS_AT (string)",
  "ends_at": "PLACEHOLDER_ENDS_AT (string)",
  "read_at": "PLACEHOLDER_READ_AT (string)",
  "created_at": "PLACEHOLDER_CREATED_AT (string)",
  "updated_at": "PLACEHOLDER_UPDATED_AT (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#userdashboardstats)UserDashboardStats

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `total_api_keys` | `integer` | non |  |
| `active_api_keys` | `integer` | non |  |
| `total_requests` | `integer` | non |  |
| `total_input_tokens` | `integer` | non |  |
| `total_output_tokens` | `integer` | non |  |
| `total_cache_creation_tokens` | `integer` | non |  |
| `total_cache_read_tokens` | `integer` | non |  |
| `total_tokens` | `integer` | non |  |
| `total_cost` | `number` | non | ; Coût total au tarif standard |
| `total_actual_cost` | `number` | non | ; Total réellement débité |
| `today_requests` | `integer` | non |  |
| `today_input_tokens` | `integer` | non |  |
| `today_output_tokens` | `integer` | non |  |
| `today_cache_creation_tokens` | `integer` | non |  |
| `today_cache_read_tokens` | `integer` | non |  |
| `today_tokens` | `integer` | non |  |
| `today_cost` | `number` | non | ; Coût du jour au tarif standard |
| `today_actual_cost` | `number` | non | ; Montant réellement débité aujourd’hui |
| `average_duration_ms` | `number` | non |  |
| `rpm` | `integer` | non | ; Nombre moyen de requêtes par minute sur les 5 dernières minutes |
| `tpm` | `integer` | non | ; Nombre moyen de tokens par minute sur les 5 dernières minutes |

Champs de l’objet

```json
{
  "total_api_keys": "PLACEHOLDER_TOTAL_API_KEYS (integer)",
  "active_api_keys": "PLACEHOLDER_ACTIVE_API_KEYS (integer)",
  "total_requests": "PLACEHOLDER_TOTAL_REQUESTS (integer)",
  "total_input_tokens": "PLACEHOLDER_TOTAL_INPUT_TOKENS (integer)",
  "total_output_tokens": "PLACEHOLDER_TOTAL_OUTPUT_TOKENS (integer)",
  "total_cache_creation_tokens": "PLACEHOLDER_TOTAL_CACHE_CREATION_TOKENS (integer)",
  "total_cache_read_tokens": "PLACEHOLDER_TOTAL_CACHE_READ_TOKENS (integer)",
  "total_tokens": "PLACEHOLDER_TOTAL_TOKENS (integer)",
  "total_cost": "PLACEHOLDER_TOTAL_COST (number)",
  "total_actual_cost": "PLACEHOLDER_TOTAL_ACTUAL_COST (number)",
  "today_requests": "PLACEHOLDER_TODAY_REQUESTS (integer)",
  "today_input_tokens": "PLACEHOLDER_TODAY_INPUT_TOKENS (integer)",
  "today_output_tokens": "PLACEHOLDER_TODAY_OUTPUT_TOKENS (integer)",
  "today_cache_creation_tokens": "PLACEHOLDER_TODAY_CACHE_CREATION_TOKENS (integer)",
  "today_cache_read_tokens": "PLACEHOLDER_TODAY_CACHE_READ_TOKENS (integer)",
  "today_tokens": "PLACEHOLDER_TODAY_TOKENS (integer)",
  "today_cost": "PLACEHOLDER_TODAY_COST (number)",
  "today_actual_cost": "PLACEHOLDER_TODAY_ACTUAL_COST (number)",
  "average_duration_ms": "PLACEHOLDER_AVERAGE_DURATION_MS (number)",
  "rpm": "PLACEHOLDER_RPM (integer)",
  "tpm": "PLACEHOLDER_TPM (integer)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#userprofileresponse)UserProfileResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `id` | `integer` | non |  |
| `email` | `string` | non |  |
| `username` | `string` | non |  |
| `role` | `string` | non |  |
| `balance` | `number` | non |  |
| `frozen_balance` | `number` | non |  |
| `concurrency` | `integer` | non |  |
| `status` | `string` | non |  |
| `last_active_at` | `string` | non | ; peut être null |
| `created_at` | `string` | non |  |
| `updated_at` | `string` | non |  |
| `deleted_at` | `string` | non | ; peut être null |
| `balance_notify_enabled` | `boolean` | non |  |
| `balance_notify_threshold_type` | `string` | non |  |
| `balance_notify_threshold` | `number` | non | ; peut être null |
| `balance_notify_extra_emails` | `array` · `items: NotifyEmailEntry` · [NotifyEmailEntry](https://ailoot.ai/docs/fr/cabinet/schemas-1/#notifyemailentry) | non |  |
| `total_recharged` | `number` | non |  |
| `rpm_limit` | `integer` | non |  |
| `api_keys` | `array` · `items: APIKey` · [APIKey](https://ailoot.ai/docs/fr/cabinet/schemas-1/#apikey) | non |  |
| `avatar_url` | `string` | non |  |
| `email_bound` | `boolean` | non |  |

Champs de l’objet

```json
{
  "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)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#validateinvitationcoderequest)ValidateInvitationCodeRequest

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

Champs de l’objet

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#validateinvitationcoderesponse)ValidateInvitationCodeResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `valid` | `boolean` | non |  |
| `error_code` | `string` | non |  |

Champs de l’objet

```json
{
  "valid": "PLACEHOLDER_VALID (boolean)",
  "error_code": "PLACEHOLDER_ERROR_CODE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#validatepromocoderequest)ValidatePromoCodeRequest

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

Champs de l’objet

```json
{
  "code": "PLACEHOLDER_CODE (string)"
}
```

## [](https://ailoot.ai/docs/fr/cabinet/schemas-1/#validatepromocoderesponse)ValidatePromoCodeResponse

| Le champ | Type | Obligatoire | Validation / description |
| --- | --- | --- | --- |
| `valid` | `boolean` | non |  |
| `bonus_amount` | `number` | non |  |
| `error_code` | `string` | non |  |
| `message` | `string` | non |  |

Champs de l’objet

```json
{
  "valid": "PLACEHOLDER_VALID (boolean)",
  "bonus_amount": "PLACEHOLDER_BONUS_AMOUNT (number)",
  "error_code": "PLACEHOLDER_ERROR_CODE (string)",
  "message": "PLACEHOLDER_MESSAGE (string)"
}
```

## NotifyEmailEntry

```json
{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "disabled": {
      "type": "boolean"
    },
    "verified": {
      "type": "boolean"
    }
  }
}
```

## EndpointStat

```json
{
  "type": "object",
  "properties": {
    "endpoint": {
      "type": "string"
    },
    "requests": {
      "type": "integer"
    },
    "total_tokens": {
      "type": "integer"
    },
    "cost": {
      "type": "number"
    },
    "actual_cost": {
      "type": "number"
    }
  }
}
```

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.
