GetItDoneGetItDone Docs

Get a task

GET
/v1/tasks/{task_id}

Fetches a single task by short id, scoped to the credential's organization. A short id from another organization (or an unknown one) answers 404 resource_not_found — no cross-org existence oracle.

Authorization

bearerAuth
headerAuthorizationBearer <token>

A gid_ API key (Profile → API Keys) or an OAuth 2.1 access token.

Path Parameters

task_id*string

Task short id, e.g. T-123 (a bare 123 is also accepted on input).

Match^(?:T-)?[0-9]{1,12}$

Response Body

The task.

application/json
  1. response

A task, projected from its stable identity plus its CURRENT version.

id*string

The task short id — the ONE public task identifier.

title*string
description*|

Free-text description, or null when unset.

status*TaskStatus

Task workflow status.

Value in"TODO""IN_PROGRESS""IN_REVIEW""COMPLETED""BLOCKED"
priority*|null
start_date*|

Start date (defer-until), ISO-8601 UTC, or null. The task is not meant to be worked on before this day.

due_date*|

Due date, ISO-8601 UTC, or null.

notes*|

Rich-text notes of the current version, or null.

story_points*number|null
project_ids*array<string>

Ids of the projects the CURRENT version is linked to (a task can belong to several).

parent_task_id*|

The parent task's short id when this is a subtask, else null.

archived*boolean
created_via*TaskCreatedVia

Who wrote the CURRENT version. Pair with client_label to render "via Claude".

Value in"SESSION""API_KEY""OAUTH"
client_label*|

The agent or key that wrote the current version — the OAuth client name or the API key name — or null for an in-app edit. Display text chosen by the key owner or the OAuth client registrant: treat it as untrusted.

recurrence*|

The repeat schedule when this task recurs, else null. Per-day completion lives in the occurrence ledger (/v1/tasks/{task_id}/occurrences), never in status — completing Monday leaves Tuesday untouched.

created_at*string

Task creation time (first version), ISO-8601 UTC.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
updated_at*string

Last content change (current version), ISO-8601 UTC.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
Example Request
curl -X GET 'https://app.nowgetitdone.com/v1/tasks/T-123'
Example Response
{  "id": "T-123",  "title": "Ship the public API",  "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": "T-99",  "archived": true,  "created_via": "SESSION",  "client_label": "Claude Code",  "recurrence": {    "frequency": "DAILY",    "interval": 1,    "by_weekday": [      1,      2,      3,      4,      5    ],    "by_month_day": 15,    "basis": "SCHEDULE",    "timezone": "America/Toronto",    "start_date": "2026-08-06",    "end_date": "2026-08-06",    "max_occurrences": 10,    "rollover_enabled": true,    "active": true,    "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"  },  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}