Skip to main content
GET
/
api
/
management
/
users
List Users
curl --request GET \
  --url https://api.example.com/api/management/users
{
  "success": true,
  "timestamp": "<string>",
  "data": {
    "data.content": [
      {
        "content[].id": 123,
        "content[].email": "<string>",
        "content[].firstName": "<string>",
        "content[].lastName": "<string>",
        "content[].roles": [
          {}
        ]
      }
    ],
    "data.pageable": {
      "pageable.pageNumber": 123,
      "pageable.pageSize": 123,
      "pageable.offset": 123
    },
    "data.totalPages": 123,
    "data.totalElements": 123,
    "data.size": 123,
    "data.number": 123,
    "data.first": true,
    "data.last": true,
    "data.empty": true
  }
}

Endpoint

GET /api/management/users

Authentication

This endpoint requires authentication with a valid JWT token and the ADMIN role.
Authorization: Bearer <your_jwt_token>

Query Parameters

page
integer
default:"0"
The page number to retrieve (zero-indexed)
size
integer
default:"20"
The number of users per page (maximum: 100)
sort
string
default:"id"
The field to sort by. Can include direction with comma separator (e.g., id,desc)Available sort fields:
  • id
  • email
  • firstName
  • lastName

Response

Returns a paginated list of users wrapped in the standard ApiResponse format.
success
boolean
required
Indicates if the request was successful
timestamp
string
required
ISO 8601 timestamp of the response
data
object
required
Paginated user data
data.content
array
required
Array of user objects
content[].id
integer
required
Unique identifier for the user
content[].email
string
required
User’s email address (unique)
content[].firstName
string
required
User’s first name
content[].lastName
string
required
User’s last name
content[].roles
array
required
Array of role strings assigned to the user. Available roles: MEMBER, ADMIN
data.pageable
object
required
Pagination metadata
pageable.pageNumber
integer
Current page number (zero-indexed)
pageable.pageSize
integer
Number of items per page
pageable.offset
integer
Offset of the first item in the current page
data.totalPages
integer
required
Total number of pages
data.totalElements
integer
required
Total number of users across all pages
data.size
integer
required
Number of items in the current page
data.number
integer
required
Current page number (zero-indexed)
data.first
boolean
required
True if this is the first page
data.last
boolean
required
True if this is the last page
data.empty
boolean
required
True if the page contains no items

Example Request

curl -X GET "http://localhost:8080/api/management/users?page=0&size=20&sort=id,desc" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Example Response

{
  "success": true,
  "timestamp": "2026-03-03T10:30:00Z",
  "data": {
    "content": [
      {
        "id": 1,
        "email": "[email protected]",
        "firstName": "John",
        "lastName": "Doe",
        "roles": ["ADMIN", "MEMBER"]
      },
      {
        "id": 2,
        "email": "[email protected]",
        "firstName": "Jane",
        "lastName": "Smith",
        "roles": ["MEMBER"]
      }
    ],
    "pageable": {
      "pageNumber": 0,
      "pageSize": 20,
      "offset": 0
    },
    "totalPages": 1,
    "totalElements": 2,
    "size": 2,
    "number": 0,
    "first": true,
    "last": true,
    "empty": false
  }
}

Error Responses

401 Unauthorized

Returned when authentication credentials are missing or invalid.
{
  "success": false,
  "timestamp": "2026-03-03T10:30:00Z",
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}

403 Forbidden

Returned when the authenticated user does not have the ADMIN role.
{
  "success": false,
  "timestamp": "2026-03-03T10:30:00Z",
  "error": {
    "code": "FORBIDDEN",
    "message": "Access denied. ADMIN role required."
  }
}

Build docs developers (and LLMs) love