API routes are defined in routes/api.js. This page captures the primary contracts used by UI and tests.
- Returns CSV column SSOT:
{ columns: string[] }
- Returns discovered boards for selected projects
- Success:
{ projects: string[], boards: Array<{ id, name, type, projectKey }>, jiraErrors?: [] }
- Errors:
400withcode: NO_PROJECTSwhen no projects selected502withcode: JIRA_UNAUTHORIZEDwhen all selected projects fail auth/forbidden
- Query:
boardId(optional)projects(optional CSV, defaults apply)
- Returns:
{ board: { id, name, projectKey }, sprints: [] }
- Query:
boardId(required)sprintId(optional)projects(optional)live=trueorrefresh=truebypasses snapshot cache
- Returns current sprint transparency payload used by
/current-sprint
- Query:
projects(optional CSV)
- Returns leadership HUD summary payload
- Report preview endpoint used by
/report - Protected by auth middleware when auth is enabled
GET /api/date-range?quarter=Q1|Q2|Q3|Q4GET /api/quarters-list?count=8GET /api/default-windowGET /api/format-date-range?start=...&end=...
POST /exportfor CSV streamPOST /export-excelfor Excel workbook stream
GET /api/user-context/reportPOST /api/user-context/reportPOST /api/current-sprint-notes
POST /api/outcome-draftPOST /api/outcome-from-narrative
POST /feedbackPOST /api/test/clear-cache(available only in test mode or when enabled by env)GET /api/cache-metrics
- Endpoints use
requireAuth - JSON/
/api/*unauthenticated responses return HTTP 401 with structured payloads