API overview

July 19, 2026 ยท View on GitHub

The local API serves on http://localhost:8000.

If FLOOM_SECRET is set, API requests require:

x-floom-secret: <your secret>

Shared-secret requests are member-scoped by default. Set WORKEROS_SHARED_SECRET_ROLE=admin only for deployments that intentionally need legacy admin-equivalent shared-secret access.

If FLOOM_SECRET is unset, local development runs without the operator secret. For the exhaustive route reference, start the API and open http://localhost:8000/docs.

Common endpoints

This page is a curated map of the main surfaces. It is not a replacement for the generated OpenAPI docs.

Workers

EndpointMethodDescription
/workersGETList workers
/workers/{id}GETWorker detail, including missing secrets/connections
/workers/reloadPOSTReload workers from disk
/workers/{id}/runsPOSTTrigger a run
/workers/import-from-sharePOSTImport a worker from a public share token

Runs and approvals

EndpointMethodDescription
/runsGETList runs
/runs/{id}GETRun detail, logs, tool calls, approvals, and outputs
/runs/{id}/approvePOSTApprove a pending run
/runs/{id}/rejectPOSTReject a pending run
/runs/{id}/feedbackGET/POSTList or leave lightweight run feedback. Feedback remains a quality signal until explicitly promoted.
/runs/{id}/feedback/issuePOSTConvert actionable run feedback into a workspace issue bound to the run (asset_type=run, source=run_feedback, label run-feedback). Opt-in; a stable feedback_id dedups (returns the existing issue with created=false, 200).
/approvalsGETList pending approvals

Uploads and file inputs

EndpointMethodDescription
/uploadsPOSTMultipart upload; returns the content-addressed SHA-256 reference
/uploads/{sha256}GETSigned-token download of an uploaded blob
/uploads/{sha256}DELETEDrop ownership; blob is GC'd when unreferenced

A worker's type: file inputs accept any of these value forms in POST /workers/{id}/runs (#2265):

  • a SHA-256 reference from POST /uploads (or the files.upload MCP tool);
  • inline text content as a plain string โ€” uploaded transparently through the same pipeline (allowlists, size caps, quota, ownership all still apply);
  • {"content": "...", "filename": "notes.txt"} or {"content_base64": "...", "filename": "data.bin"} for explicit filenames or binary content.

Values matching a hex digest shape that are not a valid 64-char lowercase SHA-256 are rejected with 400 instead of being treated as inline content, so a typo'd reference never silently becomes a file body. MCP agents can mint a reference with the files.upload tool, and workers.sample_input examples for file inputs are inline text that workers.run accepts directly.

Connections and secrets

EndpointMethodDescription
/connectionsGETList connections
/connections/{id}GETConnection detail
/connections/{id}/activityGETRecent runs that used this connection
/connections/{id}/peekGETPrivacy-conscious preview for supported connections
/connections/secretsGETList secret metadata

Workspace issues

Git-backed operating record stored under .floom/issues/ in the workspace git repo (no GitHub Issues, no provider sync, no database table). See git-workspace.md.

EndpointMethodDescription
/workspace/issuesGETList issues; filter by status, label, asset_type, asset_id
/workspace/issues/{id}GETIssue detail with comments
/workspace/issuesPOSTCreate an issue (optionally bound to a worker/context/run)
/workspace/issues/{id}PATCHUpdate title/body/status/labels/asset binding
/workspace/issues/{id}/commentsPOSTAppend a comment

Issues ride the workspace git source of truth, so a git remote clone/push and the cloud bundle flow preserve them automatically. The curated /workspace/export + /workspace/import template bundle preserves them explicitly: issue files are written under issues/ in the zip and restored into .floom/issues/ on import (existing ids are never clobbered).

Auth and system

EndpointMethodDescription
/auth/magic-linkPOSTIssue a short-lived personal sign-in URL
/auth/magic/{token}GETConsume a magic-link token and create a session
/composio-eventsPOSTSigned Composio webhook receiver
/healthzGETHealth check
/system/overviewGETOverview stats and setup alerts