Diff (and optionally apply) a plan document against the live board
const url = 'https://example.com/api/board/sync-plan';const options = { method: 'POST', headers: { cookie: 'sb-access-token=<sb-access-token>', 'Content-Type': 'application/json' }, body: '{"project_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","mode":"dry_run","plan":{}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/board/sync-plan \ --header 'Content-Type: application/json' \ --cookie sb-access-token=<sb-access-token> \ --data '{ "project_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "mode": "dry_run", "plan": {} }'Parses a plan document, diffs it against the live board (programs, milestones, plan-managed tickets) for the target project, and either reports the diff (mode: dry_run, the default) or applies it (mode: apply). dry_run never touches the DB. apply is refused whole when the diff has conflicts (PLAN_CONFLICT) or when any op fails partway through (PLAN_PARTIAL) — both return the receipt so far for inspection. Board edits are protected (plan rule 11): a field changed on the board since the last sync is reported as a conflict board edit on <kind> <key>: <field> and never overwritten, unless that program, milestone or ticket carries force: true in the plan document (optional boolean per item), which overwrites it with a receipt warning.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
The plan document (programs, milestones, tickets) to diff against the board.
object
Responses
Section titled “ Responses ”Diff report (dry_run) or write receipt (apply)
object
object
object
Full op list — dry_run responses only.
object
Plan failed schema validation
object
object
Not authenticated
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
True if re-linking GitHub may fix the issue
Forbidden
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
Apply blocked by board conflicts, or partially applied
object
object
object
Rate limited
object
Human-readable error message
Stable machine-readable error code for client branching
First validation message per field path
object
Structured validation issues (Zod)
object
Seconds until rate limit resets (429 responses)
Seconds until the rate limit resets