Skip to main content

Members & Users API

Base paths: /api/orgs/{organizationId}/users, /api/admin/users

All endpoints require Authorization: Bearer <token>.


Organisation Users

List Members

GET /api/orgs/{organizationId}/users
Authorization: Bearer <adminToken>

Query Parameters:

ParamTypeDescription
statusstringFilter by status: ACTIVE, PENDING, SUSPENDED
searchstringSearch by name or email
pageintPage number (0-based)
sizeintPage size (default 20)
sortstringSort field (e.g. lastName,asc)

Response 200:

{
"content": [
{
"id": "user-uuid",
"email": "[email protected]",
"firstName": "Jane",
"lastName": "Doe",
"status": "ACTIVE",
"roles": ["MEMBER"],
"joinedAt": "2024-01-15T10:00:00Z"
}
],
"totalElements": 42,
"totalPages": 3,
"page": 0,
"size": 20
}

Create User in Organisation

POST /api/orgs/{organizationId}/users
Authorization: Bearer <adminToken>
{
"email": "[email protected]",
"firstName": "John",
"lastName": "Smith",
"roleId": "role-uuid",
"sendInvitationEmail": true
}

Update User

PUT /api/orgs/{organizationId}/users/{userId}
Authorization: Bearer <adminToken>
{
"firstName": "John",
"lastName": "Smith",
"roleId": "new-role-uuid",
"status": "SUSPENDED"
}

Delete User from Organisation

DELETE /api/orgs/{organizationId}/users/{userId}
Authorization: Bearer <adminToken>

Removes the user from the organisation (sets status to INACTIVE). Does not delete the user account.


Admin — All Users

These endpoints are restricted to system admins (SYSTEM user type, SUPER_ADMIN or PLATFORM_ADMIN role).

List All Users

GET /api/admin/users
Authorization: Bearer <systemAdminToken>

Query Parameters: Same pagination/filter params as above, plus:

ParamTypeDescription
organizationIdUUIDFilter by organisation
accountStatusstringFilter by account status

Get User Details

GET /api/admin/users/{userId}
Authorization: Bearer <systemAdminToken>

Returns full user profile including all organisation memberships, roles, and audit history.


Membership Types

List Membership Types

GET /api/orgs/{organizationId}/membership-types
Authorization: Bearer <token>

Create Membership Type

POST /api/orgs/{organizationId}/membership-types
Authorization: Bearer <adminToken>
{
"name": "Student",
"description": "For current students",
"price": 25.00,
"currency": "CAD",
"durationMonths": 12,
"benefits": ["Discounted events", "Newsletter access"]
}

Update Membership Type

PUT /api/orgs/{organizationId}/membership-types/{typeId}
Authorization: Bearer <adminToken>

Delete Membership Type

DELETE /api/orgs/{organizationId}/membership-types/{typeId}
Authorization: Bearer <adminToken>

User Memberships

Get User's Membership

GET /api/orgs/{organizationId}/users/{userId}/membership
Authorization: Bearer <adminToken>

Assign Membership

POST /api/orgs/{organizationId}/users/{userId}/membership
Authorization: Bearer <adminToken>
{
"membershipTypeId": "type-uuid",
"startDate": "2024-01-01",
"endDate": "2024-12-31"
}

Renew Membership

POST /api/orgs/{organizationId}/users/{userId}/membership/renew
Authorization: Bearer <adminToken>