Get User Profile By Id
Profile of another user, scoped to the caller’s org.
Access rules — enforced by load_user_for_crew_edit:
- The caller may always view their own profile (404 indistinguishable from “not in your org” otherwise).
- admin / office-admin may view any user in their org.
- Everyone else gets 404.
Role surfaced in the response comes from the DB display cache (kept
fresh by membership webhooks + the hourly reconciliation worker).
The JWT-authoritative role only applies to the caller — not the
target — which is exactly the documented use of users.role.
Profile picture is resolved the same way as /me: custom upload’s
thumb derivative if present + ready, else the WorkOS-provided URL.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
Successful Response
Complete profile response.
User profile for /users/me endpoint.
profile_picture_url: server-resolved. If the user has uploaded a
custom photo this is a presigned URL for that upload's thumb
derivative (256 px); otherwise it's the WorkOS-provided URL.
has_custom_profile_picture: lets the FE show a "Remove photo"
affordance only when there's a custom photo to remove.
Organization info for profile.