REST API Overview

Every public workspace capability is a typed route under /api/v1, documented in an OpenAPI document served at GET /api/v1/openapi.json.

Every public workspace capability in Dots is a typed HTTP route under /api/v1. The CLI's API-backed families, the web app, and the MCP server front this one surface, so anything they do against the workspace can be done directly against the API.

Envelopes

Responses follow two shapes — a success envelope and an error envelope:

JSON
{ "data": ... }
JSON
{ "error": { "code": ..., "message": ..., "details"?: ... } }

An unmarked request gets exactly { data }. An agent request that sends the x-dots-agent marker also receives a dbom side-channel alongside data. The byte-identity guarantee is scoped to the unmarked HTTP response: without the marker, the response stays { data }, with no extra sibling.

The tenant is never a wire parameter — companyId is injected server-side from the resolved actor. Row sub-resources are scoped by their Dotabase and human id (/dotabases/:dotabaseId/rows/:humanId); flat operations like bulk row ops and edges are keyed by UUID.

Route Groups

The route table registers 433 operations across 67 groups. 63 of those operations are internal-tier: served live, but stripped from the public document — the cross-tenant operator plane and the internal tooling tier.

GroupOperationsInternal
ACCESS300
ACCOUNT20
ADMIN77
AUTOMATIONS110
CHAT SIDEBAR90
CLOUD SYNC80
CODE EXECUTION20
CODE GRAPH80
CODING AGENT91
COMMENT MODERATION30
CONNECTIONS70
CONVERSATIONS165
DERIVE50
TEMPLATES30
DOTABASES160
EDGES100
ENGAGEMENT WRITES30
EXECUTOR44
FILES50
GIT40
GRAPH ANALYTICS20
GRAPH PRECOMPUTE70
GRAPH UNIVERSE10
HOME70
IDENTITY30
MACHINES70
MANUAL30
MARKETPLACE30
MCP10
META80
NOTIFICATIONS110
ONBOARDING117
PAGES110
PLATFORM1818
PLATFORM — MARKETPLACE MODERATION1111
PLAYBOOKS70
PLUGINS60
PRESENCE10
PROVIDERS50
PUBLIC60
PUBLIC CHATWOOT WEBHOOK11
PUBLIC COMMENTS50
PUBLIC ENGAGEMENT30
PUBLIC FEATURE-REQUEST INTAKE20
PUBLIC LICENSE22
PUBLIC MCP22
PUBLICATIONS30
READINESS20
REPO GRAPH191
ROW TEMPLATES70
ROWS320
ROWS — BULK50
SANDBOXES40
SEARCH10
SETTINGS20
SPACES50
STAGE ARTIFACTS11
SUPERPOWERS20
SYNC BINDINGS110
TAGS50
TASKS22
TRANSCRIBE10
USAGE10
USER WORKSPACES40
VIEWS160
WORKSPACE30
WORKSPACE TEMPLATES11

The OpenAPI Document

Every public route is documented in an OpenAPI 3.1.0 document — Dots API — served at GET /api/v1/openapi.json. 63 operations are enrolled in the internal tier and stripped from it, so the served document advertises the public surface alone. That document is the exhaustive, always-current contract for the public API — read it (or point a code generator at it) rather than relying on any hand-maintained list. REST reads return JSON row data; the agent-facing Markdown envelope described in Row Envelope Format is produced by the CLI, MCP text output, and the docs export from that row data.

generator: apps/docs/pipeline/generate-reference.ts — regenerate with pnpm --filter @dots/docs docs:generate:reference; a hand edit to this page fails the docs drift gate.

REST API Overview · This page in the graph

Connected Records16

Documented by
Mentions
DOT
References
16 connections.

Where To Go Next

Reading this as an agent?For Agents
Something wrong on this page?Dots On GitHub