Skip to main content
GET
/
api
/
admin
/
users
curl -X GET "https://panel.example.com/api/admin/users?page=1&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
{
  "data": [
    {
      "id": "user-uuid-1",
      "username": "john.doe",
      "email": "[email protected]",
      "name": "John Doe",
      "role": "user",
      "rootAdmin": false,
      "suspended": false,
      "emailVerified": true,
      "twoFactorEnabled": true,
      "passwordResetRequired": false,
      "createdAt": "2024-01-15T10:30:00Z",
      "serversOwned": 3,
      "serversAccess": 3
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 50,
    "total": 150,
    "totalPages": 3
  }
}

Authentication

This endpoint requires admin authentication and the users:read permission.

Query Parameters

page
integer
default:"1"
Page number for pagination (minimum: 1)
limit
integer
default:"50"
Number of users per page (1-100)
Search by email or username (partial match)

Response

data
array
Array of user objects
pagination
object
Pagination information
curl -X GET "https://panel.example.com/api/admin/users?page=1&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
{
  "data": [
    {
      "id": "user-uuid-1",
      "username": "john.doe",
      "email": "[email protected]",
      "name": "John Doe",
      "role": "user",
      "rootAdmin": false,
      "suspended": false,
      "emailVerified": true,
      "twoFactorEnabled": true,
      "passwordResetRequired": false,
      "createdAt": "2024-01-15T10:30:00Z",
      "serversOwned": 3,
      "serversAccess": 3
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 50,
    "total": 150,
    "totalPages": 3
  }
}

Notes

  • Results are ordered by creation date (newest first)
  • Search is case-insensitive and matches partial strings
  • The serversOwned count is calculated via SQL query

Build docs developers (and LLMs) love