Files
flvx/skills/flvx-api/references/users.md
T
2026-02-28 14:07:54 +08:00

3.2 KiB

User Management API

All user management endpoints require admin privileges (role_id: 0).

POST /api/v1/user/list

List all users with pagination and filtering.

Request:

{
  "page": 1,
  "pageSize": 20,
  "keyword": "search-term"
}

Response:

{
  "code": 0,
  "data": {
    "list": [
      {
        "id": 1,
        "user": "admin",
        "name": "Administrator",
        "role_id": 0,
        "status": 1,
        "flow": 1000,
        "in_flow": 10737418240,
        "out_flow": 21474836480,
        "exp_time": 1767225600000,
        "flow_reset_time": 1,
        "created_at": 1706659200000,
        "updated_at": 1706659200000
      }
    ],
    "total": 1
  }
}

POST /api/v1/user/create

Create a new user.

Request:

{
  "user": "username",
  "pwd": "password",
  "name": "Display Name",
  "status": 1,
  "flow": 100,
  "num": 10,
  "expTime": 1767225600000,
  "flowResetTime": 1,
  "groupIds": [1, 2]
}

Fields:

Field Type Required Description
user string Yes Username (unique)
pwd string Yes Password
name string No Display name
status number No 1=active, 0=disabled (default: 1)
flow number No Traffic quota in GB (default: 0)
num number No Max forwards allowed (default: 0 = unlimited)
expTime number No Expiry timestamp in ms (0 = never)
flowResetTime number No Monthly reset day 1-28 (0 = no reset)
groupIds number[] No User group IDs to assign

Response:

{"code": 0, "msg": "success", "data": {"id": 2}}

POST /api/v1/user/update

Update user details.

Request:

{
  "id": 2,
  "user": "new-username",
  "pwd": "new-password",
  "name": "New Name",
  "status": 1,
  "flow": 200,
  "num": 20,
  "expTime": 1767225600000,
  "flowResetTime": 15,
  "groupIds": [1]
}

Note: pwd is optional for updates. If omitted, password remains unchanged.

POST /api/v1/user/delete

Delete a user (cascades to forwards and tunnel assignments).

Request:

{"id": 2}

Response:

{"code": 0, "msg": "success"}

POST /api/v1/user/reset

Reset user traffic at user or tunnel level.

Request (User level):

{
  "id": 2,
  "type": "user"
}

Request (Tunnel level):

{
  "id": 2,
  "type": "tunnel",
  "tunnelId": 1
}

Response:

{"code": 0, "msg": "success"}

POST /api/v1/user/groups

Get groups a user belongs to.

Request:

{"id": 2}

Response:

{
  "code": 0,
  "data": [
    {"id": 1, "name": "VIP Users"}
  ]
}

Traffic Units

Field Unit Conversion
flow GB Gigabytes
in_flow Bytes Divide by 1,073,741,824 for GB
out_flow Bytes Divide by 1,073,741,824 for GB

Example: Create User with 50GB Quota

curl -X POST "${FLVX_BASE_URL}/api/v1/user/create" \
  -H "Authorization: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "user": "alice",
    "pwd": "SecurePass123!",
    "name": "Alice",
    "status": 1,
    "flow": 50,
    "num": 5,
    "expTime": 1735689600000,
    "flowResetTime": 1
  }'