Skip to content

Flightdeck — REST API Reference

Auto-Generated

This file is auto-generated by scripts/generate-api-docs.mjs. Do not edit manually. Run npm run docs:generate-api to regenerate.

Base URL: http://localhost:3001/apiAuthentication: Bearer token (auto-generated on server start) Content-Type: application/json for all request bodies Timestamps: ISO 8601 throughout (e.g. 2025-03-01T10:30:00Z)

Table of Contents


Agent Management

GET /agents

List agents

NameInRequired
projectIdqueryno
sessionIdqueryno

POST /agents

Create agent

Rate limited: spawnLimiter, body validation

NameInRequired
roleIdbody
taskbody
modelbody
providerbody
sessionIdbody

Status codes: 400 · 201


DELETE /agents/:id

Delete agent

NameInRequired
idpathyes

POST /agents/:id/terminate

terminate

NameInRequired
idpathyes

POST /agents/:id/interrupt

interrupt

NameInRequired
idpathyes

Status codes: 404


POST /agents/:id/restart

restart

NameInRequired
idpathyes

Status codes: 404 · 201


POST /agents/:id/compact

compact

NameInRequired
idpathyes

Status codes: 404 · 500 · 201


GET /agents/:id/plan

NameInRequired
idpathyes

Status codes: 404


GET /agents/:id/messages

NameInRequired
idpathyes
limitqueryno
includeSystemqueryno

POST /agents/:id/input

input

Rate limited: body validation

NameInRequired
idpathyes
textbody

Status codes: 404


POST /agents/:id/message

message

Rate limited: messageLimiter, body validation

NameInRequired
idpathyes
textbody
modebody
attachmentsbody

Status codes: 404


PATCH /agents/:id

Update agent

NameInRequired
idpathyes
modelbody

Status codes: 404


GET /agents/:id/queue

NameInRequired
idpathyes

Status codes: 404


DELETE /agents/:id/queue/:index

Delete agent

NameInRequired
idpathyes
indexpathyes

Status codes: 404 · 400


POST /agents/:id/queue/reorder

reorder

NameInRequired
idpathyes
frombody
tobody

Status codes: 404 · 400


GET /agents/:id/focus

NameInRequired
idpathyes
activityLimitqueryno
outputLimitqueryno

Status codes: 404


GET /agents/:id/tasks

NameInRequired
idpathyes

Status codes: 500


Lead Agent

POST /lead/start

start

Rate limited: spawnLimiter

NameInRequired
taskbody
namebody
modelbody
cwdbody
sessionId:body
projectIdbody

Status codes: 500


GET /lead

List lead

NameInRequired
projectIdqueryno

GET /lead/:id

Get lead by ID

NameInRequired
idpathyes

Status codes: 404


POST /lead/:id/message

message

Rate limited: messageLimiter, body validation

NameInRequired
idpathyes
textbody
modebody
attachmentsbody

Status codes: 404


PATCH /lead/:id

Update lead

NameInRequired
idpathyes
cwdbody
projectNamebody

Status codes: 404


GET /lead/:id/decisions

NameInRequired
idpathyes

GET /lead/:id/groups

NameInRequired
idpathyes

POST /lead/:id/groups

groups

NameInRequired
idpathyes
namebody
memberIdsbody

Status codes: 400 · 201


GET /lead/:id/groups/:name/messages

NameInRequired
idpathyes
namepathyes
limitqueryno

POST /lead/:id/groups/:name/messages

messages

NameInRequired
idpathyes
namepathyes
contentbody

Status codes: 400 · 404 · 500 · 201


POST /lead/:id/groups/:name/messages/:messageId/reactions

reactions

NameInRequired
idpathyes
namepathyes
messageIdpathyes
emojibody

Status codes: 400


DELETE /lead/:id/groups/:name/messages/:messageId/reactions/:emoji

Delete lead

NameInRequired
idpathyes
namepathyes
messageIdpathyes
emojipathyes

GET /lead/:id/delegations

NameInRequired
idpathyes

GET /lead/:id/dag

NameInRequired
idpathyes
includeArchivedqueryno

Status codes: 404


GET /costs/by-agent

List costs

NameInRequired
projectIdqueryno

Status codes: 500


GET /costs/by-task

List costs

NameInRequired
leadIdqueryno
projectIdqueryno

Status codes: 500


GET /costs/agent/:agentId

NameInRequired
agentIdpathyes

Status codes: 500


GET /costs/by-project

List costs

Status codes: 500


GET /costs/by-session

List costs

NameInRequired
projectIdqueryno

Status codes: 400 · 500


GET /timers

List timers


POST /timers

Create timer

NameInRequired
agentIdbody
labelbody
messagebody
delaySecondsbody
repeatbody
projectIdbody

Status codes: 503 · 400 · 404 · 403 · 429 · 201


DELETE /timers/:timerId

Delete timer

NameInRequired
timerIdpathyes

Status codes: 404 · 409 · 500


GET /lead/:id/progress

NameInRequired
idpathyes

Projects

GET /projects

List projects

NameInRequired
statusqueryno

GET /projects/:id

Get project by ID

NameInRequired
idpathyes

Status codes: 404


GET /projects/:id/sessions/detail

NameInRequired
idpathyes

Status codes: 404


GET /projects/:id/dag

NameInRequired
idpathyes
includeArchivedqueryno

PATCH /projects/:id/tasks/:taskId/status

Update project

NameInRequired
idpathyes
taskIdpathyes
statusbody

Status codes: 400 · 500 · 404


PATCH /projects/:id/tasks/:taskId/priority

Update project

NameInRequired
idpathyes
taskIdpathyes
prioritybody

Status codes: 400 · 500 · 404


POST /projects/:id/tasks

tasks

NameInRequired
idpathyes
titlebody
descriptionbody
rolebody
prioritybody
dependsOnbody
filesbody

Status codes: 400 · 500


GET /projects/:id/groups

NameInRequired
idpathyes

GET /projects/:id/groups/:name/messages

NameInRequired
idpathyes
namepathyes
limitqueryno

GET /projects/:id/messages

NameInRequired
idpathyes
limitqueryno

POST /projects

Create project

NameInRequired
namebody
descriptionbody
cwdbody

Status codes: 500 · 400 · 201


POST /projects/import

import

NameInRequired
cwdbody
namebody

Status codes: 500 · 400 · 409


PATCH /projects/:id

Update project

NameInRequired
idpathyes
namebody
descriptionbody
cwdbody
statusbody
oversightLevelbody

Status codes: 500 · 404 · 400


GET /projects/:id/briefing

NameInRequired
idpathyes

Status codes: 500 · 404


POST /projects/:id/resume

resume

Rate limited: spawnLimiter

NameInRequired
idpathyes
task:body
modelbody
freshStartbody
resumeAllbody
agents:body
sessionId:body

Status codes: 500 · 404 · 409


POST /projects/:id/stop

stop

NameInRequired
idpathyes

Status codes: 500 · 404


DELETE /projects/:id

Delete project

NameInRequired
idpathyes

Status codes: 500 · 404 · 400


GET /models

List models


GET /projects/:id/model-config

NameInRequired
idpathyes

Status codes: 500 · 404


PUT /projects/:id/model-config

Set model-config

NameInRequired
idpathyes
configbody

Status codes: 500 · 404 · 400


GET /projects/:id/files

NameInRequired
idpathyes
pathqueryno

Status codes: 404 · 400 · 403


GET /projects/:id/file-contents

NameInRequired
idpathyes
pathqueryno

Status codes: 404 · 400 · 403 · 413


GET /projects/:id/artifacts

NameInRequired
idpathyes

Status codes: 404


GET /projects/:id/artifact-contents

NameInRequired
idpathyes
pathqueryno

Status codes: 404 · 400 · 403 · 413


GET /projects/:id/session-artifact

NameInRequired
idpathyes
agentIdqueryno
pathqueryno

Status codes: 404 · 400 · 403


Tasks

GET /tasks

List tasks

NameInRequired
scopequeryno
projectIdqueryno
leadIdqueryno
statusqueryno
rolequeryno
assignedAgentIdqueryno
includeArchivedqueryno
limitqueryno
offsetqueryno

Status codes: 400


PATCH /tasks/:leadId/:taskId/unarchive

Update task

NameInRequired
leadIdpathyes
taskIdpathyes

Status codes: 404


GET /attention

List attention

NameInRequired
scopequeryno
projectIdqueryno

Decisions

GET /decisions

List decisions

NameInRequired
needs_confirmationqueryno
projectIdqueryno
groupedqueryno

POST /decisions/:id/confirm

confirm

NameInRequired
idpathyes
reasonbody

Status codes: 404


POST /decisions/:id/reject

reject

NameInRequired
idpathyes
reasonbody

Status codes: 404


POST /decisions/:id/dismiss

dismiss

NameInRequired
idpathyes

Status codes: 404


POST /decisions/:id/respond

respond

NameInRequired
idpathyes
messagebody

Status codes: 400 · 404


POST /decisions/:id/feedback

feedback

NameInRequired
idpathyes
messagebody

Status codes: 400 · 404


POST /decisions/batch

batch

NameInRequired
idsbody
actionbody
reasonbody

Status codes: 400


POST /decisions/pause-timer

pause timer

NameInRequired
pausedbody

Status codes: 400


Coordination

GET /coordination/status

List coordination

NameInRequired
projectIdqueryno

GET /coordination/locks

List coordination

NameInRequired
projectIdqueryno

POST /coordination/locks

locks

Rate limited: body validation

NameInRequired
agentIdbody
filePathbody
reasonbody

Status codes: 400 · 201 · 409


DELETE /coordination/locks/:filePath

Delete coordination

NameInRequired
filePathpathyes
agentIdqueryno

Status codes: 400


GET /coordination/activity

List coordination

NameInRequired
agentIdqueryno
typequeryno
limitqueryno
sincequeryno
projectIdqueryno

GET /coordination/summary

List coordination

NameInRequired
projectIdqueryno

GET /coordination/timeline

List coordination

NameInRequired
sincequeryno
leadIdqueryno

GET /coordination/timeline/stream

List coordination

NameInRequired
leadIdqueryno
lastEventIdqueryno

Status codes: 400


Crews

GET /crews

List crews

Rate limited: readLimiter (60 s, max 60)

NameInRequired
projectIdqueryno

Status codes: 503 · 500


GET /crews/summary

List crews

Rate limited: readLimiter (60 s, max 60)

NameInRequired
projectIdqueryno

Status codes: 503


GET /crews/:crewId

Get crew by ID

Rate limited: readLimiter (60 s, max 60)

NameInRequired
crewIdpathyes

Status codes: 503 · 404 · 500


GET /crews/:crewId/agents

Rate limited: readLimiter (60 s, max 60)

NameInRequired
crewIdpathyes
statusqueryno
projectIdqueryno

Status codes: 503 · 400


GET /crews/:crewId/agents/:agentId/profile

Rate limited: readLimiter (60 s, max 60)

NameInRequired
crewIdpathyes
agentIdpathyes

Status codes: 503 · 400 · 404


GET /crews/:crewId/health

Rate limited: readLimiter (60 s, max 60)

NameInRequired
crewIdpathyes

Status codes: 503 · 404 · 500


POST /crews/:crewId/agents/:agentId/clone

clone

Rate limited: writeLimiter (60 s, max 10)

NameInRequired
crewIdpathyes
agentIdpathyes

Status codes: 503 · 404 · 500 · 201


DELETE /crews/:leadId

Delete crew

Rate limited: writeLimiter (60 s, max 10)

NameInRequired
leadIdpathyes

Status codes: 503 · 404 · 409


DELETE /roster/:agentId

Delete roster

Rate limited: writeLimiter (60 s, max 10)

NameInRequired
agentIdpathyes

Status codes: 503 · 400 · 404 · 409


Knowledge

GET /projects/:id/knowledge

Rate limited: knowledgeReadLimiter (60 s, max 120)

NameInRequired
idpathyes
categoryqueryno

Status codes: 503 · 400


Rate limited: knowledgeSearchLimiter (60 s, max 60)

NameInRequired
idpathyes
qqueryno
categoryqueryno
limitqueryno

Status codes: 400 · 503


GET /projects/:id/knowledge/stats

Rate limited: knowledgeReadLimiter (60 s, max 120)

NameInRequired
idpathyes

Status codes: 503


GET /projects/:id/knowledge/training

Rate limited: knowledgeReadLimiter (60 s, max 120)

NameInRequired
idpathyes

Status codes: 503


POST /projects/:id/knowledge

knowledge

Rate limited: knowledgeWriteLimiter (60 s, max 30)

NameInRequired
idpathyes
categorybody
keybody
contentbody
metadatabody

Status codes: 503 · 400 · 403 · 201


DELETE /projects/:id/knowledge/:category/:key

Delete project

Rate limited: knowledgeWriteLimiter (60 s, max 30)

NameInRequired
idpathyes
categorypathyes
keypathyes

Status codes: 503 · 400 · 404


Communications

GET /comms/:leadId/flows

NameInRequired
leadIdpathyes
sincequeryno
typesqueryno

GET /comms/:leadId/stats

NameInRequired
leadIdpathyes

Analytics

GET /analytics

List analytics

NameInRequired
projectIdqueryno

Status codes: 500


GET /analytics/sessions

List analytics

NameInRequired
projectIdqueryno

Status codes: 500


GET /analytics/compare

List analytics

NameInRequired
sessionsqueryno

Status codes: 400 · 500


Configuration & System

GET /config

List config


GET /config/yaml

List config

Status codes: 503


PATCH /config

Rate limited: body validation


POST /system/pause

pause


POST /system/resume

resume


GET /system/status

List system


GET /budget

List budget

NameInRequired
projectIdqueryno

POST /budget

Create budget

NameInRequired
limitbody
thresholdsbody
projectIdbody

Status codes: 400


POST /budget/check

check

NameInRequired
projectIdqueryno

Provider Settings

GET /settings/providers

List settings


GET /settings/providers/status

List settings

Status codes: 500


GET /settings/providers/:provider

NameInRequired
providerpathyes

Status codes: 404 · 500


POST /settings/providers/:provider/test

test

NameInRequired
providerpathyes

Status codes: 404 · 500


PUT /settings/providers/:provider

Set :provider

NameInRequired
providerpathyes
enabledbody
modelPreferencesbody

Status codes: 404 · 500


PUT /settings/provider

Set provider

NameInRequired
idbody

Status codes: 400


GET /settings/provider-ranking

List settings


PUT /settings/provider-ranking

Set provider-ranking

NameInRequired
rankingbody

Status codes: 400


Roles

GET /roles

List roles


POST /roles

Create role

Rate limited: body validation

Status codes: 201


DELETE /roles/:id

Delete role

NameInRequired
idpathyes

POST /roles/test

test

NameInRequired
rolebody
messagebody

Status codes: 400


List search

NameInRequired
qqueryno
limitqueryno

Status codes: 400


Data Management

GET /data/stats

List data

Status codes: 500


POST /data/cleanup

cleanup

NameInRequired
olderThanDaysbody
dryRunbody

Status codes: 400


Database Browser

GET /db/memory

List db


DELETE /db/memory/:id

Delete db

NameInRequired
idpathyes

Status codes: 400


GET /db/conversations

List db


GET /db/conversations/:id/messages

NameInRequired
idpathyes
limitqueryno

DELETE /db/conversations/:id

Delete db

NameInRequired
idpathyes

GET /db/decisions

List db


DELETE /db/decisions/:id

Delete db

NameInRequired
idpathyes

GET /db/activity

List db

NameInRequired
limitqueryno

DELETE /db/activity/:id

Delete db

NameInRequired
idpathyes

Status codes: 400


GET /db/stats

List db


Diff

GET /agents/:id/diff

NameInRequired
idpathyes
cachedqueryno

Status codes: 404 · 500


GET /agents/:id/diff/summary

NameInRequired
idpathyes

Status codes: 404 · 500


Integrations

GET /integrations/status

List integrations

Status codes: 500


POST /integrations/sessions

sessions

NameInRequired
chatIdbody
platformbody
projectIdbody
boundBybody

Status codes: 503 · 400 · 404 · 202 · 500


POST /integrations/sessions/verify

verify

NameInRequired
chatIdbody
codebody

Status codes: 503 · 400 · 403 · 201 · 429 · 500


GET /integrations/sessions

List integrations

Status codes: 500


POST /integrations/subscriptions

subscriptions

NameInRequired
chatIdbody
projectIdbody
categoriesbody

Status codes: 503 · 400 · 403 · 201 · 500


DELETE /integrations/subscriptions

NameInRequired
chatIdbody
projectIdbody

Status codes: 503 · 400 · 204 · 500


GET /integrations/subscriptions

List integrations

Status codes: 500


POST /integrations/test-message

test message

NameInRequired
platformbody
chatIdbody
textbody

Status codes: 503 · 400 · 403 · 404 · 500


PATCH /integrations/telegram

NameInRequired
enabledbody
botTokenbody
allowedChatIdsbody
rateLimitPerMinutebody
notificationsbody

Status codes: 503 · 400 · 500


Natural Language Commands

GET /nl/commands

List nl


POST /nl/preview

preview

NameInRequired
commandbody
leadIdbody

Status codes: 400 · 404 · 500


POST /nl/execute

execute

NameInRequired
commandbody
leadIdbody

Status codes: 400 · 404 · 500


POST /nl/undo

undo

NameInRequired
commandIdbody

Status codes: 400 · 500


GET /nl/suggestions

List nl

NameInRequired
leadIdqueryno

Status codes: 400 · 500


GET /onboarding/status

List onboarding

NameInRequired
userIdqueryno

Status codes: 500


POST /onboarding/progress

progress

Status codes: 500


Predictions

GET /predictions

List predictions


GET /predictions/history

List predictions


GET /predictions/accuracy

List predictions


GET /predictions/config

List predictions


PUT /predictions/config

Set config

Status codes: 400


POST /predictions/:id/dismiss

dismiss

NameInRequired
idpathyes

Status codes: 404


POST /predictions/:id/resolve

resolve

NameInRequired
idpathyes
outcomebody

Status codes: 400 · 404


POST /predictions/generate

generate

NameInRequired
agentsbody
budgetbody

Status codes: 400 · 500


Session Replay

GET /replay/:leadId/state

NameInRequired
leadIdpathyes
atqueryno

Status codes: 503 · 400 · 500


GET /replay/:leadId/events

NameInRequired
leadIdpathyes
fromqueryno
toqueryno
limitqueryno
typesqueryno

Status codes: 503 · 400 · 500


GET /replay/:leadId/keyframes

NameInRequired
leadIdpathyes

Status codes: 503 · 500


POST /replay/:leadId/share

share

NameInRequired
leadIdpathyes
expiresInHoursbody
labelbody

Status codes: 201 · 500


GET /replay/:leadId/shares

NameInRequired
leadIdpathyes

DELETE /shared/:token

Delete shared

NameInRequired
tokenpathyes

Status codes: 404


GET /shared/:token

Get shared by ID

NameInRequired
tokenpathyes

Status codes: 404 · 503 · 500


GET /shared/:token/state

NameInRequired
tokenpathyes
atqueryno

Status codes: 404 · 400 · 503 · 500


Services & Coordination (extended)

GET /coordination/alerts

List coordination


GET /coordination/eager-schedule

List coordination


GET /coordination/capabilities

List coordination

NameInRequired
leadIdqueryno
filequeryno
technologyqueryno
keywordqueryno
domainqueryno
availableOnlyqueryno

Status codes: 400


GET /coordination/match-agent

List coordination

NameInRequired
leadIdqueryno
taskqueryno
rolequeryno
filequeryno
techqueryno
keywordqueryno
preferIdlequeryno

Status codes: 400


GET /coordination/retros/:leadId

NameInRequired
leadIdpathyes

POST /coordination/retros/:leadId

NameInRequired
leadIdpathyes

Status codes: 503


GET /export/:leadId

Get export by ID

NameInRequired
leadIdpathyes

Status codes: 503 · 500


GET /coordination/file-impact

List coordination

NameInRequired
filequeryno

Status codes: 400


GET /coordination/retries

List coordination


GET /coordination/crash-reports

List coordination

NameInRequired
agentIdqueryno

GET /webhooks

List webhooks


POST /webhooks

Create webhook

NameInRequired
urlbody
eventsbody
secretbody
enabledbody

Status codes: 503 · 400 · 201


DELETE /webhooks/:id

Delete webhook

NameInRequired
idpathyes

Status codes: 503


GET /webhooks/:id/deliveries

NameInRequired
idpathyes

GET /coordination/templates

List coordination


POST /coordination/decompose

decompose

NameInRequired
taskbody

Status codes: 503 · 400


GET /coordination/scorecards

List coordination

NameInRequired
leadIdqueryno

Status codes: 400


GET /coordination/scorecards/:agentId

NameInRequired
agentIdpathyes

GET /coordination/leaderboard

List coordination

NameInRequired
leadIdqueryno

Status codes: 400


GET /search

List search

NameInRequired
qqueryno
typesqueryno
agentIdqueryno
leadIdqueryno
sincequeryno
limitqueryno

Status codes: 400


GET /coordination/decisions

List coordination

NameInRequired
statusqueryno
tagqueryno
sincequeryno

GET /coordination/decisions/tags

List coordination


List coordination

NameInRequired
qqueryno

Status codes: 400


GET /coordination/decisions/:id

NameInRequired
idpathyes

Status codes: 404


GET /coordination/coverage

List coordination


GET /coordination/complexity

List coordination


GET /coordination/dependencies

List coordination


GET /notifications

List notifications

NameInRequired
unreadOnlyqueryno
categoryqueryno
limitqueryno

PUT /notifications/read-all

Set read-all


PUT /notifications/:id/read

Set read

NameInRequired
idpathyes

Status codes: 404


GET /notifications/preferences

List notifications

NameInRequired
userIdqueryno

PUT /notifications/preferences

Set preferences

Status codes: 503


GET /coordination/escalations

List coordination

NameInRequired
allqueryno

PUT /coordination/escalations/:id/resolve

Set resolve

NameInRequired
idpathyes

Status codes: 404


GET /coordination/model-selector

List coordination


GET /coordination/parallel-analysis

List coordination


GET /reports/session

List reports

NameInRequired
formatqueryno
leadIdqueryno
projectIdqueryno

List coordination

NameInRequired
keywordqueryno

Status codes: 503 · 400


GET /coordination/project-templates

List coordination

Status codes: 503


GET /coordination/project-templates/:id

NameInRequired
idpathyes

Status codes: 503 · 404


List coordination

NameInRequired
qqueryno

Status codes: 503 · 400


List coordination

NameInRequired
limitqueryno

Status codes: 503


GET /coordination/knowledge

List coordination

NameInRequired
projectIdqueryno
categoryqueryno
tagqueryno

Status codes: 503


POST /coordination/knowledge

knowledge

NameInRequired
projectIdbody
categorybody
titlebody
contentbody
tagsbody

Status codes: 503 · 400 · 201


Summary & Catch-up

GET /summary/:leadId/since

NameInRequired
leadIdpathyes
tqueryno

Status codes: 400 · 500


GET /catchup/:leadId

Get catchup by ID

NameInRequired
leadIdpathyes
sincequeryno
tqueryno

Status codes: 400 · 500


File Browser

GET /browse

List browse

NameInRequired
pathqueryno

Status codes: 400 · 403


219 endpoints across 25 domains. Generated from packages/server/src/routes/.

Documentation generated by AI

Documentation generated by AI