REST API
Plain HTTP with anx-bossmode-token header. Every surface BossMode offers — context, directives, approvals, reports, packs, devices, revenue events, guardian, AvatarCzar — is reachable over standard HTTPS and rate-limited per workspace.
Reach for the REST API when your caller is your own Node or Python pipeline, a CI runner shipping without Node installed, or any integration where adding an MCP host or the CLI would be overkill. The same x-bossmode-token used by the CLI and the MCP server works here — one token, three surfaces.
Base URL
Authentication
All Pro API routes require thex-bossmode-token header:
bossmode.ing/app/<workspace>/settings/api.
Unauthenticated requests to Pro routes return 401 Unauthorized. Admin routes (/api/admin/*) use a separate admin session cookie — not the Pro token.
Rate limits
Rate limits are applied per IP per route. Limits are sourced fromlib/api-rate-limit.ts.
When a limit is exceeded the response is
429 Too Many Requests with headers:
OpenAPI spec
An OpenAPI spec is not currently served at/openapi.json. The route table below is maintained from lib/api-rate-limit.ts, which is the source of truth.
Common routes
Error shape
requestId when filing a support ticket.
Idempotency
Mutation endpoints acceptIdempotency-Key headers. Replaying a request with the same key returns the original result without double-executing. Keys are good for 24 hours.
Timestamps
All timestamps are Unix milliseconds (Date.now() in JavaScript). Same shape in Convex and in the API.
Example: pull the full brief
Example: queue a directive
{ directiveId, approvalId, status: "pending_approval" }. Approve via /api/pro/approvals or the CLI.