Action API
POST/listTasksAPI v2

List tasks

2 min readProjectsView as Markdown

POST /listTasks

List tasks in a project

Base URL: https://www.taskade.com/api/v2

Authentication

Send a personal access token or an OAuth 2.0 access token as a bearer token. Create a personal access token at taskade.com/settings/api.

Http
Authorization: Bearer tskdp_your_token_here

Request body

application/json

Field Type Required Description
projectId string Yes The project ID to list tasks for
limit number No —
after string No Cursor: task ID to get tasks after (do not combine with before)
before string No Cursor: task ID to get tasks before (do not combine with after)
completed boolean No Set false to list only open tasks, or true to list only completed ones. Leave it out to list both. The filter reads each task's own flag, and the cursors and limit apply to the filtered list.

Example request

Bash
curl -X POST "https://www.taskade.com/api/v2/listTasks" \
  -H "Authorization: Bearer $TASKADE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"<projectId>"}'

Responses

200 — Default response

Field Type Required Description
ok boolean Yes —
items object[] Yes —
items[].id string Yes —
items[].text string Yes —
items[].parentId string No —
items[].completed boolean Yes —

A nested field marked Yes is required whenever its parent object is present.

Errors

Errors return an ok: false envelope. Rate limiting returns 429 with x-rate-limit-limit, x-rate-limit-remaining and x-rate-limit-reset headers. x-rate-limit-reset is the number of seconds until the window reopens. Retry-After is not sent, so schedule retries from x-rate-limit-reset; retrying sooner will fail again.

Json
{ "ok": false, "message": "Unauthorized", "code": "UNAUTHORIZED" }

Rate limits for this version: enforced per endpoint; ceilings are not published and can change without notice. A 429 response carries x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset (seconds until the window reopens). Back off from those headers rather than hardcoding numbers. If you need sustained throughput, prefer batching (operations like /createTask accept arrays) over tightening polling loops. See Rate limits.