List tasks
GET
/v1/tasksCursor-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`.
Required scopes
tasks:read
Availability
All plans
Quota cost
1 API call
Idempotency
Not applicable
Request
Query parameters
| Field | Type | Description |
|---|---|---|
limit | integer | Maximum number of items to return (1-100).e.g. 25 |
after | string | Opaque 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`. |
status | "TODO" | "IN_PROGRESS" | "IN_REVIEW" | "COMPLETED" | "BLOCKED" | Only tasks whose CURRENT version has this status. |
project_id | string | Only tasks whose CURRENT version is linked to this project. |
parent_task_id | string | Only direct subtasks of this task. An unknown (or other-organization) parent answers 404 `resource_not_found`.e.g. T-123 |
archived | "true" | "false" | true = ONLY archived tasks; false (default) = only active tasks. |
Response 200
Page of tasks.
Fields
| Field | Type | Description |
|---|---|---|
datarequired | object[] | The current page of results. |
has_morerequired | boolean | True when another page exists after this one. |
next_cursorrequired | string | null | Opaque cursor for the next page (pass as `after`); null on the last page. |
▸ ▾ Raw response schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Task"
},
"description": "The current page of results."
},
"has_more": {
"type": "boolean",
"description": "True when another page exists after this one."
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque cursor for the next page (pass as `after`); null on the last page."
}
},
"required": [
"data",
"has_more",
"next_cursor"
],
"additionalProperties": false,
"description": "Cursor-envelope page of tasks, most recently updated first."
}Example request
curl
curl -X GET https://app.nowgetitdone.com/v1/tasks \
-H "Authorization: Bearer gid_YOUR_API_KEY"Possible errors
- 400
validation_failedRequest validation failed - 401
missing_credentialsMissing credentials - 401
invalid_api_keyInvalid API key - 401
invalid_tokenInvalid access token - 403
insufficient_scopeInsufficient scope - 403
feature_not_enabledFeature not enabled on this plan - 429
rate_limitedRate limit exceeded - 429
quota_exhaustedPlan quota exhausted - 500
internal_errorInternal server error