Admin endpoints
Dashboard-only. Send X-OpenRoadmap-Session from POST /v1/auth/login. Demo auth is magic-link style without an external IdP.
POST/v1/auth/login
public{ "email": "admin@acme.test" }Returns token, user, organization, and default project.
GET/v1/me
sessionCurrent user + org + projects.
GET/v1/stats
sessionHome metrics. Optional ?projectId=.
GET/v1/inbox
sessionOpen submissions. ?type=all|feature|bug|question|general.
POST/v1/features
session{ "submissionId": "<uuid>", "title": "Optional title" }POST/v1/features/:id/merge
session{ "submissionId": "<uuid>" }PATCH/v1/features/:id/status
session{
"status": "in_progress",
"roadmapColumn": "now"
}Statuses: new → under_review → planned → in_progress → shipped (+ declined, duplicate, archived). Notifies followers; portal link uses /feature/view/?slug=.
GET/v1/features
sessionGET/v1/features/:id
sessionPATCH/v1/submissions/:id/archive
sessionGET/v1/widget-settings
sessionPATCH/v1/widget-settings
sessionPartial update of greeting, mascot, capture flags, colors, position.
GET/v1/emails/outbox
sessionRecent queued / sent mail (demo-friendly without Resend).
Warning
Production should replace demo login with your IdP and mint short-lived session tokens server-side. Do not expose service-role database keys to the browser.