Get pool data for an accountable user
The pool view provides a cross-project overview of all tasks filtered by the Accountable field (not the Assigned field). Unlike the Big Picture view which focuses on a single project, the pool aggregates tasks across all projects where the specified user is listed in the Accountable field.
Important: This endpoint filters tasks by the Accountable field, not the Assigned field. Only tasks where the accountableId user is set as the Accountable person will appear in the pool results.
How to call this endpoint:
- accountableId is required. Do not call GET /tasks/pool without it.
- To show the current user’s own pool, first call GET /account/info and use its userId as accountableId.
- Example: GET /tasks/pool?accountableId=<current-user-id>.
- An empty projects array is a valid successful result when the user has no accountable tasks.
This view is commonly used for:
- Weekly planning meetings between team leads and account managers
- Prioritizing tasks across multiple client projects
- Reviewing completed work and discussing open tickets
- Managing workload and identifying blockers
The response organizes tasks by project, with each project containing groups organized by task type (e.g., Feature, Bug, Task). Projects are sorted by custom order stored in PoolProjectOrder table, and groups within projects are sorted by custom order from PoolTypeProjectOrder table.
The response includes:
- Overall statistics: total tasks, resolved count, total estimated hours, total spent hours, resolved hours
- Per-project structure: each project contains groups of tasks organized by type
- Per-group statistics: resolved count, total estimate, total spent, resolved hours for each task type group
Permission requirements:
- Pool.canViewAll: Can view any user’s pool
- Pool.canViewOwnTeams: Can view pools of users in the same actual team membership. The role name alone is not enough; users must share a Team/UsersOnTeam relation.
- Pool.canViewOwn: Can only view your own pool (accountableId must match authenticated user.id)
Tasks are prioritized horizontally within each group - tasks on the left have higher priority.
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/poolAuthorizationOAuth2 access token · headerrequiredapi:readAuthorizationBearer token (JWT) · headerrequiredaccountableIdstringrequiredprojectsany[]requiredstatsobjectrequiredcurl -X GET "https://leadtime.app/api/public/tasks/pool?accountableId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/tasks/pool?accountableId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/tasks/pool?accountableId=aff55c87-49c6-4d5d-9b0b-bf7478e2d504",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
){
"projects": [
{
"groups": [
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"items": [],
"stats": {
"resolvedCount": 2,
"resolvedHours": 4,
"totalEstimate": 16,
"totalSpent": 8
}
}
],
"projectId": "550e8400-e29b-41d4-a716-446655440000"
}
],
"stats": {
"resolvedCount": 3,
"resolvedHours": 10,
"totalEstimate": 40,
"totalSpent": 20,
"totalTasks": 10
}
}