---
title: "Tài liệu đầy đủ về Adapty Developer CLI"
description: "Tài liệu đầy đủ về tất cả các lệnh của Adapty Developer CLI."
---

:::link
Đang dùng trợ lý AI? Có sẵn [Adapty CLI skill](https://github.com/adaptyteam/adapty-cli/tree/main/skills/adapty-cli) để giúp các LLM làm việc với CLI.
:::

Bài viết này liệt kê tất cả các lệnh Adapty CLI cùng với các đối số, cờ và giá trị được chấp nhận.

:::link
Để thiết lập xác thực và quản lý token, xem [Xác thực](developer-cli-authentication).
:::

## Cờ toàn cục \{#global-flags\}

Các cờ này có thể dùng với tất cả các lệnh.

| Cờ | Mô tả |
|---|---|
| `--json` | Xuất dưới dạng JSON thay vì văn bản định dạng |
| `--help` | Hiển thị trợ giúp lệnh |

Tất cả lệnh `list` cũng chấp nhận cờ phân trang:

| Cờ | Mặc định | Mô tả |
|---|---|---|
| `--page` | `1` | Số trang |
| `--page-size` | `20` | Số mục mỗi trang (tối đa: 100) |

## Apps \{#apps\}

Quản lý các ứng dụng trong tài khoản Adapty của bạn. Để cấu hình qua Dashboard, xem [App settings](general).

### adapty apps list \{#adapty-apps-list\}

Liệt kê tất cả ứng dụng trong tài khoản Adapty của bạn.

```bash
adapty apps list
```

Chấp nhận [cờ phân trang](#global-flags).

### adapty apps get \{#adapty-apps-get\}

Lấy thông tin chi tiết của một ứng dụng cụ thể.

```bash
adapty apps get <app-id>
```

| Đối số | Mô tả |
|---|---|
| `app-id` | App ID (UUID) |

### adapty apps create \{#adapty-apps-create\}

Tạo ứng dụng mới.

```bash
adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--title` | Có | Tên ứng dụng |
| `--platform` | Có | Nền tảng: `ios` hoặc `android`. Lặp lại để dùng cả hai: `--platform ios --platform android` |
| `--apple-bundle-id` | Bắt buộc khi dùng `--platform ios` | Apple bundle ID |
| `--google-bundle-id` | Bắt buộc khi dùng `--platform android` | Google bundle ID |

### adapty apps update \{#adapty-apps-update\}

Cập nhật ứng dụng hiện có.

```bash
adapty apps update <app-id> --title "New Name"
```

| Đối số | Mô tả |
|---|---|
| `app-id` | App ID (UUID) |

| Cờ | Mô tả |
|---|---|
| `--title` | Tên ứng dụng mới |
| `--apple-bundle-id` | Apple bundle ID mới |
| `--google-bundle-id` | Google bundle ID mới |

Cần có ít nhất một cờ. `--platform` không thể thay đổi sau khi tạo.

## Mức độ truy cập \{#access-levels\}

### adapty access-levels list \{#adapty-access-levels-list\}

Liệt kê tất cả [mức độ truy cập](access-level) của một ứng dụng.

```bash
adapty access-levels list --app <app-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Chấp nhận [cờ phân trang](#global-flags).

### adapty access-levels get \{#adapty-access-levels-get\}

Lấy thông tin chi tiết của một [mức độ truy cập](access-level) cụ thể.

```bash
adapty access-levels get --app <app-id> <access-level-id>
```

| Đối số | Mô tả |
|---|---|
| `access-level-id` | Access level ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

### adapty access-levels create \{#adapty-access-levels-create\}

Tạo [mức độ truy cập](access-level) mới.

```bash
adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--sdk-id` | Có | Định danh dùng trong code ứng dụng để kiểm tra quyền truy cập (ví dụ: `"pro"` hoặc `"premium"`) |
| `--title` | Có | Nhãn hiển thị trên Adapty dashboard |

### adapty access-levels update \{#adapty-access-levels-update\}

Cập nhật [mức độ truy cập](access-level) hiện có.

```bash
adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
```

| Đối số | Mô tả |
|---|---|
| `access-level-id` | Access level ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Nhãn hiển thị mới |

`--sdk-id` không thể thay đổi sau khi tạo.

## Sản phẩm \{#products\}

### adapty products list \{#adapty-products-list\}

Liệt kê tất cả [sản phẩm](product) của một ứng dụng.

```bash
adapty products list --app <app-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Chấp nhận [cờ phân trang](#global-flags).

### adapty products get \{#adapty-products-get\}

Lấy thông tin chi tiết của một [sản phẩm](product) cụ thể.

```bash
adapty products get --app <app-id> <product-id>
```

| Đối số | Mô tả |
|---|---|
| `product-id` | Product ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

### adapty products create \{#adapty-products-create\}

Tạo [sản phẩm](product) mới.

:::important
Các ID sản phẩm trong cửa hàng (`--ios-product-id`, `--android-product-id`, `--android-base-plan-id`) không thể thay đổi sau khi tạo. Để dùng ID sản phẩm khác trong cửa hàng, hãy tạo sản phẩm mới.
:::

```bash
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Tên sản phẩm |
| `--access-level-id` | Có | ID [mức độ truy cập](access-level) (UUID) mà sản phẩm này mở khóa |
| `--period` | Có | Chu kỳ gói đăng ký: `weekly`, `monthly`, `2_months`, `3_months`, `6_months`, `yearly`, `lifetime` |
| `--ios-product-id` | Cần ít nhất một nền tảng | Product ID từ App Store Connect |
| `--android-product-id` | Cần ít nhất một nền tảng | Product ID từ Google Play Console |
| `--android-base-plan-id` | Bắt buộc khi dùng `--android-product-id` trừ khi `--period lifetime` | Base plan ID từ Google Play Console |

### adapty products update \{#adapty-products-update\}

Cập nhật [sản phẩm](product) hiện có.

Các ID sản phẩm trong cửa hàng (`--ios-product-id`, `--android-product-id`) không thể thay đổi sau khi tạo và không có trong lệnh này. Để dùng ID sản phẩm khác trong cửa hàng, hãy tạo sản phẩm mới.

```bash
adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
```

| Đối số | Mô tả |
|---|---|
| `product-id` | Product ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Không | Tên sản phẩm |
| `--access-level-id` | Không | ID [mức độ truy cập](access-level) (UUID) mà sản phẩm này mở khóa |

## Paywall \{#paywalls\}

### adapty paywalls list \{#adapty-paywalls-list\}

Liệt kê tất cả [paywall](paywalls) của một ứng dụng.

```bash
adapty paywalls list --app <app-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Chấp nhận [cờ phân trang](#global-flags).

### adapty paywalls get \{#adapty-paywalls-get\}

Lấy thông tin chi tiết của một [paywall](paywalls) cụ thể.

```bash
adapty paywalls get --app <app-id> <paywall-id>
```

| Đối số | Mô tả |
|---|---|
| `paywall-id` | Paywall ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

### adapty paywalls create \{#adapty-paywalls-create\}

Tạo [paywall](paywalls) mới.

```bash
adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Tên paywall |
| `--product-id` | Có | ID [sản phẩm](product) (UUID). Lặp lại cho nhiều sản phẩm: `--product-id <id1> --product-id <id2>` |

### adapty paywalls update \{#adapty-paywalls-update\}

Thay thế toàn bộ các trường của một [paywall](paywalls) hiện có.

:::important
Khi paywall đã được liên kết với một placement, không thể thay đổi sản phẩm của nó. Để dùng sản phẩm khác trong paywall đang hoạt động, hãy tạo paywall mới và cập nhật placement để trỏ đến paywall đó.
:::

```bash
adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>
```

Lệnh này thay thế toàn bộ các trường của paywall, bao gồm cả danh sách sản phẩm đầy đủ.

| Đối số | Mô tả |
|---|---|
| `paywall-id` | Paywall ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Tên paywall |
| `--product-id` | Có | ID [sản phẩm](product) (UUID). Lặp lại cho nhiều sản phẩm: `--product-id <id1> --product-id <id2>` |

### adapty paywalls placements \{#adapty-paywalls-placements\}

Liệt kê tất cả [placement](placements) đang dùng một [paywall](paywalls) nhất định.

```bash
adapty paywalls placements --app <app-id> <paywall-id>
```

| Đối số | Mô tả |
|---|---|
| `paywall-id` | Paywall ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Dùng lệnh này trước khi thay đổi paywall để xem các placement nào sẽ bị ảnh hưởng.

## Placement \{#placements\}

### adapty placements list \{#adapty-placements-list\}

Liệt kê tất cả [placement](placements) của một ứng dụng.

```bash
adapty placements list --app <app-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Chấp nhận [cờ phân trang](#global-flags).

### adapty placements get \{#adapty-placements-get\}

Lấy thông tin chi tiết của một [placement](placements) cụ thể.

```bash
adapty placements get --app <app-id> <placement-id>
```

| Đối số | Mô tả |
|---|---|
| `placement-id` | Placement ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Kết quả trả về chứa mảng `audiences`. Mỗi phần tử có dạng `{segment_ids, paywall_id, priority}`. Đối tượng mặc định có `segment_ids: []` và giá trị ưu tiên cao nhất (được đánh giá cuối cùng). Đầu ra dạng văn bản cũng hiển thị `Paywall ID` ở cấp cao nhất, lấy từ đối tượng mặc định để tiện tham khảo. `--json` trả về dữ liệu API thô không thay đổi.

### adapty placements create \{#adapty-placements-create\}

Tạo [placement](placements) mới.

```bash
adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Tên placement |
| `--developer-id` | Có | Định danh chuỗi dùng trong code ứng dụng để yêu cầu [placement](placements) này |
| `--audiences` | Một trong hai | Mảng JSON gồm các phần tử `{segment_ids, paywall_id, priority}`. Xem [Cấu trúc Audiences](#audiences-shape) |
| `--paywall-id` | Một trong hai | **Không còn dùng.** ID [paywall](paywalls) (UUID). Được phía client chuyển đổi thành một đối tượng mặc định |

Truyền đúng một trong `--audiences` hoặc `--paywall-id`. Truyền cả hai hoặc không truyền cái nào sẽ báo lỗi.

:::warning
`--paywall-id` không còn được khuyến nghị và sẽ bị xóa. Khi truyền vào, CLI sẽ in cảnh báo ra stderr và chuyển đổi giá trị thành một đối tượng mặc định. Hãy dùng `--audiences` cho các tự động hóa mới.
:::

### adapty placements update \{#adapty-placements-update\}

Thay thế toàn bộ các trường của một [placement](placements) hiện có.

```bash
adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
```

Lệnh này thay thế toàn bộ các trường của placement, bao gồm cả danh sách audiences đầy đủ.

| Đối số | Mô tả |
|---|---|
| `placement-id` | Placement ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |
| `--title` | Có | Tên placement |
| `--developer-id` | Có | Định danh chuỗi dùng trong code ứng dụng để yêu cầu [placement](placements) này |
| `--audiences` | Một trong hai | Mảng JSON gồm các phần tử `{segment_ids, paywall_id, priority}`. Xem [Cấu trúc Audiences](#audiences-shape) |
| `--paywall-id` | Một trong hai | **Không còn dùng.** ID [paywall](paywalls) (UUID). Thay thế toàn bộ audiences bằng một đối tượng mặc định |

:::warning
Truyền `--paywall-id` sẽ ghi đè toàn bộ audiences của placement. Các audiences theo phân khúc sẽ bị xóa. Để giữ lại chúng, hãy dùng `--audiences` và thêm đầy đủ các phần tử bạn muốn giữ.
:::

#### Cấu trúc Audiences \{#audiences-shape\}

Cờ `--audiences` nhận một mảng JSON. Mỗi phần tử có các trường sau:

| Trường | Kiểu | Mô tả |
|---|---|---|
| `segment_ids` | `string[]` | Các ID [phân khúc](segments) được nhắm mục tiêu bởi đối tượng này. Độ dài 0 hoặc 1. Mảng rỗng đánh dấu **đối tượng mặc định** — dự phòng cho người dùng không khớp với phân khúc nào khác |
| `paywall_id` | `string` | ID [paywall](paywalls) (UUID) hiển thị cho người dùng trong đối tượng này |
| `priority` | `number` | Bắt đầu từ 0, không trùng nhau trong cùng placement. Audiences được đánh giá từ thấp đến cao; đối tượng mặc định phải có giá trị cao nhất |

Một placement phải có đúng một đối tượng mặc định.

Ví dụ với một đối tượng có mục tiêu và một đối tượng mặc định:

```bash
adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
  --audiences '[{"segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'
```

Để thay đổi paywall trên nhiều placement mà không mất cấu hình định tuyến theo phân khúc:

1. Tìm các placement bị ảnh hưởng:

   ```bash
   adapty paywalls placements --app <app-id> <old-paywall-id>
   ```

2. Với mỗi placement, đọc toàn bộ mảng `audiences`:

   ```bash
   adapty placements get --app <app-id> <placement-id> --json
   ```

3. Thay thế các giá trị `paywall_id` tương ứng ở phía client.

4. Ghi lại payload đã chỉnh sửa:

   ```bash
   adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'
   ```

## Phân khúc \{#segments\}

[Phân khúc](segments) chỉ có thể đọc qua CLI. Tạo và chỉnh sửa chúng trên [Adapty dashboard](https://app.adapty.io). Dùng các lệnh này để tra cứu ID phân khúc khi soạn audiences cho placement.

### adapty segments list \{#adapty-segments-list\}

Liệt kê tất cả [phân khúc](segments) của một ứng dụng.

```bash
adapty segments list --app <app-id>
```

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Chấp nhận [cờ phân trang](#global-flags).

### adapty segments get \{#adapty-segments-get\}

Lấy thông tin chi tiết của một [phân khúc](segments) cụ thể.

```bash
adapty segments get --app <app-id> <segment-id>
```

| Đối số | Mô tả |
|---|---|
| `segment-id` | Segment ID (UUID) |

| Cờ | Bắt buộc | Mô tả |
|---|---|---|
| `--app` | Có | App ID (UUID) |

Kết quả trả về chứa `id`, `title` và `description`. Các quy tắc lọc không được hiển thị qua API này.

## Xác thực \{#auth\}

| Lệnh | Mô tả |
|---|---|
| `adapty auth login` | Xác thực qua trình duyệt bằng device flow |
| `adapty auth logout` | Xóa thông tin đăng nhập đã lưu ở máy cục bộ |
| `adapty auth whoami` | Xác minh token với máy chủ và hiển thị thông tin người dùng |
| `adapty auth status` | Hiển thị trạng thái xác thực cục bộ mà không gọi máy chủ |
| `adapty auth revoke` | Thu hồi token ở phía máy chủ và xóa ở máy cục bộ |

Xem [Xác thực](developer-cli-authentication) để biết chi tiết từng lệnh.