Get stack data for a user
What is the Stack? The Stack view shows a person’s personal weekly schedule and serves as their personal task overview. It acts like a personal Kanban board that helps specialists work through tasks in a focused, distraction-free way. The Stack automatically follows the order from pipeline planning, showing exactly which tasks are planned for the employee and in what priority order.
Task Filtering Logic: The stack includes tasks from two sources:
- Pipeline tasks: Tasks that are in the user’s pipeline for the current week (determined by the
todayparameter). These tasks appear regardless of whether they are assigned to the user or have the user as accountable. Pipeline tasks appear in the toDo and done columns. - Non-pipeline tasks: Tasks filtered by the Assigned field (not the Accountable field). Only tasks where
assignedToIdequals theuserIdare included. These appear in giveFeedback, getFeedback, and backlog columns.
Important: Unlike the Pool view which filters by Accountable field, the Stack filters non-pipeline tasks by the Assigned field (assignedToId). Pipeline tasks are included regardless of assignment or accountability.
How to call this endpoint:
- Both userId and today are required. Do not call GET /tasks/stack without them.
- To show the current user’s own stack, first call GET /account/info and use its userId.
- today must be an ISO date string such as 2026-07-08; use the current date unless the user asks for another week.
- Example: GET /tasks/stack?userId=<current-user-id>&today=2026-07-08.
- Empty columns are a valid successful result when the user has no stack tasks.
What data is returned: The response contains tasks organized into five columns that show how far tasks are in the workflow:
- toDo: Tasks that need to be worked on this week. These are tasks from the pipeline (regardless of assignment) that are in “New” or “In Progress” status.
- giveFeedback: Tasks where the expert should give feedback to others. These are tasks where the user is assigned (filtered by Assigned field, not Accountable) and are in “Feedback” status.
- getFeedback: Tasks that are waiting for feedback from others. These are tasks where the user is NOT assigned (filtered by Assigned field) but are in “Feedback” status.
- done: Finished tasks from the pipeline (regardless of assignment) that are in “Closed” or “Resolved” status.
- backlog: Tasks that are assigned to the user (filtered by Assigned field) but are not part of this week’s pipeline. These could be planned for coming weeks.
Task sorting and prioritization:
- Tasks are sorted by priority (High > Normal > Low) then by shortNumber (ascending)
- Pipeline tasks are prioritized and appear first in their respective columns
- The order matches the priority set during pipeline planning
Permission requirements: Access is controlled by Stack permissions:
- Stack.canViewAll: Can view any user’s stack
- Stack.canViewOwnTeams: Can view stacks of users in the same actual team membership. The role name alone is not enough; users must share a Team/UsersOnTeam relation.
- Stack.canViewOwn: Can only view own stack
Task details included: Each task includes comprehensive information: ID, title, icon, short number, organization color and name, project details, status, summary, priority, type, deadline, estimated/spent time, comments count, assigned users, and tags. The spentTime field is only visible if the user has Tasks.seeLoggedTime permission.
Note: If you need to retrieve all tasks with custom filtering, sorting, or pagination capabilities, consider using the GET /tasks/grid endpoint instead. The grid endpoint provides more flexible filtering options and is better suited for retrieving large datasets or when you need to filter by multiple criteria simultaneously.
/tasks/stackAuthorizationOAuth2 access token · headerrequiredapi:readAuthorizationBearer token (JWT) · headerrequireduserIdstringrequiredtodaystringrequiredcolumnsStackColumnDto[]requiredShow propertiesHide properties
StackColumnDtotasksStackTaskDetailsDto[]requiredShow propertiesHide properties
StackTaskDetailsDtoaccountableIdobject | nullrequiredassignedToIdobject | nullrequiredcolorstringrequiredcommentsCountnumberrequireddeadlineobject | nullrequiredestimatedTimeobject | nullrequirediconobject | nullrequiredidstringrequiredorgNamestringrequiredorganizationShortNamestringrequiredpriorityobjectrequiredShow propertiesHide properties
objectprojectIdstringrequiredprojectShortNumberobject | nullrequiredshortNumbernumberrequiredspentTimeobject | nullstatusIdstringrequiredsummaryobject | nullrequiredtagsstring[]requiredtitlestringrequiredtypeIdstringrequiredtypeobjectrequiredShow propertiesHide properties
objectmessagestringstatusCodenumbermessagestringstatusCodenumbermessagestringstatusCodenumbercurl -X GET "https://leadtime.app/api/public/tasks/stack?userId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504&today=2025-11-04" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/tasks/stack?userId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504&today=2025-11-04", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/tasks/stack?userId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504&today=2025-11-04",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
){
"columns": [
{
"tasks": [
{
"accountableId": {},
"assignedToId": {},
"color": "string",
"commentsCount": 0,
"deadline": {},
"estimatedTime": {},
"icon": {},
"id": "string",
"orgName": "string",
"organizationShortName": "string",
"priority": {},
"projectId": "string",
"projectShortNumber": {},
"shortNumber": 0,
"spentTime": {},
"statusId": "string",
"summary": {},
"tags": [
"string"
],
"title": "string",
"typeId": "string"
}
],
"type": {}
}
]
}{
"message": "Validation failed: userId must be a UUID",
"statusCode": 400
}{
"message": "Forbidden: You do not have permission to view this user's stack",
"statusCode": 403
}{
"message": "User not found",
"statusCode": 404
}