Source: https://ailoot.ai/docs/vi/cabinet/profile/
Canonical: https://ailoot.ai/docs/vi/cabinet/profile/
Language: vi

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

# Hồ sơ và bảo mật

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

Phương thức, trường yêu cầu và phản hồi.

Phần này có 6 phương thức. Mở phương thức để xem điều kiện truy cập, trường yêu cầu và phản hồi.

| Phương thức và đường dẫn | Mô tả | Quyền truy cập |
| --- | --- | --- |
| `PUT /api/v1/user` | Thay đổi hồ sơ | Token trang quản lý tài khoản |
| `GET /api/v1/user/passkeys` | Danh sách passkey | Token trang quản lý tài khoản |
| `PUT /api/v1/user/password` | Đổi mật khẩu | Token trang quản lý tài khoản |
| `GET /api/v1/user/profile` | Hồ sơ, số dư và các liên kết | Token trang quản lý tài khoản |
| `GET /api/v1/user/totp/status` | Trạng thái 2FA (TOTP) | Token trang quản lý tài khoản |
| `GET /api/v1/user/totp/verification-method` | Phương thức kiểm tra TOTP | Token trang quản lý tài khoản |

**PUT /api/v1/user** — Thay đổi hồ sơ

Quyền truy cập: Token trang quản lý tài khoản

PUT`/api/v1/user`

## Các trường JSON / biểu mẫu

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

Mẫu nội dung yêu cầu

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

PLACEHOLDER biểu thị dữ liệu bạn nhập và kiểu dữ liệu đó. Thay các giá trị và chỉ giữ những trường tùy chọn cần thiết; không gửi chuỗi đánh dấu thay cho số, boolean, đối tượng hoặc mảng.

Lược đồ yêu cầu: `UpdateProfileRequest`

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ dữ liệu phản hồi: `User`, `UserProfileResponse`. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.

Lược đồ phản hồi, các giá trị chỉ để minh họa

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: Thao tác thay đổi trạng thái hoặc tiếp tục quy trình ủy quyền dùng một lần; ví dụ mô tả hợp đồng và không được thực thi.

Đặc điểm: Giới hạn chi tiêu của khóa (quota, quota\_used) nằm trong phản hồi về khóa, không nằm trong hồ sơ. frozen\_balance là số tiền đã giữ trước, không thể coi là số dư khả dụng.

Phương thức thay đổi dữ liệu. Chỉ an toàn khi gửi lại nếu phương thức có ghi Idempotency-Key. Nếu mất phản hồi, trước tiên hãy kiểm tra kết quả (chẳng hạn danh sách khóa), rồi mới quyết định có gửi lại yêu cầu hay không.

**GET /api/v1/user/passkeys** — Danh sách passkey

Quyền truy cập: Token trang quản lý tài khoản

GET`/api/v1/user/passkeys`

Đọc; lấy ID từ phản hồi trước đó của bạn

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/passkeys" \
  -H "Authorization: Bearer $TOKEN"
```

Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ dữ liệu phản hồi: `PasskeyCredentialSummary`. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.

Lược đồ phản hồi, các giá trị chỉ để minh họa

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

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: credential được lấy từ navigator.credentials; session\_token từ begin. Nội dung Finish \<=65536 byte; đăng ký và xóa cần mật khẩu.

**PUT /api/v1/user/password** — Đổi mật khẩu

Quyền truy cập: Token trang quản lý tài khoản

PUT`/api/v1/user/password`

## Các trường JSON / biểu mẫu

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

Mẫu nội dung yêu cầu

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

PLACEHOLDER biểu thị dữ liệu bạn nhập và kiểu dữ liệu đó. Thay các giá trị và chỉ giữ những trường tùy chọn cần thiết; không gửi chuỗi đánh dấu thay cho số, boolean, đối tượng hoặc mảng.

Lược đồ yêu cầu: `ChangePasswordRequest`

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ phản hồi, các giá trị chỉ để minh họa

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "VALUE_FROM_RESPONSE"
  }
}
```

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: Thao tác thay đổi trạng thái hoặc tiếp tục quy trình ủy quyền dùng một lần; ví dụ mô tả hợp đồng và không được thực thi.

Phương thức thay đổi dữ liệu. Chỉ an toàn khi gửi lại nếu phương thức có ghi Idempotency-Key. Nếu mất phản hồi, trước tiên hãy kiểm tra kết quả (chẳng hạn danh sách khóa), rồi mới quyết định có gửi lại yêu cầu hay không.

**GET /api/v1/user/profile** — Hồ sơ, số dư và các liên kết

Quyền truy cập: Token trang quản lý tài khoản

GET`/api/v1/user/profile`

Đọc; lấy ID từ phản hồi trước đó của bạn

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/profile" \
  -H "Authorization: Bearer $TOKEN"
```

Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ dữ liệu phản hồi: `User`, `UserProfileResponse`. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.

Lược đồ phản hồi, các giá trị chỉ để minh họa

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "email": "PLACEHOLDER_EMAIL (string)",
    "username": "PLACEHOLDER_USERNAME (string)",
    "role": "PLACEHOLDER_ROLE (string)",
    "balance": "PLACEHOLDER_BALANCE (number)",
    "frozen_balance": "PLACEHOLDER_FROZEN_BALANCE (number)",
    "concurrency": "PLACEHOLDER_CONCURRENCY (integer)",
    "status": "PLACEHOLDER_STATUS (string)",
    "last_active_at": "PLACEHOLDER_LAST_ACTIVE_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "deleted_at": "PLACEHOLDER_DELETED_AT (string)",
    "balance_notify_enabled": "PLACEHOLDER_BALANCE_NOTIFY_ENABLED (boolean)",
    "balance_notify_threshold_type": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD_TYPE (string)",
    "balance_notify_threshold": "PLACEHOLDER_BALANCE_NOTIFY_THRESHOLD (number)",
    "balance_notify_extra_emails": "PLACEHOLDER_BALANCE_NOTIFY_EXTRA_EMAILS (array)",
    "total_recharged": "PLACEHOLDER_TOTAL_RECHARGED (number)",
    "rpm_limit": "PLACEHOLDER_RPM_LIMIT (integer)",
    "api_keys": "PLACEHOLDER_API_KEYS (array)",
    "avatar_url": "PLACEHOLDER_AVATAR_URL (string)",
    "email_bound": "PLACEHOLDER_EMAIL_BOUND (boolean)"
  }
}
```

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: Giới hạn chi tiêu của khóa (quota, quota\_used) nằm trong phản hồi về khóa, không nằm trong hồ sơ. frozen\_balance là số tiền đã giữ trước, không thể coi là số dư khả dụng.

**GET /api/v1/user/totp/status** — Trạng thái 2FA (TOTP)

Quyền truy cập: Token trang quản lý tài khoản

GET`/api/v1/user/totp/status`

Đọc; lấy ID từ phản hồi trước đó của bạn

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/status" \
  -H "Authorization: Bearer $TOKEN"
```

Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ dữ liệu phản hồi: `TotpStatusResponse`. Các trường và kiểu dữ liệu nằm trên trang “Lược đồ dữ liệu”.

Lược đồ phản hồi, các giá trị chỉ để minh họa

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "enabled": "PLACEHOLDER_ENABLED (boolean)",
    "enabled_at": "PLACEHOLDER_ENABLED_AT (integer)",
    "feature_enabled": "PLACEHOLDER_FEATURE_ENABLED (boolean)"
  }
}
```

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: secret và setup\_token là bí mật; việc kiểm tra phụ thuộc vào cài đặt TOTP và người dùng.

**GET /api/v1/user/totp/verification-method** — Phương thức kiểm tra TOTP

Quyền truy cập: Token trang quản lý tài khoản

GET`/api/v1/user/totp/verification-method`

Đọc; lấy ID từ phản hồi trước đó của bạn

```bash
curl --fail-with-body "https://ailoot.ai/api/v1/user/totp/verification-method" \
  -H "Authorization: Bearer $TOKEN"
```

Không cần nội dung yêu cầu. Gửi các tham số nêu trên trong URL.

## Phản hồi

Phản hồi JSON chứa code, message và data. Nội dung data được mô tả trong các lược đồ bên dưới.

Lược đồ phản hồi, các giá trị chỉ để minh họa

```json
{
  "code": 0,
  "message": "success",
  "data": {
    "method": "email"
  }
}
```

Đặc điểm: Mọi dữ liệu cá nhân và đối tượng đều được giới hạn theo chủ thể JWT.

Đặc điểm: secret và setup\_token là bí mật; việc kiểm tra phụ thuộc vào cài đặt TOTP và người dùng.

## TotpVerificationMethod

```json
{
  "type": "object",
  "required": [
    "method"
  ],
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "email",
        "password"
      ]
    }
  }
}
```

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.
