Get User
This endpoint returns one user’s profile together with the user’s project and task assignments.
Endpoint
Section titled “Endpoint”GET /v1/users/users/:idAuthentication
Section titled “Authentication”Include your API key in the x-api-key header. See Authentication.
Required Scope
Section titled “Required Scope”users:readPath Parameters
Section titled “Path Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | User ID. |
Request Body
Section titled “Request Body”This endpoint does not accept a request body.
Example Request
Section titled “Example Request”curl "https://api.crewsum.com/v1/users/users/user-a" \ -H "x-api-key: $CREWSUM_API_KEY"const response = await fetch("https://api.crewsum.com/v1/users/users/user-a", { headers: { "x-api-key": process.env.CREWSUM_API_KEY, },});const result = await response.json();GET /v1/users/users/user-a HTTP/1.1Host: api.crewsum.comx-api-key: <your-api-key>Response
Section titled “Response”On success, the API returns HTTP 200 OK.
Example Response
Section titled “Example Response”{ "message": "Successfully Fetched Profile", "data": { "profile": { "userId": "tenant-123#user-a", "contactAssignment": null, "isDisabled": false, "canReviewTimesheets": false, "displayName": "User Display Name", "email": "placeholder@example.com", "systemRole": "assoc", "accountMisconfigured": false, "customFields": {}, "isArchived": false, "projects": [ { "id": "project-mno123pqr4567890", "name": "Project Name", "tasks": [ { "id": "task-pqr123stu4567890", "name": "Task Name" } ] } ], "groups": [ { "id": "36b735f8-4dd7-4c3c-836f-35d2fe84e872", "name": "Operations", "description": "Users who manage operations work.", "userCount": 1, "createdAt": "2026-05-27T18:00:00.000Z", "updatedAt": null } ], "supplier": null, "startDate": "2023-01-01", "endDate": null, "createdAt": "2023-01-01T00:00:00.000Z", "updatedAt": "2023-01-01T00:00:00.000Z", "preferredTimezone": "America/Denver", "hasAuthProfile": true }, "assignments": [ { "id": "project-mno123pqr4567890", "name": "Project Name", "source": { "type": "direct" }, "groupSources": [], "tasks": [ { "id": "task-pqr123stu4567890", "name": "Task Name", "source": { "type": "direct" }, "groupSources": [] } ] }, { "id": "project-abc123def4567890", "name": "Group Project", "source": { "type": "group", "groupId": "36b735f8-4dd7-4c3c-836f-35d2fe84e872", "groupName": "Operations" }, "groupSources": [ { "type": "group", "groupId": "36b735f8-4dd7-4c3c-836f-35d2fe84e872", "groupName": "Operations" } ], "tasks": [] } ] }}Behavior
Section titled “Behavior”-
profile.userIdis the internal user ID, in the form<tenantId>#<userId>. This differs from List Users, which returns the user ID without the tenant prefix. Use the part after#when you call other endpoints. -
profile.projectslists only the user’s direct project and task assignments. Its items do not havesourceorgroupSources. -
assignmentslists direct assignments and assignments the user receives through user groups. Each project and task has:source:{ "type": "direct" }when the user has a direct assignment, otherwise the first group that gives the assignment ({ "type": "group", "groupId", "groupName" }).groupSources: every group that gives the assignment. It is[]when no group gives it.
-
profile.groupslists the user’s user groups.userCountis the number of users in each group. -
profile.supplieris{ "id", "name", "contacts": [{ "id", "name" }] }when the user is linked to supplier contacts, otherwisenull. -
When the user is linked to an internal contact, the profile also has:
internalContactId: the ID of that contact.associations: the projects that contact is associated with.contactAssignment: the contact, its client, and its project associations.
Otherwise
associationsandinternalContactIdare left out andcontactAssignmentisnull. -
canReviewTimesheetsis alwaysfalseon this endpoint. -
hasAuthProfileistruewhen the user has a sign-in profile.accountMisconfiguredis its opposite.isDisabledistruewhen the sign-in profile is disabled.
Error Responses
Section titled “Error Responses”| Status | Meaning |
|---|---|
400 | "User ID not found": the ID path segment was empty. |
404 | "Error getting user": returned for every failure, including an unknown user ID and internal errors. |
Authentication and scope failures are described in Errors.
Related Webhooks
Section titled “Related Webhooks”This endpoint does not trigger a webhook.