These endpoints give privileged users tools for administering the PrintHeritage user directory. Listing all users is restricted toDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/joaomonteir0/printheritage/llms.txt
Use this file to discover all available pages before exploring further.
GENERAL_ADMIN and SUPER_ADMIN roles; individual profile lookups and searches are available to any authenticated user. All write operations — updates and deletions — are recorded in the audit log. Every path that accepts a {user_id} segment expects a valid UUID.
GET /users
Returns the complete list of platform users, optionally filtered by a search string. Access is restricted to users with theGENERAL_ADMIN or SUPER_ADMIN role. Each item in the response includes the user’s full profile plus a permissions array listing all of their project memberships.
Authentication: Bearer token required. Minimum role: GENERAL_ADMIN.
Optional case-insensitive search string. Filters results where
email or full_name matches %q% (SQL ILIKE). Omit to return all users.List[UserDetailResponse]
Unique identifier of the user.
User’s email address.
Platform-wide role:
SUPER_ADMIN, GENERAL_ADMIN, PROJECT_ADMIN, or VISUALIZER.Display name, or
null if not set.ISO 8601 datetime, or
null.Profile picture URL, or
null.Whether the profile is publicly visible.
List of
ProjectPermissionResponse objects.| Status | Meaning |
|---|---|
401 Unauthorized | Token is missing, expired, or invalid. |
403 Forbidden | Caller does not have the required role. |
PATCH /users/
Updates one or more fields on a user account. Only the fields present in the request body are applied — omitted fields are left unchanged. Ifpassword is supplied it is hashed before storage. On success, a USER_UPDATE entry is written to the audit log attributed to the calling user.
Authentication: Bearer token required.
UUID of the user account to update.
Content-Type: application/json — All body fields are optional.
New email address. Must be a valid email format.
New password in plain text. Hashed with bcrypt before being stored.
New platform-wide role. One of
SUPER_ADMIN, GENERAL_ADMIN, PROJECT_ADMIN, VISUALIZER.New display name.
New birth date as an ISO 8601 datetime string.
New profile picture URL.
Update the profile visibility setting.
UserResponse
Unique identifier of the updated user.
Current email address after the update.
Current platform-wide role after the update.
Current display name after the update.
Current birth date after the update.
Current profile picture URL after the update.
Current profile visibility setting.
| Status | Meaning |
|---|---|
401 Unauthorized | Token is missing, expired, or invalid. |
404 Not Found | No user exists with the given user_id. |
DELETE /users/
Permanently deletes a user account. Before removing the user record, the endpoint deletes allProjectPermission records associated with that user, cleanly removing them from every project. The operation is rejected if the caller attempts to delete their own account. On success, a USER_DELETE entry is written to the audit log.
Authentication: Bearer token required.
UUID of the user account to delete. Must not be the same UUID as the authenticated caller.
Always
true when the deletion was successful.| Status | Meaning |
|---|---|
400 Bad Request | Caller attempted to delete their own account, or the user_id was not found. |
401 Unauthorized | Token is missing, expired, or invalid. |
GET /users/search
Performs a lightweight user search returning only public-facing profile fields. Intended for use in invitation flows and member-picker UI components. The query must be at least 3 characters long — shorter queries return an empty array immediately without hitting the database.This endpoint searches only the
email field using a case-insensitive ILIKE match. It does not search full_name. Return fewer than 3 characters in q to receive an empty array with no error.Search string. Must be at least 3 characters. Shorter values return
[] without error.Email address of the matching user.
Display name, or
null if not set.Profile picture URL, or
null if not set.| Status | Meaning |
|---|---|
401 Unauthorized | Token is missing, expired, or invalid. |
GET /users//profile
Returns the public profile of a specific user by their UUID. UnlikeGET /users, this endpoint is available to all authenticated users and is intended for viewing member profiles within project contexts.
Authentication: Bearer token required.
UUID of the user whose profile should be returned.
Email address of the user.
Display name, or
null if not set.Birth date as an ISO 8601 datetime, or
null if not set.Profile picture URL, or
null if not set.Platform-wide role of the user:
SUPER_ADMIN, GENERAL_ADMIN, PROJECT_ADMIN, or VISUALIZER.| Status | Meaning |
|---|---|
401 Unauthorized | Token is missing, expired, or invalid. |