Skip to content

Get User

This endpoint returns one user’s profile together with the user’s project and task assignments.

GET /v1/users/users/:id

Include your API key in the x-api-key header. See Authentication.

users:read
ParameterTypeRequiredDescription
idstringYesUser ID.

This endpoint does not accept a request body.

Terminal window
curl "https://api.crewsum.com/v1/users/users/user-a" \
-H "x-api-key: $CREWSUM_API_KEY"

On success, the API returns HTTP 200 OK.

{
"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": []
}
]
}
}
  • profile.userId is 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.projects lists only the user’s direct project and task assignments. Its items do not have source or groupSources.

  • assignments lists 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.groups lists the user’s user groups. userCount is the number of users in each group.

  • profile.supplier is { "id", "name", "contacts": [{ "id", "name" }] } when the user is linked to supplier contacts, otherwise null.

  • 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 associations and internalContactId are left out and contactAssignment is null.

  • canReviewTimesheets is always false on this endpoint.

  • hasAuthProfile is true when the user has a sign-in profile. accountMisconfigured is its opposite. isDisabled is true when the sign-in profile is disabled.

StatusMeaning
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.

This endpoint does not trigger a webhook.