Super People Docs
API Reference

Admin — Members

Super-admin member management: create employees, activate or deactivate them, reset passwords, change roles, feature contributors.

Super-admin member management: create employees, activate or deactivate them, reset passwords, change roles, feature contributors.

Generated from the OpenAPI spec by npm run docs:api -w api. Do not edit this page — change the decorators in apps/api/src/ and regenerate.

Conventions

  • Auth — a session on every route: the cookie on web, the bearer token on mobile. See Authentication.
  • Errors — every non-2xx response has the body described in Errors.
  • Types — a ? after a field name means it is optional; | null means it is present but may be null.
  • Guide — Roles and Visibility.

Endpoints

GET /api/v1/admin/members — Every member, including the hidden ones

Super admins only. Wider than the directory: it carries emails, roles and the deactivated accounts the people-facing screens leave out.

Returns 200 → AdminMemberResponse[]

ErrorWhen
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.

POST /api/v1/admin/members — Create an employee

Super admins only. Creates the login and the profile in one call, and returns the profile. The password is set here and is not emailed to them.

Body — CreateMemberDto

Returns 201 → ProfileResponse

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.

PATCH /api/v1/admin/members/{userId}/status — Activate or deactivate somebody

Deactivating revokes their sessions and drops them out of the directory and org chart. Their posts and history are kept.

Path parameterTypeNotes
userIdstring

Body — SetStatusDto

Returns 200 → ProfileResponse

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such person.

PATCH /api/v1/admin/members/{userId}/password — Set a new password for somebody

Super admins only — the way back in for a member who has forgotten their password. Signs them out of every session, unless the password is your own. The password is not emailed to them.

Path parameterTypeNotes
userIdstring

Body — SetPasswordDto

Returns 200 → AdminMemberResponse

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such person.

PATCH /api/v1/admin/members/{userId}/role — Change somebody’s access level

A super admin can post announcements, moderate and manage members.

Path parameterTypeNotes
userIdstring

Body — SetRoleDto

Returns 200 → ProfileResponse

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such person.

PATCH /api/v1/admin/members/{userId}/featured — Pin somebody to Top Contributors

note replaces the post count under their name.

Path parameterTypeNotes
userIdstring

Body — SetFeaturedDto

Returns 200 → ProfileResponse

ErrorWhen
400The request was rejected. message is an array of field errors when validation failed.
401No valid session. Clear the stored token and sign in again.
403Signed in, but not allowed to do this.
404No such person.

Data models

AdminMemberResponse

FieldTypeNotes
idstring
namestring
emailstring
imagestring | null
titlestring
rolemember | super_admin
statusactive | pending | deactivated
managerIdstring | null
managerNamestring | null
joinedAtstring ISO 8601
isFeaturedbooleanPinned to the top of the feed's Top Contributors panel.
featuredNotestringShown under the name instead of a post count, when pinned.

CreateMemberDto

FieldTypeNotes
namestring≤ 120 chars
emailstring
passwordstring≤ 200 chars
title?string≤ 120 chars
managerId?string
department?"" | engineering | product | design | hr | business_development | digital_marketing | finance | operations | support | legalTheir designation, which is what the work timeline is worded from.
teamId?stringAn existing team's id. The form creates the team first if it is new.
role?member | super_admin

ProfileResponse

FieldTypeNotes
idstring
namestring
emailstring
rolemember | super_admin
imagestring | nullA path under /api/v1/files/avatars/... — resolve against the API origin.
titlestring
locationstring
biostring
currentWorkstringWhat they are working on right now.
department"" | engineering | product | design | hr | business_development | digital_marketing | finance | operations | support | legal'' when they have not picked a team yet.
teamProfileTeamResponse | null
skillsstring[]
learningInterestsstring[]
projectsProjectResponse[]
instagramstring
linkedinstring
githubstring
xstringX, formerly Twitter.
youtubestring
portfoliostringA personal site.
hobbiesstring[]
interestsstring[]
favoriteMusicstring
favoriteMoviestring
favoriteFoodstring
funFactstring
dreamDestinationstring
superpowerstring
drinkstringWhatever they actually drink — not a fixed set.
joinedAtstring ISO 8601When the login was provisioned — not when the person joined.
joinedOnstring | nullEmployment start date, YYYY-MM-DD, set by a super admin. Prefer it over joinedAt wherever a joining date is shown; null until one is set.
dateOfBirthstring | nullDate of birth, YYYY-MM-DD. Returned only to the person themselves and to super admins — null for everyone else, and until it is set.
statusactive | pending | deactivated
presenceactive | away | offlineWhether they are here right now, computed from heartbeats — unrelated to status, which is about the account. Everyone never seen is offline.
lastSeenAtstring ISO 8601 | nullWhen a client of theirs was last open. Null if never.
postCountnumber
managerManagerResponse | null
reportCountnumberHow many people report to them.
isCompletebooleanWhether the profile has enough filled in to stop nagging about it.

ProfileTeamResponse

FieldTypeNotes
idstring
namestring
colorblue | emerald | violet | amber | rose | cyan | orange | slateA palette token, not a CSS colour — map it to your own styles.

ProjectResponse

FieldTypeNotes
idstring
namestring
descriptionstringEmpty string when unset, never null.
contributionstringSuperseded by contributions; still filled for older rows.
rolestring
startedAtstring | null
endedAtstring | nullnull while the work is still running — show it as "Present".
statusin_progress | completed | on_hold
tagsstring[]
contributionsstring[]The "Key Contributions" bullets.
linkstringEmpty string when unset, never null.

ManagerResponse

FieldTypeNotes
idstring
namestring
imagestring | null

SetStatusDto

FieldTypeNotes
statusactive | deactivated

SetPasswordDto

FieldTypeNotes
passwordstring≤ 128 chars

SetRoleDto

FieldTypeNotes
rolemember | super_admin

SetFeaturedDto

FieldTypeNotes
featuredboolean
note?stringShown under the name in Top Contributors instead of a post count. · ≤ 120 chars

On this page