Endpoints
This page has been cleared and is ready for updated Builder Studio documentation.
This is the reference for the HTTP routes BuilderStudio actually serves. They split into the MCP gateway, the direct programmatic API, the MCP tool-backing routes (which the gateway calls and you can also call directly), and the webhook endpoints. Every route below takes an Authorization: Bearer builder_… key unless noted otherwise.
<deployment>.convex.site host. Paths are stable; the host depends on your deployment.MCP gateway
| Method & path | Description |
|---|---|
POST /api/mcp | JSON-RPC Model Context Protocol endpoint. Carries tools/list, tools/call, and the rest of the MCP protocol. |
GET /api/mcp, DELETE /api/mcp | MCP streamable-HTTP session transport methods. |
OPTIONS /api/mcp | CORS preflight. |
Accepts a builder_ key or an OAuth 2.1 bearer token. Browser-originated requests must come from an allowed BuilderStudio origin. See Builder MCP & CLI for client setup.
Direct programmatic API
| Method & path | Description | Scope |
|---|---|---|
POST /api/run | Trigger a workflow run on a canvas. Body: canvasId, triggerNodeId, optional inputs, sync, timeoutSeconds, callbackUrl, idempotencyKey. | run:workflows |
GET /api/canvases | List canvases in the key's workspace (id, name, workspaceId, updatedAt). | read:canvases |
GET /api/executions?executionId=… | Read one execution's status snapshot. | run:workflows |
GET /api/verify-key | Return the key's resolved workspaceId and scopes. | workspace-scoped key |
Run a workflow
curl -X POST https://<deployment>.convex.site/api/run \ -H "Authorization: Bearer builder_..." \ -H "Content-Type: application/json" \ -d '{ "canvasId": "<id>", "triggerNodeId": "<nodeClientId>", "inputs": {}, "sync": true }' # 202 (async) -> { "ok": true, "executionId": "exec_...", "message": "Execution triggered" }# 200 (sync) -> terminal execution snapshot# poll status -> GET /api/executions?executionId=exec_...The triggerNodeId must reference a trigger-capable node on the canvas (a prompt or webhook-trigger node); other node types are rejected with 400.
MCP tool-backing routes (/api/mcp/*)
These Convex HTTP routes implement the BuilderStudio tools. The MCP gateway calls them, and you can call them directly with a builder_ key. Each enforces a specific scope. The list below is grouped by area; all are workspace-scoped.
Canvas authoring
GET /api/mcp/canvas/state read:canvases canvas + nodes + edgesGET /api/mcp/canvas/assets read:canvases list canvas assetsGET /api/mcp/canvas/executions read:canvases recent runs for a canvasGET /api/mcp/canvas/ports/manifest read:canvases node port manifestPOST /api/mcp/canvas/create write:canvasPOST /api/mcp/canvas/rename write:canvasPOST /api/mcp/canvas/archive write:canvasPOST /api/mcp/canvas/restore write:canvasPOST /api/mcp/canvas/delete delete:canvasPOST /api/mcp/canvas/patch write:canvas bulk node/edge opsPOST /api/mcp/canvas/fit-viewport write:canvasPOST /api/mcp/canvas/ports/validate read:canvasesPOST /api/mcp/canvas/node/add write:canvasPOST /api/mcp/canvas/node/update write:canvasPOST /api/mcp/canvas/node/document-write write:canvasPOST /api/mcp/canvas/node/move write:canvasPOST /api/mcp/canvas/node/resize write:canvasPOST /api/mcp/canvas/node/delete write:canvasPOST /api/mcp/canvas/edge/add write:canvasPOST /api/mcp/canvas/edge/delete delete:canvasPOST /api/mcp/canvas/r2-upload/reserve|verify|finalize|promote-library|cancel write:canvas (asset upload lifecycle)Executions
GET /api/mcp/executions/timeline run:workflowsGET /api/mcp/executions/outputs run:workflows step outputs for a runPOST /api/mcp/executions/cancel run:workflowsPOST /api/mcp/executions/replay run:workflowsPOST /api/mcp/executions/redrive run:workflowsWorkspace & assets
GET /api/mcp/workspace/info read:canvasesGET /api/mcp/workspace/members read:canvasesPOST /api/mcp/workspace/rename manage:integrationsPOST /api/mcp/workspace/invite manage:integrationsPOST /api/mcp/workspace/invite/revoke manage:integrationsPOST /api/mcp/workspace/remove-member manage:integrations # Workspace asset routes accept either-of two scopes:# read = read:assets OR read:canvases# write = write:assets OR write:canvas# delete = delete:assets OR write:canvasGET /api/mcp/workspace/assets read (either-of)GET /api/mcp/workspace/assets/detail read (either-of)GET /api/mcp/workspace/assets/usages read (either-of)POST /api/mcp/workspace/assets/upload/reserve|finalize|cancel write (either-of)POST /api/mcp/workspace/assets/rename|move|tags write (either-of)POST /api/mcp/workspace/assets/place write:canvasPOST /api/mcp/workspace/assets/restore write (either-of)POST /api/mcp/workspace/assets/trash|purge delete (either-of)API keys, templates, integrations
GET /api/mcp/api-keys/list manage:integrationsPOST /api/mcp/api-keys/create manage:integrationsPOST /api/mcp/api-keys/revoke manage:integrations GET /api/mcp/templates/list read:canvasesGET /api/mcp/templates/snapshot read:canvasesPOST /api/mcp/templates/use write:canvasPOST /api/mcp/templates/publish write:canvasPOST /api/mcp/templates/delete write:canvas GET /api/integrations/service-statusGET /api/integrations/connections manage:integrationsPOST /api/integrations/connections manage:integrations (upsert BYO credential)POST /api/integrations/connections/revoke manage:integrationsGET /api/integrations/providersGET|POST /api/integrations/policies manage:integrations GET /api/mcp/github/installations|repositories|repository|files/search read:canvasesGET /api/mcp/github/repositories/sync-target manage:integrationsPOST /api/mcp/github/repositories/sync manage:integrationsPOST /api/mcp/github/source-links/attach write:canvasPOST /api/mcp/github/exports/draft-pr/prepare|result manage:integrationsGET /api/mcp/google-workspace/connection manage:integrationsBilling
GET /api/mcp/credits/balance read:billingGET /api/mcp/credits/transactions read:billingGET /api/mcp/billing/summary read:billingGET /api/billing/focus-export read:billing FOCUS JSONL/CSVGET /api/billing/focus-metadata read:billing FOCUS dataset metadataSee Billing & Usage Export for details.
Webhooks
| Method & path | Description |
|---|---|
GET|POST|PUT|PATCH|DELETE /webhook/trigger | Inbound webhook that fires a webhook-trigger node. Authenticated by the per-trigger secret as a bearer token. |
POST /api/mcp/webhooks/register | Create or retrieve the webhook URL + secret for a webhook-trigger node (scope write:canvas). |
OAuth 2.1 discovery is published at /.well-known/oauth-authorization-server and /.well-known/openid-configuration for MCP clients that authenticate via OAuth. Full webhook flow is in Webhooks.
Was this page helpful?