List tasks
Lists tasks, a page at a time. Only active tasks come back unless you ask
for others with filter[scope].
Descriptions are left out of list responses — retrieve a task on its own
to read description_html or description_plain_text.
billable is left out entirely for a token that is not allowed to see
billing. Treat it as an optional key rather than assuming it is always
there.
Filtering
-
filter[assignee_id]— one or more user ids, ormefor whoever the token belongs to. Note this takes a user id, not a team member id. -
filter[scope]— which tasks to include:active(the default),completed,archived,all,my_tasks,planned(has a due date),unplanned(has none) orupcoming_and_overdue. -
filter[due]— a named date window:today,overdue,today_or_overdue,this_week,this_monthorupcoming. Cannot be combined withfilter[due_from]orfilter[due_to]. -
filter[due_from]andfilter[due_to]— an explicit date range. Either bound works on its own. filter[priority]— one or more ofurgent,high,medium,low.filter[project_id]— one or more project ids.filter[tag_id]— one or more tag ids.-
filter[task_status_id]— one or more task status ids. This one also widens the default scope: tasks in the given columns come back whether they are active, completed or archived. filter[title]— searches task titles, ignoring case.
- Type: integerpage[number]min:1
Page to return, starting at 1.
- Type: integerpage[size]min:1max:100
Records per page. Defaults to 25; anything above 100 is reduced to 100.
- Type: stringfilter[assignee
_id] One or more user ids, comma-separated or repeated. Pass
mefor whoever the token belongs to. - Type: string enumfilter[scope]
Which tasks to include. Defaults to
active.values- active
- completed
- archived
- all
- upcoming
_and _overdue - unplanned
- planned
- my
_tasks
- Type: string enumfilter[due]
A named due-date window. Cannot be combined with
filter[due_from]orfilter[due_to].values- today
- overdue
- today
_or _overdue - this
_week - this
_month - upcoming
- Type: string Format: datefilter[due
_from] Return tasks due on or after this date.
- Type: string Format: datefilter[due
_to] Return tasks due on or before this date.
- Type: stringfilter[priority]
One or more priorities, comma-separated or repeated.
- Type: stringfilter[project
_id] One or more project ids, comma-separated or repeated.
- Type: stringfilter[tag
_id] One or more tag ids, comma-separated or repeated.
- Type: stringfilter[task
_status _id] One or more task status ids, comma-separated or repeated. Returns tasks in those columns whether they are active, completed or archived.
- Type: stringfilter[title]
Searches task titles, ignoring case.
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://app.hellobonsai.com/public-api/v1/tasks \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
"data": [
{
"uuid": "ad3fdad8-5072-46df-8800-bb57299179df",
"title": "Finalize homepage mockups",
"number": "ACME-00104",
"due_date": "2026-05-15",
"start_date": "2026-05-01",
"time_estimate_in_minutes": 90,
"priority": "high",
"completed_at": "2026-04-14T09:12:04.000Z",
"archived_at": "2026-04-14T09:12:04.000Z",
"assignee_id": 6012,
"assignee_member_id": 314,
"creator_member_id": 315,
"project_id": 51,
"billable": true,
"parent_task_uuid": "e5b1c7d2-91aa-4f30-8f6d-2c1b4a5e7f80",
"project_title": "Acme Website",
"assignee_member_name": "Maria Santos",
"url": "https://app.hellobonsai.com/tasks/ad3fdad8-5072-46df-8800-bb57299179df",
"task_status": {
"id": "e1c4b06e-3a0f-4a52-9c8f-6a1d2b3c4d5e",
"status": "In Progress",
"state": "active",
"color": "#520EB0",
"position": 1
},
"company_tags": [
{
"id": 7,
"name": "VIP"
}
]
}
],
"meta": {
"request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e",
"pagination": {
"page": 1,
"page_size": 25,
"has_more": true
}
}
}