The Users API is the central registry for every person in your organisation. It lets authorised callers enumerate the workforce, onboard new employees, manage profile and status fields, and perform administrative security actions — all enforced by a role-based access-control layer that automatically scopes what each caller may see or change.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Paramount-Intelligence/HR_Monitoring_System/llms.txt
Use this file to discover all available pages before exploring further.
All endpoints in this section are prefixed with
/api/v1/users and require an Authorization: Bearer <token> header obtained from POST /api/v1/auth/login.Enum Reference
User Roles
| Value | Description |
|---|---|
admin | Full system access. |
hr_operations | HR management access across all employees. |
manager | Manages a team; can approve leave and tasks. |
team_lead | Technical lead with partial management rights. |
employee | Standard employee. |
junior_employee | Junior-level employee. |
intern | Intern; task completion requires manager approval. |
User Status
| Value | Description |
|---|---|
active | Account is active and can log in. |
inactive | Deactivated account. |
suspended | Temporarily suspended. |
invited | Invitation sent, account not yet activated. |
GET /users
List all users visible to the authenticated caller. Results are automatically scoped by role: Admins and HR see the full directory; Managers see their own reports plus colleagues; Employees see limited colleagues. Auth: Any authenticated user. Scope is enforced server-side.Query Parameters
Filter by role. Accepted values:
admin, hr_operations, manager, team_lead, employee, junior_employee, intern.Filter by department name string (case-insensitive partial match).
Return only direct reports of the specified manager UUID.
Filter by account status. Accepted values:
active, inactive, suspended, invited.Response Fields
Array of UserRead objects.
Example
POST /users
Create a new user account and send an invitation email. The new user must activate their account via the emailed link before they can log in. Auth:admin or hr_operations role required.
Request Body
Employee’s full name. 1–255 characters.
Work email address. Must be unique across the organisation.
Initial role. One of
admin, hr_operations, manager, team_lead, employee, junior_employee, intern.Optional pre-set password (min 8 chars). If omitted, the user sets their password during activation.
Contact phone number.
Department name string (legacy field).
Preferred — UUID of the department record.
UUID of the assigned work shift.
Job title, e.g.
Senior Engineer.UUID of the direct line manager.
Response Fields
Full profile of the newly created user (see UserRead fields above).
true when the activation email was dispatched successfully.SMTP error message if the invitation email failed; otherwise
null.Activation token returned only in
development environment — never present in production.Example
GET /users/active-directory
Return a minimal directory of users the authenticated caller may message, enriched with live presence and online-state data. Used to populate contact pickers in messaging UIs. Auth: Any authenticated user. Results are RBAC-scoped.Response Fields
Array of UserDirectoryRead objects.
Example
GET /users/me
Return the full profile of the currently authenticated user, enriched with live presence and online-state data. Auth: Any authenticated user.Response Fields
Returns a singleUserRead object. See GET /users for the full field list.
Example
PATCH /users/me/presence
Update the authenticated user’s real-time presence status. Auth: Any authenticated user.Request Body
New presence state. Must be
active or away.Response Fields
Updated presence state.
Timestamp of the change.
Timestamp of last API activity.
Example
PATCH /users/me/profile
Update the currently authenticated user’s own profile details. Auth: Any authenticated user.Request Body
Updated display name. 1–255 characters.
Updated contact phone number. Max 50 characters.
Response Fields
Returns the updatedUserRead object.
Example
PATCH /users/me/profile-picture
Upload a new profile picture for the authenticated user. Accepts a multipart/form-data request with a singlefile field.
Auth: Any authenticated user.
Request Body
Image file to upload (multipart/form-data). JPEG, PNG, and WebP are accepted.
Response Fields
Returns the updatedUserRead object with avatar_url and profile_picture_url pointing to the new image.
Example
DELETE /users/me/profile-picture
Remove the authenticated user’s profile picture, clearing all related fields. Auth: Any authenticated user.Response Fields
Returns the updatedUserRead object with avatar_url set to null.
Example
POST /users/me/change-password
Change the authenticated user’s own password. Requires the current password for verification. Auth: Any authenticated user.Request Body
The user’s existing password for verification.
The desired new password. Minimum 8 characters.
Must match
new_password exactly.Response Fields
Confirmation message on success.
Example
GET /users/
Retrieve the profile of a specific user by their UUID. Access is subject to role-scoping: Employees can only view users within their own visibility boundary; Managers can view their reports; Admins and HR can view anyone. Auth: Any authenticated user. View access is RBAC-scoped.Path Parameters
UUID of the target user.
Response Fields
Returns a singleUserRead object (see field table under GET /users).
Example
PATCH /users/
Update a user’s profile fields or account status. Callers may only update fields they are authorised to change: Employees can update their ownfull_name and phone; Managers can update their direct reports; Admins and HR can update any field including role and status.
Auth: Any authenticated user. Write permissions are RBAC-enforced per field.
Path Parameters
UUID of the user to update.
Request Body
Updated display name. 1–255 characters.
Updated contact phone number.
Department name string (legacy).
UUID of the new department.
UUID of the new shift.
Updated job title.
UUID of the new direct-line manager.
New account status:
active, inactive, suspended, or invited. Admin/HR only.New role assignment. Admin/HR only.
Response Fields
Returns the updatedUserRead object.
Example
DELETE /users/
Deactivate a user account. This is a soft deactivation — the record is retained for audit history. Auth:admin role required.
Path Parameters
UUID of the user to deactivate.
Response Fields
Returns the updatedUserRead object with status: "inactive".
Example
POST /users//suspend
Temporarily suspend a user account, preventing login until the account is reactivated. Auth:admin role required.
Path Parameters
UUID of the user to suspend.
Query Parameters
Optional free-text reason for the suspension, stored in the audit log.
Response Fields
Returns the updatedUserRead object with status: "suspended".
Example
POST /users//activate
Reactivate a previously deactivated or suspended user account. Auth: Any authenticated user (RBAC-enforced server-side; typicallyadmin or hr_operations).
Path Parameters
UUID of the user to activate.
Response Fields
Returns the updatedUserRead object with status: "active".
Example
POST /users//resend-invite
Resend the invitation / account-setup email to a user whose status isinvited.
Auth: admin or manager role required. Rate-limited.
Path Parameters
UUID of the invited user.
Response Fields
Human-readable outcome message.
true if the email was dispatched.SMTP error detail when
email_sent is false.Example
PATCH /users//profile-picture
Upload a profile picture for any user. The caller must be the target user themselves, or holdadmin or hr_operations role.
Auth: Self, admin, or hr_operations.
Path Parameters
UUID of the user whose picture should be updated.
Request Body
Image file (multipart/form-data). JPEG, PNG, or WebP.
Response Fields
Returns the updatedUserRead object.
Example
DELETE /users//profile-picture
Remove a user’s profile picture. The caller must be the target user or hold admin/HR role. Auth: Self,admin, or hr_operations.
Path Parameters
UUID of the user whose picture should be removed.
Response Fields
Returns the updatedUserRead object with avatar_url set to null.
Example
GET /users//admin-profile
Retrieve a 360° aggregated profile for an employee, including attendance, leave, tasks, time logs, projects, goals, and notes. Intended for the HR/admin employee-detail view. Auth:admin role required.
Path Parameters
UUID of the employee.
Query Parameters
Start of the date range for sub-resource queries (ISO-8601 date string).
End of the date range for sub-resource queries (ISO-8601 date string).
Maximum number of records per sub-resource. Default:
50.Response Fields
Full user profile.
Aggregate attendance statistics for the selected period.
Recent attendance sessions.
Recent attendance break records.
Leave requests for the period.
End-of-day report submissions.
Assigned tasks.
Time log entries.
Projects the employee is associated with.
Personal development goals.
Personal notes.
Chronological activity events for the employee.
Example
PATCH /users//role
Change a user’s role. RBAC rules govern which role transitions are permitted. Auth: Any authenticated user (RBAC-enforced; typicallyadmin or hr_operations).
Path Parameters
UUID of the target user.
Request Body
The new role. One of
admin, hr_operations, manager, team_lead, employee, junior_employee, intern.Response Fields
Returns the updatedUserRead object.
Example
PATCH /users//department
Update a user’s department assignment and optional designation. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Request Body
UUID of the new department. Omit to leave unchanged.
Updated job title.
Set to
true to remove the user from their current department. Default: false.Response Fields
Returns the updatedUserRead object.
Example
PATCH /users//department-details
Update department, shift, manager, and designation in a single call. Intended for the admin employee-detail form. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Request Body
UUID of the new department.
UUID of the new work shift.
UUID of the new direct-line manager.
Updated job title.
Response Fields
Returns the updatedUserRead object.
Example
PATCH /users//status
Directly set a user’s account status. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Request Body
New account status:
active, inactive, suspended, or invited.Response Fields
Returns the updatedUserRead object.
Example
PATCH /users//reporting
Update a user’s reporting line — manager, shift, and designation — with explicit control flags. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Request Body
UUID of the new manager. Only applied when
update_manager is true.UUID of the new shift. Only applied when
update_shift is true.Updated job title.
Set to
true to apply the manager_id change. Default: false.Set to
true to apply the shift_id change. Default: false.Response Fields
Returns the updatedUserRead object.
Example
PATCH /users//admin-profile
Update an employee’s core profile fields (name, email, phone, designation) from the admin panel. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Request Body
Updated display name. 1–255 characters.
Updated work email address.
Updated contact phone number. Max 50 characters.
Updated job title.
Response Fields
Returns the updatedUserRead object.
Example
GET /users//permissions
Retrieve the full permission breakdown for a user, showing role-granted permissions, extra grants, explicit denials, and the final resolved permission set. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Response Fields
User identifier.
User’s current role.
Permissions granted by the user’s role.
Additional individually granted permissions.
Permissions explicitly denied for this user.
Final effective permission list after applying grants and denials.
Example
PATCH /users//permissions
Update a user’s individual permission overrides — granting extra permissions above their role, or explicitly denying role-default permissions. Auth: Any authenticated user (RBAC-enforced; typicallyadmin).
Path Parameters
UUID of the target user.
Request Body
List of permission key strings to grant in addition to the role’s defaults. Default:
[].List of permission key strings to explicitly deny regardless of role. Default:
[].Response Fields
Returns the updatedUserPermissionsRead object (same fields as GET /users/{user_id}/permissions).
Example
POST /users//send-password-reset
Send a password-reset link to the user’s registered email address. Auth: Any authenticated user (RBAC-enforced). Rate-limited.Path Parameters
UUID of the user who should receive the reset link.
Response Fields
Confirmation message.
true if the email was dispatched.SMTP error detail when
email_sent is false.Example
POST /users//resend-invitation
Resend the account-setup / invitation link (alias endpoint alongsidePOST /users/{user_id}/resend-invite).
Auth: admin or manager role required. Rate-limited.
Path Parameters
UUID of the invited user.
Response Fields
Outcome message.
true if the email was dispatched.SMTP error detail when
email_sent is false.Example
POST /users//force-password-reset
Flag the user’s account so they are forced to set a new password on their next login attempt. Auth: Any authenticated user (RBAC-enforced). Rate-limited.Path Parameters
UUID of the target user.
Response Fields
Confirmation message.
Whether a notification email was sent.
Error detail if notification email failed.
Example
GET /users//admin-summary
Retrieve a compact activity summary for an employee, covering attendance, tasks, time logs, leave, projects, and EOD submissions. Optimised for quick-glance dashboard tiles. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the employee.
Response Fields
Employee identifier.
Attendance aggregate statistics.
Task count statistics by status.
Time tracking aggregate statistics.
Leave request statistics.
Project involvement statistics.
EOD submission statistics.
ISO-8601 timestamp of the most recent activity.
When the account was created.
ISO-8601 timestamp of the last login, or
null.Example
GET /users//audit-logs
Retrieve the audit history for a user, listing every admin action taken on or by the account. Auth: Any authenticated user (RBAC-enforced).Path Parameters
UUID of the target user.
Query Parameters
Number of log entries to return. Range: 1–500. Default:
100.Response Fields
Array of audit log entries.
Example
Standard Error Response
400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict.