List tasks
Cursor-paginated list of the credential organization's tasks (current version of each), most recently updated first. Filters: `status`, `project_id`, `parent_task_id` (subtasks of one task) and `archived` (default false — archived tasks are excluded). Every filter is baked into the cursor: reusing an `after` cursor with different filters answers 400 `validation_failed`.
Cursor-paginated list of the credential organization's tasks (current version of each), most recently updated first. Filters: status, project_id, parent_task_id (subtasks of one task) and archived (default false — archived tasks are excluded). Every filter is baked into the cursor: reusing an after cursor with different filters answers 400 validation_failed.
Authorization
bearerAuth A gid_ API key (Settings → API keys) or an OAuth 2.1 access token.
In: header
Query Parameters
Maximum number of items to return (1-100).
1 <= value <= 10025Opaque cursor from a previous page's next_cursor — omit for the first page. Reusing a cursor with DIFFERENT query parameters (e.g. a different limit) answers 400 validation_failed.
Only tasks whose CURRENT version has this status.
Value in
- "TODO"
- "IN_PROGRESS"
- "IN_REVIEW"
- "COMPLETED"
- "BLOCKED"
Only tasks whose CURRENT version is linked to this project.
Only direct subtasks of this task. An unknown (or other-organization) parent answers 404 resource_not_found.
^(?:T-)?[0-9]{1,12}$true = ONLY archived tasks; false (default) = only active tasks.
"false"Value in
- "true"
- "false"
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/tasks"{ "data": [ { "id": "string", "title": "string", "description": "string", "status": "TODO", "priority": "LOW", "start_date": "2019-08-24T14:15:22Z", "due_date": "2019-08-24T14:15:22Z", "notes": "string", "story_points": 0, "project_ids": [ "string" ], "parent_task_id": "string", "archived": true, "recurrence": { "frequency": "DAILY", "interval": -9007199254740991, "by_weekday": [ -9007199254740991 ], "by_month_day": -9007199254740991, "basis": "SCHEDULE", "timezone": "string", "start_date": "string", "end_date": "string", "max_occurrences": -9007199254740991, "rollover_enabled": true, "active": true, "rrule": "string" }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "has_more": true, "next_cursor": "string"}Complete or skip one day PATCH
Marks ONE day of a repeating task completed or skipped — the SAME shared operation the MCP `complete_task_occurrence` tool executes. The day may be in the PAST ("I brushed my teeth yesterday") or a scheduled FUTURE day finished early; neither breaks the chain, and neither touches any other day or the task's own `status`. Re-sending the state a day is already in is a no-op success, so retries are safe. A day the schedule does not produce (or a task that does not repeat) answers 404 `resource_not_found`.
Create a task POST
Creates a task in the credential's organization, owned by the credential's user — the SAME operation the external MCP `create_task` tool executes. `project_id` / `parent_task_id` additionally link the new task org-scoped (unknown ids answer 400 `validation_failed`). Supports the optional `Idempotency-Key` header for exactly-once retries.