`GET /api/projects/{id}/backlog/board` (ADR 0039 S8). Workspace-scoped, member-readable: the per-column Kanban board for a project. The project must belong to the caller's authorized workspace (404 otherwise).
const url = 'https://example.com/api/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/backlog/board';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/projects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/backlog/boardParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Project ID
Responses
Section titled “Responses”The board response: one column per state in BOARD_COLUMN_ORDER (CONTRACT).
object
One board column: a state plus the cards in it (priority ASC NULLS LAST then
created_at — the order list_backlog_items already returns).
object
One backlog card on the board (ADR 0039 S8 CONTRACT). updated_at is RFC3339.
gates_green means precisely “a human drag → done will be ACCEPTED right
now” (BE3): the INDEPENDENT audit passed (a backlog.awaiting_human_merge
audit row exists) AND the item is CURRENTLY in_review (the state = 'in_review' filter — the merge gate refuses to release any non-in_review
item, BE1 — so a parked card carrying a stale marker reads false). It is NOT “merged” and
NOT “awaiting release”; the FE uses it to decide whether to offer the drag →
done gesture. The reviewer bar (required_reviewers) is orthogonal — a green
item may still need N human approvals, which the drag → done records.
object
#532 (U2) — the classification SCOPE axis (small|medium|large), None
until classified.
The issue SOURCE (linear | notion | a git-provider name), #708 X3 (was tracker).
Examplegenerated
{ "columns": [ { "items": [ { "external_id": "example", "gates_green": true, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "kind": "example", "last_error": "example", "priority": 1, "readiness": "example", "run_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "scope": "example", "source": "example", "state": "example", "title": "example", "updated_at": "example" } ], "state": "example" } ]}