Skip to content

HTTP API

The FastAPI server (riptide serve, the [server] extra) exposes the routes below. It binds 127.0.0.1:8000 by default and serves the Studio SPA at /. Interactive OpenAPI docs are at /docs.

Warning

The API is unauthenticated and meant for local/trusted use. Put an auth proxy in front before exposing it.

Core run

Method Path Purpose
GET /healthz liveness probe
POST /run run a task → RunResult (all knobs: critic, supervisor, react_steps, vote_k, sampling, final_schema)
GET /run/stream SSE — stream the final answer word-by-word
GET /api/run/trace SSE — live node trace then the final RunResult

Streaming & interactive HITL

Method Path Purpose
GET /api/chat/stream SSE — token-by-token chat (stream_chat_tokens)
POST /api/run/interactive run with auto_approve=False; returns pending_approval or a RunResult
POST /api/run/{thread_id}/resume approve/deny (or answer a clarification) and continue

OpenAI-compatible

Method Path Purpose
POST /v1/chat/completions OpenAI chat-completions (non-stream + stream=true SSE) — see OpenAI-compatible API

Sessions

Method Path Purpose
POST /sessions/{id}/messages append a turn; run with the session's history
GET /sessions/{id} the transcript
GET /api/sessions/{id}/messages/stream SSE — node trace; appends the turn on completion
DELETE /sessions/{id} clear the session

Catalog & insights

Method Path Purpose
GET /api/meta version, knob defaults, models, tool/role counts, connection + mcp summary
GET /api/tools · /api/roles the tool / role catalogs
POST /api/tools/{name}/invoke run a read-only tool (side-effecting → 400)
POST /api/eval run the eval suite → EvalReport
GET /api/costs · /api/monitoring per-tenant costs / aggregated monitoring

Connections

Method Path Purpose
GET /api/connection provider/model/status (key masked, never echoed)
POST /api/connection set provider + model + key (in-memory; mirrors to env)
POST /api/connection/test ping the configured gateway

MCP

Method Path Purpose
GET /api/mcp allowlist entries + connection state
POST /api/mcp/connect · /api/mcp/disconnect connect/disconnect a gated, allowlisted server

Workflows

Method Path Purpose
GET/POST /api/workflows list / save (upsert)
GET/DELETE /api/workflows/{name} load / delete
POST /api/workflows/run run a spec → RunResult
GET /api/workflows/run/stream run with an SSE node trace

Status codes

  • 402 — a per-tenant budget ceiling was exceeded (BudgetExceeded)
  • 422 — invalid workflow spec (cycle, dangling edge, …) or request body
  • 400 — bad tool args / a side-effecting tool on the read-only invoke path / a resume error
  • 404 — unknown tool / workflow / MCP server
  • 403 — MCP connect with the gate off