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

[API bảng điều khiển](https://ailoot.ai/docs/vi/) 

# Lược đồ dữ liệu

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

Các trường và kiểu dữ liệu của đối tượng API trang quản lý tài khoản.

Các trường của đối tượng API trang quản lý tài khoản và kiểu dữ liệu tương ứng. omitempty nghĩa là trường có thể không xuất hiện trong phản hồi; không có nghĩa là được phép gửi null. Các chuỗi PLACEHOLDER biểu thị kiểu dữ liệu, không phải phản hồi thật.

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `user_id` | `integer` | không |  |
| `key` | `string` | không |  |
| `name` | `string` | không |  |
| `status` | `string` | không |  |
| `ip_whitelist` | `array` · `items: string` | không |  |
| `ip_blacklist` | `array` · `items: string` | không |  |
| `last_used_at` | `string` | không | ; có thể là null |
| `last_used_ip` | `string` | không | ; có thể là null |
| `quota` | `number` | không | ; Giới hạn chi tiêu của khóa bằng USD; 0 — không giới hạn |
| `quota_used` | `number` | không | ; Phần giới hạn của khóa đã sử dụng, USD |
| `expires_at` | `string` | không | ; Thời hạn hiệu lực; null — không thời hạn; có thể là null |
| `created_at` | `string` | không |  |
| `updated_at` | `string` | không |  |
| `current_concurrency` | `integer` | không |  |
| `rate_limit_5h` | `number` | không |  |
| `rate_limit_1d` | `number` | không |  |
| `rate_limit_7d` | `number` | không |  |
| `usage_5h` | `number` | không |  |
| `usage_1d` | `number` | không |  |
| `usage_7d` | `number` | không |  |
| `window_5h_start` | `string` | không | ; có thể là null |
| `window_1d_start` | `string` | không | ; có thể là null |
| `window_7d_start` | `string` | không | ; có thể là null |
| `reset_5h_at` | `string` | không | ; có thể là null |
| `reset_1d_at` | `string` | không | ; có thể là null |
| `reset_7d_at` | `string` | không | ; có thể là null |
| `user` | object · [User](https://ailoot.ai/docs/vi/cabinet/schemas-1/#user) | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#apikeydailyusagepoint)APIKeyDailyUsagePoint

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `date` | `string` | không |  |
| `requests` | `integer` | không |  |
| `input_tokens` | `integer` | không |  |
| `output_tokens` | `integer` | không |  |
| `cache_read_tokens` | `integer` | không |  |
| `cache_write_tokens` | `integer` | không |  |
| `total_tokens` | `integer` | không |  |
| `cost` | `number` | không | ; Chi phí theo giá tiêu chuẩn |
| `actual_cost` | `number` | không | ; Số tiền trừ thực tế |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#authresponse)AuthResponse

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `access_token` | `string` | không |  |
| `refresh_token` | `string` | không | ; Token làm mới phiên |
| `expires_in` | `integer` | không | ; Thời hạn hiệu lực của token truy cập tính bằng giây |
| `token_type` | `string` | không |  |
| `user` | object · [User](https://ailoot.ai/docs/vi/cabinet/schemas-1/#user) | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#batchapikeysusagerequest)BatchAPIKeysUsageRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `api_key_ids` | `array` · `items: integer (int64)` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `api_key_id` | `integer` | không |  |
| `today_actual_cost` | `number` | không |  |
| `total_actual_cost` | `number` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#changepasswordrequest)ChangePasswordRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `old_password` | `string` | có | required |
| `new_password` | `string` | có | required,min=6 |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `name` | `string` | có | required |
| `custom_key` | `string` | không | ; Giá trị khóa tự chọn, không bắt buộc; có thể là null |
| `ip_whitelist` | `array` · `items: string` | không | ; Danh sách IP được phép |
| `ip_blacklist` | `array` · `items: string` | không | ; Danh sách IP bị chặn |
| `quota` | `number` | không | ; Giới hạn chi tiêu của khóa bằng USD; có thể là null |
| `expires_in_days` | `integer` | không | ; Thời hạn hiệu lực tính bằng ngày; có thể là null |
| `rate_limit_5h` | `number` | không | ; có thể là null |
| `rate_limit_1d` | `number` | không | ; có thể là null |
| `rate_limit_7d` | `number` | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#forgotpasswordrequest)ForgotPasswordRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `email` | `string` | có | required,email |
| `turnstile_token` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `message` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `temp_token` | `string` | có | required |
| `totp_code` | `string` | có | required,len=6 |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `email` | `string` | có | required,email |
| `password` | `string` | có | required |
| `turnstile_token` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `refresh_token` | `string` | không | ; Tùy chọn: thu hồi token làm mới được chỉ định |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `message` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `turnstile_token` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `name` | `string` | không |  |
| `created_at` | `string` | không |  |
| `last_used_at` | `string` | không | ; có thể là null |
| `backup` | `boolean` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#passkeyfinishrequest)PasskeyFinishRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `session_token` | `string` | có | required |
| `name` | `string` | không |  |
| `credential` | `object` · `WebAuthn PublicKeyCredential JSON` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `session_token` | `string` | không |  |
| `options` | `any` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `code` | `string` | không |  |
| `type` | `string` | không |  |
| `value` | `number` | không |  |
| `status` | `string` | không |  |
| `used_by` | `integer` | không | ; có thể là null |
| `used_at` | `string` | không | ; có thể là null |
| `created_at` | `string` | không |  |
| `expires_at` | `string` | không | ; có thể là null |
| `validity_days` | `integer` | không |  |
| `notes` | `string` | không | ; có thể là null |
| `user` | object · [User](https://ailoot.ai/docs/vi/cabinet/schemas-1/#user) | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#redeemrequest)RedeemRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `code` | `string` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `refresh_token` | `string` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `access_token` | `string` | không |  |
| `refresh_token` | `string` | không |  |
| `expires_in` | `integer` | không | ; Thời hạn hiệu lực của token truy cập tính bằng giây |
| `token_type` | `string` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#registerrequest)RegisterRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `email` | `string` | có | required,email |
| `password` | `string` | có | required,min=6 |
| `verify_code` | `string` | không |  |
| `turnstile_token` | `string` | không |  |
| `promo_code` | `string` | không | ; Mã khuyến mại khi đăng ký |
| `invitation_code` | `string` | không | ; Mã lời mời |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#resetpasswordrequest)ResetPasswordRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `email` | `string` | có | required,email |
| `token` | `string` | có | required |
| `new_password` | `string` | có | required,min=6 |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `message` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `message` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `email` | `string` | có | required,email |
| `turnstile_token` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `message` | `string` | không |  |
| `countdown` | `integer` | không | ; Thời gian chờ tính bằng giây |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `requires_2fa` | `boolean` | không |  |
| `temp_token` | `string` | không |  |
| `user_email_masked` | `string` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#totpstatusresponse)TotpStatusResponse

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `enabled` | `boolean` | không |  |
| `enabled_at` | `integer` | không | ; Dấu thời gian Unix; có thể là null |
| `feature_enabled` | `boolean` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `name` | `string` | không |  |
| `status` | `string` | không | omitempty,oneof=active inactive |
| `ip_whitelist` | `array` · `items: string` | không | ; IP được phép: null không thay đổi danh sách, mảng rỗng xóa toàn bộ danh sách; có thể là null |
| `ip_blacklist` | `array` · `items: string` | không | ; IP bị chặn: null không thay đổi danh sách, mảng rỗng xóa toàn bộ danh sách; có thể là null |
| `quota` | `number` | không | ; Giới hạn chi tiêu của khóa bằng USD; 0 — không giới hạn; có thể là null |
| `expires_at` | `string` | không | ; Thời điểm hết hiệu lực theo định dạng ISO 8601; có thể là null |
| `reset_quota` | `boolean` | không | ; Đặt lại phần giới hạn chi tiêu đã sử dụng; có thể là null |
| `rate_limit_5h` | `number` | không | ; có thể là null |
| `rate_limit_1d` | `number` | không | ; có thể là null |
| `rate_limit_7d` | `number` | không | ; có thể là null |
| `reset_rate_limit_usage` | `boolean` | không | ; Đặt lại mức sử dụng của các giới hạn theo khoảng thời gian; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#updateprofilerequest)UpdateProfileRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `username` | `string` | không | ; có thể là null |
| `avatar_url` | `string` | không | ; có thể là null |
| `balance_notify_enabled` | `boolean` | không | ; có thể là null |
| `balance_notify_threshold` | `number` | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#usagelog)UsageLog

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `user_id` | `integer` | không |  |
| `api_key_id` | `integer` | không |  |
| `request_id` | `string` | không |  |
| `model` | `string` | không |  |
| `service_tier` | `string` | không | ; có thể là null |
| `reasoning_effort` | `string` | không | ; có thể là null |
| `input_tokens` | `integer` | không |  |
| `output_tokens` | `integer` | không |  |
| `cache_creation_tokens` | `integer` | không |  |
| `cache_read_tokens` | `integer` | không |  |
| `cache_creation_5m_tokens` | `integer` | không |  |
| `cache_creation_1h_tokens` | `integer` | không |  |
| `input_cost` | `number` | không |  |
| `output_cost` | `number` | không |  |
| `cache_creation_cost` | `number` | không |  |
| `cache_read_cost` | `number` | không |  |
| `total_cost` | `number` | không |  |
| `actual_cost` | `number` | không |  |
| `long_context_billing_applied` | `boolean` | không |  |
| `request_type` | `string` | không |  |
| `stream` | `boolean` | không |  |
| `duration_ms` | `integer` | không | ; có thể là null |
| `first_token_ms` | `integer` | không | ; có thể là null |
| `image_count` | `integer` | không |  |
| `image_size` | `string` | không | ; có thể là null |
| `image_input_size` | `string` | không | ; có thể là null |
| `image_output_size` | `string` | không | ; có thể là null |
| `image_input_tokens` | `integer` | không |  |
| `image_input_cost` | `number` | không |  |
| `image_output_tokens` | `integer` | không |  |
| `image_output_cost` | `number` | không |  |
| `image_size_breakdown` | `object` · `additionalProperties: integer` | không |  |
| `media_type` | `string` | không | ; có thể là null |
| `ip_address` | `string` | không | ; có thể là null |
| `session_id` | `string` | không | ; có thể là null |
| `created_at` | `string` | không |  |
| `user` | object · [User](https://ailoot.ai/docs/vi/cabinet/schemas-1/#user) | không | ; có thể là null |
| `api_key` | object · [APIKey](https://ailoot.ai/docs/vi/cabinet/schemas-1/#apikey) | không | ; có thể là null |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#usagestats)UsageStats

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `total_requests` | `integer` | không |  |
| `total_input_tokens` | `integer` | không |  |
| `total_output_tokens` | `integer` | không |  |
| `total_cache_tokens` | `integer` | không |  |
| `total_cache_creation_tokens` | `integer` | không |  |
| `total_cache_read_tokens` | `integer` | không |  |
| `total_tokens` | `integer` | không |  |
| `total_cost` | `number` | không |  |
| `total_actual_cost` | `number` | không |  |
| `average_duration_ms` | `number` | không |  |
| `endpoints` | `array` · `items: EndpointStat` · [EndpointStat](https://ailoot.ai/docs/vi/cabinet/schemas-1/#endpointstat) | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#user)User

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `email` | `string` | không |  |
| `username` | `string` | không |  |
| `role` | `string` | không |  |
| `balance` | `number` | không |  |
| `frozen_balance` | `number` | không |  |
| `concurrency` | `integer` | không |  |
| `status` | `string` | không |  |
| `last_active_at` | `string` | không | ; có thể là null |
| `created_at` | `string` | không |  |
| `updated_at` | `string` | không |  |
| `deleted_at` | `string` | không | ; có thể là null |
| `balance_notify_enabled` | `boolean` | không |  |
| `balance_notify_threshold_type` | `string` | không |  |
| `balance_notify_threshold` | `number` | không | ; có thể là null |
| `balance_notify_extra_emails` | `array` · `items: NotifyEmailEntry` · [NotifyEmailEntry](https://ailoot.ai/docs/vi/cabinet/schemas-1/#notifyemailentry) | không |  |
| `total_recharged` | `number` | không |  |
| `rpm_limit` | `integer` | không |  |
| `api_keys` | `array` · `items: APIKey` · [APIKey](https://ailoot.ai/docs/vi/cabinet/schemas-1/#apikey) | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#userannouncement)UserAnnouncement

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `title` | `string` | không |  |
| `content` | `string` | không |  |
| `notify_mode` | `string` | không |  |
| `starts_at` | `string` | không | ; có thể là null |
| `ends_at` | `string` | không | ; có thể là null |
| `read_at` | `string` | không | ; có thể là null |
| `created_at` | `string` | không |  |
| `updated_at` | `string` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#userdashboardstats)UserDashboardStats

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `total_api_keys` | `integer` | không |  |
| `active_api_keys` | `integer` | không |  |
| `total_requests` | `integer` | không |  |
| `total_input_tokens` | `integer` | không |  |
| `total_output_tokens` | `integer` | không |  |
| `total_cache_creation_tokens` | `integer` | không |  |
| `total_cache_read_tokens` | `integer` | không |  |
| `total_tokens` | `integer` | không |  |
| `total_cost` | `number` | không | ; Tổng chi phí theo giá tiêu chuẩn |
| `total_actual_cost` | `number` | không | ; Tổng số tiền trừ thực tế |
| `today_requests` | `integer` | không |  |
| `today_input_tokens` | `integer` | không |  |
| `today_output_tokens` | `integer` | không |  |
| `today_cache_creation_tokens` | `integer` | không |  |
| `today_cache_read_tokens` | `integer` | không |  |
| `today_tokens` | `integer` | không |  |
| `today_cost` | `number` | không | ; Chi phí hôm nay theo giá tiêu chuẩn |
| `today_actual_cost` | `number` | không | ; Số tiền trừ thực tế hôm nay |
| `average_duration_ms` | `number` | không |  |
| `rpm` | `integer` | không | ; Số yêu cầu trung bình mỗi phút trong 5 phút gần nhất |
| `tpm` | `integer` | không | ; Số token trung bình mỗi phút trong 5 phút gần nhất |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#userprofileresponse)UserProfileResponse

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `id` | `integer` | không |  |
| `email` | `string` | không |  |
| `username` | `string` | không |  |
| `role` | `string` | không |  |
| `balance` | `number` | không |  |
| `frozen_balance` | `number` | không |  |
| `concurrency` | `integer` | không |  |
| `status` | `string` | không |  |
| `last_active_at` | `string` | không | ; có thể là null |
| `created_at` | `string` | không |  |
| `updated_at` | `string` | không |  |
| `deleted_at` | `string` | không | ; có thể là null |
| `balance_notify_enabled` | `boolean` | không |  |
| `balance_notify_threshold_type` | `string` | không |  |
| `balance_notify_threshold` | `number` | không | ; có thể là null |
| `balance_notify_extra_emails` | `array` · `items: NotifyEmailEntry` · [NotifyEmailEntry](https://ailoot.ai/docs/vi/cabinet/schemas-1/#notifyemailentry) | không |  |
| `total_recharged` | `number` | không |  |
| `rpm_limit` | `integer` | không |  |
| `api_keys` | `array` · `items: APIKey` · [APIKey](https://ailoot.ai/docs/vi/cabinet/schemas-1/#apikey) | không |  |
| `avatar_url` | `string` | không |  |
| `email_bound` | `boolean` | không |  |

Các trường của đối tượng

```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/vi/cabinet/schemas-1/#validateinvitationcoderequest)ValidateInvitationCodeRequest

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `code` | `string` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `valid` | `boolean` | không |  |
| `error_code` | `string` | không |  |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `code` | `string` | có | required |

Các trường của đối tượng

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

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

| Trường | Kiểu | Bắt buộc | Kiểm tra / mô tả |
| --- | --- | --- | --- |
| `valid` | `boolean` | không |  |
| `bonus_amount` | `number` | không |  |
| `error_code` | `string` | không |  |
| `message` | `string` | không |  |

Các trường của đối tượng

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

Còn câu hỏi? Hãy gửi Request ID và mô tả — chúng tôi sẽ giúp tìm hiểu.[Liên hệ hỗ trợ](mailto:support@ailoot.ai)

## Ailoot · Công ty và danh mục dự án của công ty





Ailoot dựa trên kinh nghiệm vận hành tích lũy, cơ sở khách hàng lớn, dịch vụ ổn định và việc kiểm soát KPI liên tục.





Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.





Ailoot áp dụng kinh nghiệm vận hành này để cung cấp quyền truy cập API vào các tính năng AI trong sản phẩm của khách hàng, tác tử, ứng dụng và quy trình tự động hóa.
