Skip to main content

Mission control API

Mission control provides a real-time view of your agent fleet. Use these endpoints to visualize agent relationships, trace execution activity, attribute costs per agent, and track talent bookings.
All mission control endpoints require bearer token (API key) authentication. The fleet graph and traces endpoints also require a userId query parameter. The web proxy uses session authentication and resolves the user ID from the session before forwarding to these endpoints. The fleet graph and traces endpoints return safe default responses for unauthenticated requests instead of an error.

Fleet graph

GET /api/mission-control/fleet/graph
Returns a constellation graph of your agent fleet as a set of nodes and edges. Each node represents an agent with a role and positional data for graph layout. Edges use from/to fields with a strength value indicating relationship weight.

Authentication

Requires bearer token authentication.

Query parameters

ParameterTypeRequiredDescription
userIdnumberYesThe user ID to fetch the fleet graph for

Response

{
  "nodes": [
    {
      "id": "borg-0",
      "name": "borg-0",
      "role": "orchestrator",
      "status": "active",
      "x": 400,
      "y": 300,
      "load": 72,
      "memory": 58,
      "fitness": 85,
      "walletAddress": "0x1234...abcd",
      "children": 2,
      "endpoints": 3,
      "cycles": 1042,
      "regime": "explore",
      "freeEnergy": 0.34,
      "url": "https://borg-0-production.up.railway.app"
    },
    {
      "id": "a1b2c3d4",
      "name": "Clone-a1b2c3d4",
      "role": "worker",
      "status": "active",
      "x": 200,
      "y": 450,
      "load": 30,
      "memory": 20,
      "fitness": 40,
      "walletAddress": "0xabcd...1234"
    }
  ],
  "edges": [
    {
      "id": "e-borg-0-a1b2c3d4",
      "from": "borg-0",
      "to": "a1b2c3d4",
      "strength": 0.6
    }
  ],
  "timestamp": "2026-03-22T12:00:00.000Z",
  "source": "soul",
  "nodeCount": 1
}
When no souls are reachable, the response uses the fallback shape with minimal node data:
{
  "nodes": [
    {
      "id": "atlas",
      "name": "Atlas",
      "role": "orchestrator",
      "status": "offline",
      "x": 400,
      "y": 300,
      "load": 0,
      "memory": 0
    }
  ],
  "edges": [],
  "timestamp": "2026-03-22T12:00:00.000Z",
  "source": "fallback"
}
When the request is unauthenticated (no valid session), the endpoint returns a default response instead of an error:
{
  "nodes": [
    {
      "id": "atlas",
      "name": "Atlas",
      "role": "orchestrator",
      "status": "offline",
      "x": 400,
      "y": 300,
      "load": 0,
      "memory": 0
    }
  ],
  "edges": [],
  "timestamp": "2026-03-22T12:00:00.000Z",
  "source": "unauthenticated"
}

Node object

FieldTypeDescription
idstringUnique agent identifier (designation or truncated instance ID for clones)
namestringAgent display name
rolestringAgent role. One of orchestrator, specialist, or worker
statusstringCurrent status. One of active, idle, stale, or offline (fallback only)
xnumberHorizontal position for graph layout
ynumberVertical position for graph layout
loadnumberCurrent load percentage (0–100). Derived from active plan progress
memorynumberMemory usage percentage (0–100). Derived from cortex experience count
fitnessnumberFitness score (0–100). Only present on live nodes
walletAddressstringOn-chain wallet address of the agent. Present when available
childrennumberNumber of child (clone) instances. Only present on parent nodes
endpointsnumberNumber of registered endpoints. Only present on parent nodes
cyclesnumberTotal cognitive cycles completed. Only present on parent nodes
regimestringCurrent free energy regime (for example "explore" or "exploit"). Only present on parent nodes
freeEnergynumberCurrent free energy value. Only present on parent nodes
urlstringSoul instance URL. Only present on parent nodes
The type field was renamed to role and now uses the values orchestrator, specialist, and worker. The monitor role is no longer returned by this endpoint.

Edge object

FieldTypeDescription
idstringUnique edge identifier
fromstringSource agent ID
tostringTarget agent ID
strengthnumberRelationship weight between 0 and 1
The source and target fields were renamed to from and to. The type field on edges was replaced by strength.

Response metadata

FieldTypeDescription
timestampstringISO 8601 timestamp of the response
sourcestringData source. "soul" for live data, "fallback" when no souls are reachable, "unauthenticated" when no valid session is present
nodeCountnumberNumber of live soul nodes fetched. Only present when source is "soul"

Errors

Unauthenticated requests return a 200 response with default empty data (see above) instead of an error.

Execution traces

GET /api/mission-control/fleet/traces
Returns up to 20 of the most recent execution traces for your agent fleet, sorted by recency. Traces include active plan steps, recent thoughts, free energy component readings, and cycle status from live soul instances. Returns an empty array when no soul instances are reachable or when the request is unauthenticated.

Authentication

Requires bearer token authentication.

Query parameters

ParameterTypeRequiredDescription
userIdnumberYesThe user ID to fetch execution traces for

Response

[
  {
    "id": "trace-plan-0",
    "type": "plan",
    "label": "plan: reflect (2/5)",
    "agent": "borg-0",
    "status": "running",
    "duration": "—",
    "startedAt": "2026-03-22T12:00:00.000Z",
    "tokens": null
  },
  {
    "id": "trace-thought-0-0",
    "type": "inference",
    "label": "plan: next step is to consolidate memory entries",
    "agent": "borg-0",
    "status": "success",
    "duration": "285ms",
    "startedAt": "2026-03-22T11:59:56.000Z",
    "tokens": 542
  },
  {
    "id": "trace-fe-0-0",
    "type": "monitor",
    "label": "cortex: surprise=0.12, contribution=0.04",
    "agent": "borg-0",
    "status": "success",
    "duration": "1ms",
    "startedAt": "2026-03-22T11:59:50.000Z",
    "tokens": null
  },
  {
    "id": "trace-cycles-0",
    "type": "monitor",
    "label": "cycle 1042 complete — mode: active, regime: explore",
    "agent": "borg-0",
    "status": "success",
    "duration": "—",
    "startedAt": "2026-03-22T11:59:45.000Z",
    "tokens": null
  }
]

Trace object

FieldTypeDescription
idstringUnique trace identifier
typestringTask type. One of plan, tool_call, inference, or monitor
labelstringDescription of the task executed
agentstringSoul designation that produced the trace (for example "borg-0")
statusstringExecution result. One of success, running, or idle
durationstringExecution time in milliseconds (for example "285ms"), or "—" for ongoing or non-timed traces
startedAtstringISO 8601 timestamp when the task started
tokensnumber | nullToken count for inference-type traces. null for other trace types
The response is capped at 20 traces, sorted from most recent to oldest.

Errors

Unauthenticated requests return a 200 response with an empty array [] instead of an error.

Cost attribution

GET /api/mission-control/fleet/costs
Returns a cost breakdown for your agent fleet. Uses session authentication — the user is resolved from the active session. Returns a default empty response for unauthenticated requests.

Authentication

Requires session authentication.

Response

{
  "costs": [],
  "totalSpend": 0,
  "managedAiCost": 0,
  "coordinationRevenue": 0
}

Response fields

FieldTypeDescription
costsarrayList of cost line items. Currently returns an empty array while real data wiring is in progress
totalSpendnumberTotal spend across the fleet
managedAiCostnumberAI model usage cost
coordinationRevenuenumberRevenue from agent coordination

Errors

Unauthenticated requests return a 200 response with { costs: [] } instead of an error.

Talent bookings

GET /api/mission-control/fleet/bookings
Returns active booking requests for your agent fleet. Uses session authentication — the user is resolved from the active session. Returns a default empty response for unauthenticated requests.

Authentication

Requires session authentication.

Response

{
  "bookings": []
}

Response fields

FieldTypeDescription
bookingsarrayList of booking objects. Currently returns an empty array while real data wiring is in progress

Errors

Unauthenticated requests return a 200 response with { bookings: [] } instead of an error.