Get a user
GET /v1/api/users/{id} - one user (admin-only, tenant-scoped) for the
detail page. Reuses USER_SELECT; bots/deleted are NOT excluded here (a deep
link to an erased user must still resolve so the detail can show its state).
Authorizations
Personal Access Token. Send as Authorization: Bearer hq_pat_....
Path Parameters
User id
Response
One user
Tenant-admin role override (migration 0132): default (follow the
Slack is_admin flag), granted (admin regardless of Slack), or
revoked (never admin). Effective admin = granted OR (default AND
is_admin), never when revoked.
Whether the transport flags this user as a restricted guest
(Slack single-/multi-channel). NULL (not yet discovered) renders
as false.
slack | teams | email - how the identity entered the tenant. Email
users are invited + sign in via magic link (migration 0133). Combined
with a null last_seen_at the UI shows an "Invited" (pending) state.
HQ sign-in access for this user: default (follows the workspace
sign-in mode + guest policy), allowed (explicitly let in), or
denied (explicitly blocked). See migration 0129.
slack / teams / manual - the connector that originated
this identity.
Slack handle ("markus", "jens"). What @-mentions resolve to.
Full human name ("Markus Persson"). The admin table prefers this in the primary column so users aren't shown as handles.
Display name of the connected workspace (e.g. "Truespar").