GetItDoneGetItDone Docs

List task history

Cursor-paginated, read-only version history of a task, newest first — every content change (in-app, MCP or this API) is an immutable version snapshot. This is the ONE endpoint where versions surface; their ids are accepted nowhere else.

GET
/v1/tasks/{task_id}/history

Cursor-paginated, read-only version history of a task, newest first — every content change (in-app, MCP or this API) is an immutable version snapshot. This is the ONE endpoint where versions surface; their ids are accepted nowhere else.

Authorization

bearerAuth
AuthorizationBearer <token>

A gid_ API key (Settings → API keys) or an OAuth 2.1 access token.

In: header

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}$

Query Parameters

limit?integer

Maximum number of items to return (1-100).

Range1 <= value <= 100
Default25
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.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/tasks/string/history"
{  "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,      "created_at": "2019-08-24T14:15:22Z"    }  ],  "has_more": true,  "next_cursor": "string"}