Skip to main content

REST API

Plain HTTP with an x-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 the x-bossmode-token header:
Obtain your token from the workspace settings page at 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 from lib/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

Always include requestId when filing a support ticket.

Idempotency

Mutation endpoints accept Idempotency-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

Response includes signals, work packets, standing orders, metrics, audit feed, guardian state, and the AvatarCzar persona payload — everything the consigliere reads to decide what to do next.

Example: queue a directive

The response returns { directiveId, approvalId, status: "pending_approval" }. Approve via /api/pro/approvals or the CLI.