Skip to content

Board HTTP interface

The board’s pages use a small JSON interface, served on 127.0.0.1 by primum serve. {project} is the project’s name.

RouteDoes
GET /p/{project}/api/itemsEvery item, as list --json
POST /p/{project}/api/itemsChange an item: {"id": "87", "impact": 8}
POST /p/{project}/api/newAdd an item: {"kind": "TODO", "title": "...", ...}; returns {"id", "stem"}
POST /p/{project}/api/items/kindMove to a lane: {"id", "kind"}; returns {"old", "new", "stem"}
POST /p/{project}/api/deleteDelete: {"id"}; returns {"removed": [...]}
POST /p/{project}/api/resolveSettle a conflict: {"id", "field", "keep": 1 | 2 | "both"}
GET /p/{project}/api/doc?path=items/87.spec.mdA document’s text
GET /p/{project}/api/history?id=#87History entries, as log --json
GET /p/{project}/api/history/diff?commit=C&path=POne change’s diff

Fields for changes and new items: title, status, impact, urgency, risk, effort (numbers or numeric text), needs ("#1, #2" or a list) and body. Errors are a 4xx status with a message.

Changes made here are the same as on the command line: locked, committed and synced.