88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
API Module Guide

Mô-đun quản lý mã thông báo

Mô tả tính năng

Tiền tố API thống nhất là http(s)://<your-domain>

Nên sử dụng HTTPS trong môi trường sản xuất để bảo mật mã thông báo xác thực. HTTP chỉ được khuyến nghị cho môi trường phát triển.

Một hệ thống quản lý hoàn chỉnh cho Mã thông báo API của người dùng. Hỗ trợ các tính năng như tạo Token, cập nhật, xóa và thao tác hàng loạt. Bao gồm các biện pháp kiểm soát chi tiết như hạn chế mô hình, hạn chế IP, quản lý hạn ngạch và thời gian hết hạn. Đây là nguồn dữ liệu cốt lõi cho trang Mã thông báo giao diện người dùng.

🔐 Xác thực người dùng

Nhận tất cả các token

  • Tên giao diện: Nhận tất cả các token
  • Phương thức HTTP: NHẬN
  • Đường dẫn: /api/token/
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Phân trang và truy xuất danh sách tất cả các Token thuộc về người dùng hiện tại.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/?p=1&size=20', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": 1,
        "name": "API Token",
        "key": "`<YOUR_API_KEY>`",
        "status": 1,
        "remain_quota": 1000000,
        "unlimited_quota": false,
        "expired_time": 1640995200,
        "created_time": 1640908800,
        "accessed_time": 1640995000
      }
    ],
    "total": 5,
    "page": 1,
    "page_size": 20
  }
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Failed to retrieve Token list"
}

🧾 Mô tả trường:

  • p (Number): Số trang, mặc định là 1
  • size (Number): Số mục trên một trang, mặc định là 20
  • items (Array): Danh sách thông tin token
  • total (Number): Tổng số Token
  • page (Number): Số trang hiện tại
  • page_size (Number): Số mục trên một trang

Mã thông báo tìm kiếm

  • Tên giao diện: Mã thông báo tìm kiếm
  • Phương thức HTTP: NHẬN
  • Đường dẫn: /api/token/search
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Tìm kiếm Token của người dùng dựa trên từ khóa và giá trị Token.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/search?keyword=api&token=sk-123', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": "",
  "data": [
    {
      "id": 1,
      "name": "API Token",
      "key": "sk-your-token-placeholder",
      "status": 1,
      "remain_quota": 1000000
    }
  ]
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Failed to search Token"
}

🧾 Mô tả trường:

  • keyword (String): Tìm kiếm từ khóa, khớp với tên Token
  • token (String): Tìm kiếm giá trị token, hỗ trợ khớp từng phần

Nhận một mã thông báo

  • Tên giao diện: Nhận một mã thông báo
  • Phương thức HTTP: NHẬN
  • Đường dẫn: /api/token/:id
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Truy xuất thông tin chi tiết về Token được chỉ định.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/123', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": "",
  "data": {
    "id": 123,
    "name": "API Token",
    "key": "sk-your-token-placeholder",
    "status": 1,
    "remain_quota": 1000000,
    "unlimited_quota": false,
    "model_limits_enabled": true,
    "model_limits": "gpt-3.5-turbo,gpt-4",
    "allow_ips": "192.168.1.1,10.0.0.1",
    "group": "default",
    "expired_time": 1640995200,
    "created_time": 1640908800,
    "accessed_time": 1640995000
  }
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Token does not exist"
}

🧾 Mô tả trường:

id (Số): ID mã thông báo, được truyền qua đường dẫn URL

Tạo mã thông báo

  • Tên giao diện: Tạo Token
  • Phương thức HTTP: POST
  • Đường dẫn: /api/token/
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Tạo API Token mới, hỗ trợ tạo hàng loạt.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    name: "My API Token",
    expired_time: 1640995200,
    remain_quota: 1000000,
    unlimited_quota: false,
    model_limits_enabled: true,
    model_limits: ["gpt-3.5-turbo", "gpt-4"],
    allow_ips: "192.168.1.1,10.0.0.1",
    group: "default"
  })
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": ""
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Token name is too long"
}

🧾 Mô tả trường:

  • name (String): Tên token, độ dài tối đa 30 ký tự
  • expired_time (Number): Dấu thời gian hết hạn, -1 nghĩa là không bao giờ hết hạn
  • remain_quota (Số): Hạn ngạch còn lại
  • unlimited_quota (Boolean): Cho dù hạn ngạch là không giới hạn
  • model_limits_enabled (Boolean): Có bật giới hạn mô hình hay không
  • model_limits (Array): Danh sách các model được phép
  • allow_ips (String): Địa chỉ IP được phép, phân tách bằng dấu phẩy
  • group (String): Thuộc nhóm

Mã thông báo cập nhật

  • Tên giao diện: Mã thông báo cập nhật
  • Phương thức HTTP: PUT
  • Đường dẫn: /api/token/
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Cập nhật cấu hình Token, hỗ trợ chuyển đổi trạng thái và cập nhật đầy đủ.

💡 Ví dụ về yêu cầu (Cập nhật đầy đủ):

const response = await fetch('/api/token/', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    name: "Updated Token",
    expired_time: 1640995200,
    remain_quota: 2000000,
    unlimited_quota: false,
    model_limits_enabled: true,
    model_limits: ["gpt-3.5-turbo", "gpt-4"],
    allow_ips: "192.168.1.1",
    group: "vip"
  })
});
const data = await response.json();

💡 Ví dụ về yêu cầu (Chỉ cập nhật trạng thái):

const response = await fetch('/api/token/?status_only=true', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    id: 123,
    status: 1
  })
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": "",
  "data": {
    "id": 123,
    "name": "Updated Token",
    "status": 1
  }
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "The token has expired and cannot be enabled. Please modify the token expiration time first, or set it to never expire"
}

🧾 Mô tả trường:

  • id (Số): ID token, bắt buộc
  • status_only (Tham số truy vấn): Có chỉ cập nhật trạng thái hay không
  • Các trường khác giống như giao diện Create Token, tất cả đều là tùy chọn

Xóa mã thông báo

  • Tên giao diện: Xóa mã thông báo
  • Phương thức HTTP: XÓA
  • Đường dẫn: /api/token/:id
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Xóa Token được chỉ định.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/123', {
  method: 'DELETE',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  }
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": ""
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Token does not exist"
}

🧾 Mô tả trường:

id (Số): ID mã thông báo, được truyền qua đường dẫn URL

Mã thông báo xóa hàng loạt

  • Tên giao diện: Mã thông báo xóa hàng loạt
  • Phương thức HTTP: POST
  • Đường dẫn: /api/token/batch
  • Yêu cầu xác thực: Người dùng
  • Mô tả chức năng: Xóa nhiều Token trong một đợt.

💡 Yêu cầu Ví dụ:

const response = await fetch('/api/token/batch', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_user_token',
    'New-Api-User': 'your_user_id'
  },
  body: JSON.stringify({
    ids: [1, 2, 3, 4, 5]
  })
});
const data = await response.json();

✅ Ví dụ phản hồi thành công:

{
  "success": true,
  "message": "",
  "data": 5
}

❗ Ví dụ phản hồi không thành công:

{
  "success": false,
  "message": "Parameter error"
}

🧾 Mô tả trường:

  • ids (Array): Danh sách Token ID cần xóa, bắt buộc và không được để trống
  • data (Number): Số Token được xóa thành công