This page is the public browser-readable guide for the Kanbalone JSON API.
Data Model And Concepts
Core Model
- Boards contain lanes, tags, and tickets.
- Lanes represent workflow position.
isResolvedis the API field for the Resolved state and is independent from the lane.isArchivedhides tickets from normal board lists.- Tags are scoped to a board.
- Comments belong to tickets.
- Blockers and parent/child links model ticket relationships.
Remote Issue Workspace
- Kanbalone is not a replacement for a remote issue tracker. It is a local execution workspace for remote issues from systems such as GitHub Issues, GitLab, and Redmine.
- Tickets imported from a remote system include
remotemetadata. - In a remote tracked ticket,
titleis a remote-owned read-only value. bodyMarkdownbecomes the local body where you build implementation context and AI-facing instructions.remote.bodyMarkdown/remote.bodyHtmlare read-only snapshots.- Only comments are pushed back to the remote issue.
Ticket State
laneIdandisResolvedare separate fields. In the UI,isResolvedis shown as Resolved.- Archived tickets are hidden from board lists by default.
- Tickets include canonical refs:
refandshortRef. - The UI and API use the same priority scale:
1 = low,2 = medium,3 = high, and4 = urgent.
Relationships
- A blocker means "this ticket is blocked by these tickets".
- Reciprocal blockers are not allowed.
- Parent/child depth is limited to one level.
API Semantics
GET /api/boards/:boardIdreturns the board shell only: board, lanes, and tags.- Tickets are fetched separately with
GET /api/boards/:boardId/tickets. - The ticket list route returns lightweight summaries for board rendering and automation scans.
- Use
GET /api/tickets/:ticketIdfor full ticket detail. - Use board-scoped bulk endpoints for batch resolved state and lane-name-based transitions.
- Use dedicated endpoints for remote import, remote refresh, and remote comment push.