GetItDoneGetItDone Docs
API ReferenceTask dependencies

Record a blocker

Records that the task in the path is blocked by `blocker_task_id` — the SAME operation the MCP `link_task_dependency` tool executes. Recording a link that already exists succeeds unchanged (no duplicate row, no second webhook), so retries are safe. A link that would close a loop is REFUSED with 409 `dependency_cycle`: the graph a client reads is guaranteed acyclic. A task cannot block itself (400 `validation_failed`), and a blocker in another organization is indistinguishable from one that does not exist (404 `resource_not_found`). Answers the task's full dependency view, so the caller can see whether it is now blocked without a second call.

POST
/v1/tasks/{task_id}/dependencies

Records that the task in the path is blocked by blocker_task_id — the SAME operation the MCP link_task_dependency tool executes. Recording a link that already exists succeeds unchanged (no duplicate row, no second webhook), so retries are safe. A link that would close a loop is REFUSED with 409 dependency_cycle: the graph a client reads is guaranteed acyclic. A task cannot block itself (400 validation_failed), and a blocker in another organization is indistinguishable from one that does not exist (404 resource_not_found). Answers the task's full dependency view, so the caller can see whether it is now blocked without a second call.

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

Header Parameters

Idempotency-Key?string

Optional client-generated key (1-255 visible ASCII characters; a UUID works) making this POST safely retryable. Retrying with the SAME key and byte-identical body within 24h replays the stored first response (marked Idempotency-Replayed: true, never re-executed, never charged against quota). The same key with a different body answers 422 idempotency_key_reused; a retry racing the first execution answers 409 idempotency_in_progress. Omitting the header executes normally with no idempotency guarantee.

Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

The blocker to record for the task in the path.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/tasks/string/dependencies" \  -H "Content-Type: application/json" \  -d '{    "blocker_task_id": "string"  }'
{  "task_id": "string",  "is_blocked": true,  "blocked_by_count": -9007199254740991,  "blocking_count": -9007199254740991,  "blocked_by": [    {      "task_id": "string",      "title": "string",      "status": "TODO",      "open": true    }  ],  "blocking": [    {      "task_id": "string",      "title": "string",      "status": "TODO",      "open": true    }  ]}