---
title: "Get Users"
method: GET
path: "/api/users"
tags: ["User"]
---

# Get Users

`GET /api/users`

Get all users

## Query parameters

- `offset` integer, nullable
- `limit` integer, nullable
- `ids` integer[], nullable
- `username` string[], nullable
- `usernames` string[], nullable
- `admin` string[], nullable
- `admin_ids` integer[], nullable
- `group` integer[], nullable
- `search` string, nullable
- `status` union
  - 'active' | 'disabled' | 'limited' | 'expired' | 'on_hold'
  - UserStatus[]
- `sort` string, nullable
- `proxy_id` string, nullable
- `data_limit_reset_strategy` union
  - 'no_reset' | 'day' | 'week' | 'month' | 'year'
  - DataLimitResetStrategy[]
- `data_limit_min` integer, nullable
- `data_limit_max` integer, nullable
- `expire_after` string, date-time, nullable
- `expire_before` string, date-time, nullable
- `online_after` string, date-time, nullable
- `online_before` string, date-time, nullable
- `online` boolean
- `no_data_limit` boolean
- `no_expire` boolean
- `load_sub` boolean

## Response `200`

Successful Response

- UsersResponse
  - `users` UserResponse[], required
    - `proxy_settings` ProxyTable
      - `vmess` VMessSettings
        - `id` string, uuid
      - `vless` VlessSettings
        - `id` string, uuid
      - `trojan` TrojanSettings
        - `password` string
      - `shadowsocks` ShadowsocksSettings
        - `password` string
        - `method` 'aes-128-gcm' | 'aes-256-gcm' | 'chacha20-ietf-poly1305' | 'xchacha20-poly1305'
      - `wireguard` WireGuardSettings
        - `private_key` string, nullable
        - `public_key` string, nullable
        - `peer_ips` string[]
      - `hysteria` HysteriaSettings
        - `auth` string
    - `expire` union
      - string, date-time
      - integer
    - `data_limit` integer, nullable — data_limit can be 0 or greater
    - `data_limit_reset_strategy` 'no_reset' | 'day' | 'week' | 'month' | 'year'
    - `note` string, nullable
    - `on_hold_expire_duration` integer, nullable — on_hold_expire_duration can be 0 or greater in seconds
    - `on_hold_timeout` union
      - string, date-time
      - integer
    - `group_ids` integer[], nullable
    - `auto_delete_in_days` integer, nullable
    - `hwid_limit` integer, nullable
    - `next_plan` NextPlanModel
      - `user_template_id` integer, nullable
      - `data_limit` integer, nullable
      - `expire` integer, nullable
      - `add_remaining_traffic` boolean
    - `id` integer, required
    - `username` string, required
    - `status` 'active' | 'disabled' | 'limited' | 'expired' | 'on_hold', required
    - `used_traffic` integer, required
    - `lifetime_used_traffic` integer
    - `created_at` string, date-time, required
    - `edit_at` string, date-time, nullable
    - `online_at` string, date-time, nullable
    - `subscription_url` string
    - `admin` AdminBase — Minimal admin model containing only the username.
      - `id` integer, nullable
      - `username` string, required
  - `total` integer, required

## Other responses

- `400` — BadRequest Error
- `401` — Unauthorized Error
- `403` — Forbidden Error
- `404` — NotFound Error
- `422` — Validation Error

---

[API](https://skmtc.dev/ha-man2/apis/pasarguardapi.md) · [All operations](https://skmtc.dev/ha-man2/apis/pasarguardapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ha-man2/pasarguardapi/revisions/84d9ff88fcda/schema)
