System

Capabilities in the `system` group, auto-generated from defineCapability() declarations.

System

GET /v1/account

Get tenant profile with user count

Capability ID: system.account.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tenant": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["tenant"],
  "additionalProperties": false
}

Examples

profile

Request:

{}

Response:

{
  "tenant": {
    "id": "t_1",
    "slug": "demo",
    "name": "Demo Tenant",
    "user_count": 1
  }
}

---

POST /v1/account/graduate

Graduate a sandbox tenant to standard tier via a verified provider key (BYOK)

Capability ID: system.account.graduate Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

graduate

Request:

{}

Response:

{
  "graduated": true,
  "tier": "standard",
  "budget_usd_per_day": 5
}

---

GET /v1/account/graduation

Graduation criteria + live progress for a sandbox tenant (machine-readable)

Capability ID: system.account.graduation Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

sandbox-progress

Request:

{}

Response:

{
  "tier": "community",
  "criteria": [
    {
      "id": "verified_byok",
      "required": true,
      "satisfied": false
    }
  ],
  "action": {
    "endpoint": "POST /v1/account/graduate"
  }
}

---

PATCH /v1/account

Update tenant profile (currently: name)

Capability ID: system.account.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tenant": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["tenant"],
  "additionalProperties": false
}

Examples

rename

Request:

{
  "name": "New Name"
}

Response:

{
  "tenant": {
    "id": "t_1",
    "name": "New Name"
  }
}

---

POST /v1/account/users/invite

Invite a user by email; returns claim URL (201)

Capability ID: system.account.users.invite Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "role": {
      "type": "string",
      "enum": ["owner", "admin", "member"]
    }
  },
  "required": ["email"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "invitation": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["invitation"],
  "additionalProperties": false
}

Examples

invite

Request:

{
  "email": "user@example.com",
  "role": "member"
}

Response:

{
  "invitation": {
    "email": "user@example.com",
    "role": "member",
    "claim_url": "https://brainstormrouter.com/dashboard/?claim=...",
    "expires_at": "2026-01-01T00:00:00Z"
  }
}

---

GET /v1/account/users

List users in the current tenant (RLS-scoped)

Capability ID: system.account.users.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["users", "total"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "users": [],
  "total": 0
}

---

DELETE /v1/account/users/{id}

Remove a user from the current tenant

Capability ID: system.account.users.remove Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": ["id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deleted": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["deleted"],
  "additionalProperties": false
}

Examples

remove

Request:

{
  "id": "u_1"
}

Response:

{
  "deleted": {
    "id": "u_1",
    "email": "user@example.com"
  }
}

---

POST /v1/account/verify-email/confirm

Confirm the code — promote sandbox tenant to standard tier ($5/day)

Capability ID: system.account.verify_email.confirm Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["code"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

confirm

Request:

{
  "code": "123456"
}

Response:

{
  "tier": "standard",
  "budget_usd_per_day": 5
}

---

POST /v1/account/verify-email

Send a verification code to upgrade a sandbox tenant to standard tier

Capability ID: system.account.verify_email.start Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    }
  },
  "required": ["email"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

start

Request:

{
  "email": "owner@example.com"
}

Response:

{
  "message": "Verification code sent. Check your email.",
  "expires_in_seconds": 600
}

---

GET /v1/admin/digest

Business summary digest

Capability ID: system.admin.digest Auth: apiKey Permission: admin.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

digest

Request:

{}

Response:

{
  "digest": {}
}

---

POST /v1/admin/invite-codes

Create an invite code

Capability ID: system.admin.inviteCodes.create Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1
    },
    "max_uses": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{}

Response:

{
  "invite_code": {}
}

---

DELETE /v1/admin/invite-codes/{id}

Revoke an invite code

Capability ID: system.admin.inviteCodes.delete Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true
}

---

GET /v1/admin/invite-codes

List invite codes with usage counts

Capability ID: system.admin.inviteCodes.list Auth: apiKey Permission: admin.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "invite_codes": []
}

---

POST /v1/admin/tenants/{id}/approve

Approve a tenant (sets status → active)

Capability ID: system.admin.tenants.approve Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

tenant-transition

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/admin/tenants/{id}

Get tenant detail

Capability ID: system.admin.tenants.get Auth: apiKey Permission: admin.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "tenant": {}
}

---

GET /v1/admin/tenants

List tenants with optional status filter (platform admin only)

Capability ID: system.admin.tenants.list Auth: apiKey Permission: admin.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "tenants": []
}

---

POST /v1/admin/tenants/{id}/reject

Reject a tenant (sets status → rejected)

Capability ID: system.admin.tenants.reject Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

tenant-transition

Request:

{}

Response:

{
  "ok": true
}

---

PUT /v1/admin/tenants/{id}/rate-limit

Set per-tenant aggregate rate limit (API-key variant; admin auth via path middleware)

Capability ID: system.admin.tenants.set_rate_limit Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "max_rpm": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": ["id", "max_rpm"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "id": "t1",
  "max_rpm": 5000
}

Response:

{
  "tenant_id": "t1",
  "max_rpm": 5000,
  "previous": null
}

---

POST /v1/admin/tenants/{id}/suspend

Suspend a tenant (sets status → suspended)

Capability ID: system.admin.tenants.suspend Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

tenant-transition

Request:

{}

Response:

{
  "ok": true
}

---

DELETE /v1/admin/xdr/risk-push

Clear an XDR risk score (risk resolved)

Capability ID: system.admin.xdr.riskDelete Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": ["agent_id", "tenant_id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{
  "agent_id": "00000000-0000-0000-0000-000000000000",
  "tenant_id": "00000000-0000-0000-0000-000000000000"
}

Response:

{
  "ok": true
}

---

POST /v1/admin/xdr/risk-push

Push an XDR risk score for an agent (gated by XDR_BIDIRECTIONAL_ENABLED)

Capability ID: system.admin.xdr.riskPush Auth: apiKey Permission: admin.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "risk_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "source": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "ttl_seconds": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2592000
    }
  },
  "required": ["agent_id", "tenant_id", "risk_score", "source"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

push

Request:

{
  "agent_id": "00000000-0000-0000-0000-000000000000",
  "tenant_id": "00000000-0000-0000-0000-000000000000",
  "risk_score": 0.5,
  "source": "external-xdr"
}

Response:

{
  "ok": true
}

---

GET /v1/agent-limits

Read the per-agent limits map for the current tenant

Capability ID: system.agent_limits.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agentLimits": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["agentLimits"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "agentLimits": {}
}

---

PATCH /v1/agent-limits

Merge updates into the per-agent limits map (null value deletes an entry)

Capability ID: system.agent_limits.patch Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {
    "anyOf": [
      {
        "type": "object",
        "properties": {
          "maxBudgetUsd": {
            "type": "number",
            "minimum": 0
          },
          "maxRequestsPerMinute": {
            "type": "number",
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      {
        "type": "null"
      }
    ]
  }
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agentLimits": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "version": {
      "type": "number"
    }
  },
  "required": ["agentLimits", "version"],
  "additionalProperties": false
}

Examples

merge

Request:

{}

Response:

{
  "agentLimits": {},
  "version": 1
}

---

PUT /v1/agent-limits

Replace the entire per-agent limits map (canonicalizes keys to agent:)

Capability ID: system.agent_limits.put Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {
    "type": "object",
    "properties": {
      "maxBudgetUsd": {
        "type": "number",
        "minimum": 0
      },
      "maxRequestsPerMinute": {
        "type": "number",
        "minimum": 0
      }
    },
    "additionalProperties": false
  }
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agentLimits": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "version": {
      "type": "number"
    }
  },
  "required": ["agentLimits", "version"],
  "additionalProperties": false
}

Examples

set

Request:

{}

Response:

{
  "agentLimits": {},
  "version": 1
}

---

POST /v1/agents/{agentId}/run

Start the agent loop for a session and stream events as SSE

Capability ID: system.agents.run Auth: apiKey Permission: agents.run

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100000
    },
    "session_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "max_turns": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "max_duration_ms": {
      "type": "integer",
      "minimum": 1000,
      "maximum": 3600000
    },
    "budget_cap_usd": {
      "type": "number",
      "minimum": 0
    },
    "system_prompt": {
      "type": "string",
      "maxLength": 50000
    }
  },
  "required": ["message"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Error responses

StatusCodeDescription
402provider_key_requiredTenant has no provider keys (sandbox mode). Agent runs perform real inference and are refused rather than simulated; add a key via POST /v1/providers.

Examples

run

Request:

{
  "message": "hi"
}

Response:

{}

---

GET /v1/runs/active

All active runs for the tenant (status = running)

Capability ID: system.agents.runs.active Auth: apiKey Permission: agents.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

active

Request:

{}

Response:

{
  "runs": []
}

---

GET /v1/agents/{agentId}/runs

Run history for an agent (sessions with aggregate metadata)

Capability ID: system.agents.runs.list Auth: apiKey Permission: agents.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "runs": []
}

---

POST /v1/agents/{agentId}/sessions

Create an idle session for the agent (no loop)

Capability ID: system.agents.sessions.create Auth: apiKey Permission: agents.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "session_key": {
      "type": "string",
      "maxLength": 256
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{}

Response:

{
  "id": ""
}

---

GET /v1/agents/{agentId}/sessions/{sessionId}

Get a session by id

Capability ID: system.agents.sessions.get Auth: apiKey Permission: agents.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{}

---

POST /v1/agents/{agentId}/sessions/{sessionId}/events

Publish a user event to a running session (PG NOTIFY)

Capability ID: system.agents.sessions.sendEvent Auth: apiKey Permission: agents.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": ["user.message", "user.interrupt"]
    },
    "text": {
      "type": "string",
      "maxLength": 100000
    },
    "reason": {
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": ["type"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

msg

Request:

{
  "type": "user.message",
  "text": "hi"
}

Response:

{
  "accepted": true
}

---

DELETE /v1/agents/{agentId}/sessions/{sessionId}

Terminate a session (status → ended)

Capability ID: system.agents.sessions.terminate Auth: apiKey Permission: agents.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

del

Request:

{}

Response:

{}

---

GET /v1/aliases

Read the model alias map for the current tenant

Capability ID: system.aliases.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "aliases": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["aliases"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "aliases": {}
}

---

PATCH /v1/aliases

Merge alias updates (null value deletes a key)

Capability ID: system.aliases.patch Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "aliases": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "version": {
      "type": "number"
    }
  },
  "required": ["aliases", "version"],
  "additionalProperties": false
}

Examples

merge

Request:

{}

Response:

{
  "aliases": {},
  "version": 1
}

---

PUT /v1/aliases

Replace the entire model alias map (rejects null values; use PATCH to delete)

Capability ID: system.aliases.put Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "aliases": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "version": {
      "type": "number"
    }
  },
  "required": ["aliases", "version"],
  "additionalProperties": false
}

Examples

set

Request:

{}

Response:

{
  "aliases": {},
  "version": 1
}

---

POST /v1/api-keys

Create a new API key (plaintext returned once)

Capability ID: system.api_keys.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "default": "Unnamed Key",
      "type": "string"
    },
    "prefix": {
      "default": "br_live_",
      "type": "string",
      "enum": ["br_live_", "br_test_"]
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "role": {
      "type": "string"
    },
    "allowed_models": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "rate_limit_rpm": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "budget_limit_usd": {
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "budget_period": {
      "anyOf": [
        {
          "type": "string",
          "enum": ["daily", "monthly"]
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": ["name", "prefix"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

minimal

Request:

{
  "name": "ci-key",
  "prefix": "br_live_"
}

Response:

{
  "id": "key_123",
  "name": "ci-key"
}

---

GET /v1/api-keys

List API keys (no plaintext, preview only)

Capability ID: system.api_keys.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "data": []
}

---

DELETE /v1/api-keys/{id}

Revoke an API key (soft-delete; cache invalidated immediately)

Capability ID: system.api_keys.revoke Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

revoke

Request:

{}

Response:

{
  "deleted": true,
  "id": "key_123"
}

---

PATCH /v1/api-keys/{id}

Update an API key's scopes, limits, or metadata (self-service)

Capability ID: system.api_keys.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "rate_limit_rpm": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "budget_limit_usd": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "budget_period": {
      "anyOf": [
        {
          "type": "string",
          "enum": ["daily", "monthly"]
        },
        {
          "type": "null"
        }
      ]
    },
    "allowed_models": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "scopes": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "ci-prod"
}

Response:

{
  "id": "key_123",
  "name": "ci-prod"
}

---

POST /v1/approvals/{id}/approve

Approve a pending request and execute its deferred action

Capability ID: system.approvals.approve Auth: apiKey Permission: approvals.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "reviewerId": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

approve

Request:

{}

Response:

{
  "status": "approved"
}

---

GET /v1/approvals/pending

List pending approval requests for the tenant

Capability ID: system.approvals.pending Auth: apiKey Permission: approvals.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

pending

Request:

{}

Response:

{
  "approvals": [],
  "count": 0
}

---

POST /v1/approvals/queue

Submit a deferred action for human review

Capability ID: system.approvals.queue Auth: apiKey Permission: approvals.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": ["mcp_tool_call", "memory_write", "budget_override", "custom"]
    },
    "requesterId": {
      "type": "string"
    },
    "requesterType": {
      "type": "string",
      "enum": ["agent", "user", "system"]
    },
    "summary": {
      "type": "string"
    },
    "details": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "action": {},
    "expiryMs": {
      "type": "number"
    }
  },
  "required": ["type", "summary"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

queue

Request:

{
  "type": "memory_write",
  "summary": "Add fact"
}

Response:

{
  "id": ""
}

---

POST /v1/approvals/{id}/reject

Reject a pending request without executing its action

Capability ID: system.approvals.reject Auth: apiKey Permission: approvals.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "reviewerId": {
      "type": "string"
    },
    "note": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

reject

Request:

{}

Response:

{
  "status": "rejected"
}

---

GET /v1/billing/plan

Current tenant plan + usage vs limits

Capability ID: system.billing.plan.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

free

Request:

{}

Response:

{
  "plan": "free",
  "usage": {}
}

---

PUT /v1/billing/plan

Switch the tenant's billing plan (admin-only)

Capability ID: system.billing.plan.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": ["free", "pro", "enterprise"]
    }
  },
  "required": ["plan"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": ["free", "pro", "enterprise"]
    },
    "status": {
      "type": "string",
      "const": "updated"
    }
  },
  "required": ["plan", "status"],
  "additionalProperties": false
}

Examples

upgrade-to-pro

Request:

{
  "plan": "pro"
}

Response:

{
  "plan": "pro",
  "status": "updated"
}

---

GET /v1/billing/plans

List available billing plans

Capability ID: system.billing.plans.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "plans": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": ["plans"],
  "additionalProperties": false
}

Examples

list

Request:

{}

Response:

{
  "plans": []
}

---

GET /v1/budget/alerts/config

Get current budget alert configuration

Capability ID: system.budget.alertsConfigGet Auth: apiKey Permission: budget.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{}

---

PUT /v1/budget/alerts/config

Update budget alert configuration (thresholds, webhook, enabled)

Capability ID: system.budget.alertsConfigSet Auth: apiKey Permission: budget.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "thresholds": {
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 1,
        "maximum": 100
      }
    },
    "webhookUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "enabled": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "enabled": true
}

Response:

{
  "ok": true
}

---

GET /v1/budget/alerts/history

Recent budget alert events for the tenant

Capability ID: system.budget.alertsHistory Auth: apiKey Permission: budget.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

history

Request:

{}

Response:

{
  "alerts": []
}

---

GET /v1/budget/forecast

Spend forecast, projected depletion date, anomaly detection

Capability ID: system.budget.forecast Auth: apiKey Permission: budget.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

forecast

Request:

{}

Response:

{}

---

GET /v1/budget/agents

List per-agent budget configurations and current status

Capability ID: system.budget.listAgents Auth: apiKey Permission: budget.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "agents": []
}

---

PUT /v1/budget/agents/{agentId}

Set budget configuration for a specific agent

Capability ID: system.budget.setAgent Auth: apiKey Permission: budget.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "perConversationUsd": {
      "type": "number"
    },
    "perHourUsd": {
      "type": "number"
    },
    "perDayUsd": {
      "type": "number"
    },
    "downgradeModel": {
      "type": "string"
    },
    "exhaustionAction": {
      "type": "string",
      "enum": ["downgrade", "stop"]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "perDayUsd": 10
}

Response:

{
  "ok": true
}

---

PUT /v1/budget/limits

Update tenant-level daily and monthly budget limits

Capability ID: system.budget.setLimits Auth: apiKey Permission: budget.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "daily_limit_usd": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "monthly_limit_usd": {
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set-limits

Request:

{
  "daily_limit_usd": 100,
  "monthly_limit_usd": 2500
}

Response:

{
  "ok": true
}

---

GET /v1/budget/status

Current tenant + key spend against daily/monthly limits

Capability ID: system.budget.status Auth: apiKey Permission: budget.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

status

Request:

{}

Response:

{}

---

GET /v1/capabilities

Machine-queryable, trust-scored graph of BR's own capabilities — query, don't read

Capability ID: system.capabilities Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "tier": {
      "type": "string"
    },
    "status": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

whole-graph

Request:

{}

Response:

{
  "version": "0.1.0-seed",
  "generated_at": null,
  "count": 0,
  "nodes": []
}

---

GET /v1/capacity/forecast

Predict rate-limit exhaustion + budget burn per provider (DB-backed forecast)

Capability ID: system.capacity.forecast Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "forecasts": []
}

---

GET /v1/capacity/providers

Per-provider capacity status (24h) — request count, success rate, latency, cost, health

Capability ID: system.capacity.providers Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "providers": []
}

---

GET /v1/catalog/runnable

Filtered list of models routable right now (circuit-closed + sentinel-healthy + BYOK-keyed)

Capability ID: system.catalog.runnable Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "object": {
      "type": "string",
      "const": "list"
    },
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "filtered_out": {
      "type": "object",
      "properties": {
        "circuit_open": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "no_provider_key": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "sentinel_down": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "budget_exhausted": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      },
      "required": ["circuit_open", "no_provider_key", "sentinel_down", "budget_exhausted"],
      "additionalProperties": false
    },
    "total_available": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "total_filtered": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["object", "data", "filtered_out", "total_available", "total_filtered"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "object": "list",
  "data": [],
  "filtered_out": {
    "circuit_open": 0,
    "no_provider_key": 0,
    "sentinel_down": 0,
    "budget_exhausted": 0
  },
  "total_available": 0,
  "total_filtered": 0
}

---

GET /v1/catalog/status

Curated-catalog status: total endpoints, models, per-provider counts

Capability ID: system.catalog.status Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "const": "curated"
    },
    "registry": {
      "type": "object",
      "properties": {
        "totalEndpoints": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "totalModels": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "providers": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        }
      },
      "required": ["totalEndpoints", "totalModels", "providers"],
      "additionalProperties": false
    }
  },
  "required": ["mode", "registry"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "mode": "curated",
  "registry": {
    "totalEndpoints": 0,
    "totalModels": 0,
    "providers": {}
  }
}

---

GET /v1/config/{key}/audit

Audit trail (recent change events) for a config section

Capability ID: system.config.audit Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

audit

Request:

{}

Response:

{
  "data": []
}

---

DELETE /v1/config/{key}

Delete a config section (reset to defaults)

Capability ID: system.config.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true
}

---

GET /v1/config/{key}

Read a single config section (sensitive fields redacted for non-admins)

Capability ID: system.config.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "data": null,
  "version": 0
}

---

POST /v1/config/import

Import configuration sections from the on-disk file (admin only)

Capability ID: system.config.import Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

import

Request:

{}

Response:

{
  "imported": 0
}

---

GET /v1/config

List all config sections (RBAC-filtered, sensitive fields redacted for non-admins)

Capability ID: system.config.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "data": {}
}

---

GET /v1/config/otel

OpenTelemetry exporter configuration: endpoint, service name, batching

Capability ID: system.config.otel Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "enabled": {
      "type": "boolean"
    },
    "endpoint": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "service_name": {
      "type": "string"
    },
    "batch_size": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "flush_interval_ms": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["enabled", "endpoint", "service_name", "batch_size", "flush_interval_ms"],
  "additionalProperties": false
}

Examples

default

Request:

{}

Response:

{
  "enabled": false,
  "endpoint": null,
  "service_name": "brainstormrouter",
  "batch_size": 100,
  "flush_interval_ms": 5000
}

---

PATCH /v1/config/{key}

Merge-patch a config section (RFC 7396) with optional OCC

Capability ID: system.config.patch Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

patch

Request:

{}

Response:

{
  "version": 2
}

---

PUT /v1/config/{key}

Replace a config section (full PUT) with OCC via If-Match header

Capability ID: system.config.set Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{}

Response:

{
  "version": 1
}

---

POST /v1/connectors

Register an external connector with KMS-encrypted credentials

Capability ID: system.connectors.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "baseUrl": {
      "type": "string",
      "minLength": 1
    },
    "authType": {
      "type": "string",
      "enum": ["bearer", "basic", "oauth2", "api-key", "none"]
    },
    "credential": {
      "type": "string"
    },
    "rateLimitRpm": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "description": {
      "type": "string"
    }
  },
  "required": ["name", "baseUrl"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

bearer

Request:

{
  "name": "Stripe",
  "baseUrl": "https://api.stripe.com",
  "authType": "bearer"
}

Response:

{
  "id": "conn_1"
}

---

DELETE /v1/connectors/{id}

Soft-delete a connector (status=disabled, kept for audit)

Capability ID: system.connectors.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

disable

Request:

{}

Response:

{
  "status": "disabled"
}

---

GET /v1/connectors/{id}

Get a connector by id (credential envelope NEVER returned)

Capability ID: system.connectors.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "conn_1"
}

---

GET /v1/connectors

List active external connectors

Capability ID: system.connectors.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "connectors": [],
  "count": 0
}

---

POST /v1/connectors/{id}/test

Probe connector connectivity (HEAD baseUrl with decrypted auth)

Capability ID: system.connectors.test Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{}

Response:

{
  "healthStatus": "healthy"
}

---

PUT /v1/connectors/{id}

Update a connector (re-encrypts credential if supplied)

Capability ID: system.connectors.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "baseUrl": {
      "type": "string",
      "minLength": 1
    },
    "authType": {
      "type": "string",
      "enum": ["bearer", "basic", "oauth2", "api-key", "none"]
    },
    "credential": {
      "type": "string"
    },
    "rateLimitRpm": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "description": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "Stripe-v2"
}

Response:

{
  "id": "conn_1"
}

---

GET /v1/discovery

Self-describing capability discovery — routing, models, budget, headers, errors

Capability ID: system.discovery Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "capabilities": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "budget": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "health": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "models": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "intelligence_headers": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "error_recovery": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "endpoints": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "capabilities",
    "budget",
    "health",
    "models",
    "intelligence_headers",
    "error_recovery",
    "endpoints"
  ],
  "additionalProperties": false
}

Examples

minimal

Request:

{}

Response:

{
  "capabilities": {},
  "budget": null,
  "health": {
    "providers": {},
    "circuit_breakers_open": 0,
    "kill_switch_active": false
  },
  "models": {
    "total": 0,
    "endpoints": 0,
    "providers": 0,
    "by_provider": {}
  },
  "intelligence_headers": {},
  "error_recovery": {},
  "endpoints": {
    "completions": "POST /v1/chat/completions"
  }
}

---

POST /v1/eval/datasets/{id}/items

Append items to an evaluation dataset (batch)

Capability ID: system.eval.datasets.add_items Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "items": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "input": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "expected_output": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": ["input"],
        "additionalProperties": false
      }
    }
  },
  "required": ["items"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

add

Request:

{
  "items": [
    {
      "input": {}
    }
  ]
}

Response:

{
  "count": 1
}

---

POST /v1/eval/datasets

Create an evaluation dataset

Capability ID: system.eval.datasets.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    }
  },
  "required": ["name"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "smoke-tests"
}

Response:

{
  "id": "ds_1"
}

---

DELETE /v1/eval/datasets/{id}

Delete an evaluation dataset and all its items

Capability ID: system.eval.datasets.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "deleted"
}

---

DELETE /v1/eval/datasets/{id}/items/{itemId}

Delete a single dataset item

Capability ID: system.eval.datasets.delete_item Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "deleted"
}

---

GET /v1/eval/datasets/{id}/export

Export dataset items (JSON default, CSV via ?format=csv)

Capability ID: system.eval.datasets.export Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

export

Request:

{}

Response:

{
  "items": []
}

---

GET /v1/eval/datasets/{id}

Get an evaluation dataset

Capability ID: system.eval.datasets.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "ds_1"
}

---

POST /v1/eval/datasets/{id}/import-from-logs

Import items from production completion audit logs

Capability ID: system.eval.datasets.import_logs Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "model": {
      "type": "string"
    },
    "min_tokens": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

import

Request:

{
  "limit": 10
}

Response:

{
  "imported": 0
}

---

GET /v1/eval/datasets

List evaluation datasets for the tenant

Capability ID: system.eval.datasets.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "datasets": []
}

---

GET /v1/eval/datasets/{id}/items

List items in an evaluation dataset

Capability ID: system.eval.datasets.list_items Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "items": []
}

---

PUT /v1/eval/datasets/{id}

Update an evaluation dataset (name, description)

Capability ID: system.eval.datasets.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "x"
}

Response:

{
  "id": "ds_1"
}

---

POST /v1/forensics/export

HMAC-signed forensic export bundle (usage + security events)

Capability ID: system.forensics.export Auth: apiKey Permission: forensics.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "agentId": {
      "type": "string"
    },
    "since": {
      "type": "string"
    },
    "until": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

export

Request:

{}

Response:

{
  "bundle": {}
}

---

GET /v1/forensics/session/{sessionId}/timeline

Reconstruct chronological timeline of events for a session

Capability ID: system.forensics.timeline Auth: apiKey Permission: forensics.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

timeline

Request:

{}

Response:

{
  "spans": []
}

---

POST /v1/god-mode/execute

Execute a Platform Contract tool by name (ChangeSet for mutations)

Capability ID: system.godMode.execute Auth: apiKey Permission: godMode.execute

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tool": {
      "type": "string",
      "maxLength": 64
    },
    "params": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["tool"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

exec

Request:

{
  "tool": "br.list_models"
}

Response:

{
  "success": true
}

---

GET /v1/god-mode/tools

Discover Brainstorm Platform Contract tools available on BR

Capability ID: system.godMode.tools Auth: apiKey Permission: godMode.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

tools

Request:

{}

Response:

{
  "tool_count": 0,
  "tools": []
}

---

DELETE /v1/governance/agent-manifests/{agentId}

Delete an agent manifest

Capability ID: system.governance.agentManifests.delete Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true
}

---

GET /v1/governance/agent-manifests/{agentId}

Get an agent manifest by agent id

Capability ID: system.governance.agentManifests.get Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "manifest": {}
}

---

GET /v1/governance/agent-manifests

List agent manifests (CAF Phase 2 semantic RBAC)

Capability ID: system.governance.agentManifests.list Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "manifests": []
}

---

PUT /v1/governance/agent-manifests/{agentId}

Create or replace an agent manifest

Capability ID: system.governance.agentManifests.upsert Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "role": {
      "type": "string"
    },
    "toolPolicies": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "toolPattern": {
            "type": "string"
          },
          "allowedRoles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blockedIntents": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxArgumentSize": {
            "type": "number"
          },
          "requiresApproval": {
            "type": "boolean"
          }
        },
        "required": ["toolPattern", "allowedRoles", "blockedIntents"],
        "additionalProperties": false
      }
    },
    "defaultAction": {
      "type": "string"
    },
    "intentThreshold": {
      "type": "number"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

upsert

Request:

{}

Response:

{
  "manifest": {}
}

---

GET /v1/governance/anomaly/history

Anomaly history (last N events)

Capability ID: system.governance.anomaly.history Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

history

Request:

{}

Response:

{
  "events": []
}

---

GET /v1/governance/anomaly/scores

Recent anomaly-detected security events

Capability ID: system.governance.anomaly.scores Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

scores

Request:

{}

Response:

{
  "events": []
}

---

GET /v1/governance/artifacts/{request_id}

Signed Governance Artifact for one request — control-mapped, verifiable evidence

Capability ID: system.governance.artifact.get Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

artifact

Request:

{}

Response:

{
  "artifactId": "gart_…",
  "coverage": "captured"
}

---

GET /v1/governance/audit/chain/verify

Verify the hash-chain integrity of the completion audit trail

Capability ID: system.governance.audit.chainVerify Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

chain

Request:

{}

Response:

{
  "valid": true
}

---

POST /v1/governance/audit/verify

Verify server-held evidence for one request — per-check signature / registry / chain / provenance

Capability ID: system.governance.audit.verify Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "minLength": 1
    },
    "artifact_id": {
      "type": "string",
      "minLength": 1
    },
    "receipt": {
      "description": "Caller-held receipt to compare against the committed evidence",
      "type": "object",
      "properties": {
        "hash": {
          "description": "Chain event hash as handed out in X-BR-Evidence-Receipt",
          "type": "string",
          "minLength": 1
        },
        "signature": {
          "description": "Artifact signature value (Ed25519 signature, or legacy HMAC)",
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

verify

Request:

{
  "request_id": "req_123"
}

Response:

{
  "checks": {
    "signature": {
      "state": "pass"
    },
    "registry_membership": {
      "state": "pass"
    },
    "chain_linkage": {
      "state": "pass"
    },
    "provenance_recompute": {
      "state": "not_applicable",
      "reason": "audit row uses chain payload v1…"
    }
  },
  "summary": "incomplete"
}

---

DELETE /v1/governance/behavioral-profiles/{role}

Delete a behavioral profile by role

Capability ID: system.governance.behavioralProfiles.delete Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true
}

---

GET /v1/governance/behavioral-profiles

List behavioral profiles (CAF Phase 2)

Capability ID: system.governance.behavioralProfiles.list Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "profiles": []
}

---

PUT /v1/governance/behavioral-profiles/{role}

Create or replace a behavioral profile for a role

Capability ID: system.governance.behavioralProfiles.upsert Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "maxRps": {
      "type": "number"
    },
    "maxPayloadBytes": {
      "type": "number"
    },
    "allowedDestinations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "maxFanOut": {
      "type": "number"
    },
    "maxRequestsPerWindow": {
      "type": "number"
    },
    "windowSeconds": {
      "type": "number"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

upsert

Request:

{}

Response:

{
  "profile": {}
}

---

GET /v1/governance/completion-audit

Completion audit trail (per-request identity + outcome)

Capability ID: system.governance.completionAudit Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

audit

Request:

{}

Response:

{
  "entries": []
}

---

GET /v1/governance/compliance/autopilot

Regulatory compliance autopilot (frameworks + score)

Capability ID: system.governance.compliance.autopilot Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

auto

Request:

{}

Response:

{}

---

GET /v1/governance/compliance/coverage

Evidence coverage — fraction of recorded decisions bound to the audit chain

Capability ID: system.governance.compliance.coverage Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

coverage

Request:

{}

Response:

{
  "total": 0,
  "binding": {
    "bound": 0,
    "unbound": 0,
    "boundRatio": null
  }
}

---

GET /v1/governance/compliance/eu-ai-act

Generate an EU AI Act compliance report

Capability ID: system.governance.compliance.euAiAct Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

report

Request:

{}

Response:

{
  "report": {}
}

---

POST /v1/governance/credentials/issue

Issue a verifiable agent credential (VAC)

Capability ID: system.governance.credentials.issue Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "minLength": 1
    },
    "organization_name": {
      "type": "string"
    },
    "department": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "validity_hours": {
      "type": "number",
      "exclusiveMinimum": 0
    }
  },
  "required": ["agent_id"],
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

issue

Request:

{
  "agent_id": "a"
}

Response:

{
  "credential": {}
}

---

POST /v1/governance/credentials/verify

Verify a credential signature and compute trust level

Capability ID: system.governance.credentials.verify Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "credential": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["credential"],
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

verify

Request:

{
  "credential": {}
}

Response:

{
  "valid": true
}

---

GET /v1/governance/data-policy

The tenant's effective data-protection posture — retention, no-training, attested processors, and enforcement behavior

Capability ID: system.governance.data_policy Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

effective-posture

Request:

{}

Response:

{
  "tenant_id": "t_123",
  "effective_posture": {
    "retention_max_days": 0,
    "no_training": true,
    "frameworks": ["hipaa"],
    "regions": ["us"],
    "evidence_mode": "required"
  },
  "attested_processors": {
    "count": 2,
    "processors": []
  },
  "enforcement": {
    "model": "per-request, tighten-only, fail-closed",
    "disclosure_headers": ["X-BR-Data-Policy", "X-BR-Data-Protection-Digest"]
  }
}

---

POST /v1/governance/knowledge/snapshot

Create a knowledge-escrow snapshot for an agent

Capability ID: system.governance.knowledge.snapshot Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "minLength": 1
    },
    "reason": {
      "type": "string",
      "enum": ["termination", "transfer", "backup", "audit"]
    },
    "requested_by": {
      "type": "string"
    },
    "performance_rating": {
      "type": "string"
    },
    "salary_tier": {
      "type": "string"
    },
    "blocks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "archival_limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": ["agent_id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

snap

Request:

{
  "agent_id": "a"
}

Response:

{
  "snapshot": {}
}

---

GET /v1/governance/lineage

Decision lineage — durable trace reconstruction (or ?live=true ring buffer)

Capability ID: system.governance.lineage Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

lineage

Request:

{}

Response:

{
  "records": []
}

---

GET /v1/governance/lineage/{request_id}

The WHY answer for one request — verified audit block + policy_context + lineage

Capability ID: system.governance.lineage.get Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

why

Request:

{}

Response:

{
  "request_id": "",
  "coverage": "captured"
}

---

GET /v1/governance/memory/audit

Memory change history (append/replace/delete/pin/evict)

Capability ID: system.governance.memory.audit Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

audit

Request:

{}

Response:

{
  "entries": []
}

---

GET /v1/governance/memory/compliance

Scan core memory for PII/policy violations

Capability ID: system.governance.memory.compliance Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

scan

Request:

{}

Response:

{
  "compliant": true
}

---

GET /v1/governance/memory/reconstruct

Reconstruct memory state at a past timestamp (with optional diff)

Capability ID: system.governance.memory.reconstruct Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

reconstruct

Request:

{}

Response:

{
  "state": {}
}

---

GET /v1/governance/memory/stats

Memory audit stats (operation counts by type)

Capability ID: system.governance.memory.stats Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

stats

Request:

{}

Response:

{
  "stats": {}
}

---

POST /v1/governance/policy/dry-run

Evaluate a PolicyContext against the tenant ruleset (no enforcement)

Capability ID: system.governance.policy.dryRun Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

dry

Request:

{
  "action": "tool.invoke"
}

Response:

{
  "decision": "allow"
}

---

GET /v1/governance/sleep-time/report

Sleep-time refinement history

Capability ID: system.governance.sleepTimeReport Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

report

Request:

{}

Response:

{
  "total_refinements": 0
}

---

POST /v1/governance/sovereignty/policy

Create a clean-room sovereignty policy between two orgs

Capability ID: system.governance.sovereignty.policy Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "org_a": {
      "type": "string",
      "minLength": 1
    },
    "org_b": {
      "type": "string",
      "minLength": 1
    },
    "org_a_access": {
      "type": "string",
      "enum": ["none", "read-shared", "read-write-shared"]
    },
    "org_b_access": {
      "type": "string",
      "enum": ["none", "read-shared", "read-write-shared"]
    },
    "ends_at": {
      "type": "number"
    }
  },
  "required": ["org_a", "org_b"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

policy

Request:

{
  "org_a": "A",
  "org_b": "B"
}

Response:

{
  "policy": {}
}

---

POST /v1/governance/sovereignty/purge

Issue a provable purge of memory entries for an org

Capability ID: system.governance.sovereignty.purge Auth: apiKey Permission: governance.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "minLength": 1
    },
    "entries": {
      "type": "array",
      "items": {}
    },
    "purged_by": {
      "type": "string"
    }
  },
  "required": ["organization_id"],
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

purge

Request:

{
  "organization_id": "O"
}

Response:

{
  "purge": {}
}

---

GET /v1/governance/summary

Executive dashboard summary (memory health + activity)

Capability ID: system.governance.summary Auth: apiKey Permission: governance.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

summary

Request:

{}

Response:

{
  "memory": {}
}

---

DELETE /v1/group-mappings/{id}

Delete an IdP group → role mapping

Capability ID: system.group_mappings.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true,
  "id": "map_1"
}

---

GET /v1/group-mappings/{id}

Get a single group → role mapping by ID

Capability ID: system.group_mappings.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "map_1"
}

---

GET /v1/group-mappings

List IdP group → RBAC role mappings for the tenant

Capability ID: system.group_mappings.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "mappings": [],
  "count": 0
}

---

PATCH /v1/group-mappings/{id}

Update an IdP group mapping's role, scopes, or display name

Capability ID: system.group_mappings.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "brRole": {
      "type": "string"
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "idpGroupName": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

promote

Request:

{
  "brRole": "operator"
}

Response:

{
  "id": "map_1",
  "brRole": "operator"
}

---

GET /v1/guardrails/catalog/{checkId}

Get a single check definition

Capability ID: system.guardrails.catalog.get Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{}

---

GET /v1/guardrails/catalog

List checks in the V2 guardrail registry

Capability ID: system.guardrails.catalog.list Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "checks": []
}

---

GET /v1/guardrails/config

Get the tenant guardrail pipeline config

Capability ID: system.guardrails.config.get Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "config": {}
}

---

PUT /v1/guardrails/config

Update the tenant guardrail pipeline config

Capability ID: system.guardrails.config.set Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "enabled": true
}

Response:

{
  "status": "updated"
}

---

POST /v1/guardrails/feedback

Submit false-positive / true-positive feedback for a guardrail scan

Capability ID: system.guardrails.feedback Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

fb

Request:

{
  "requestId": "r"
}

Response:

{
  "ok": true
}

---

GET /v1/guardrails/metrics

Aggregated scan + feedback metrics (security_events or in-memory)

Capability ID: system.guardrails.metrics Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

metrics

Request:

{}

Response:

{
  "totalRuns": 0
}

---

POST /v1/guardrails/pipelines

Create a V2 guardrail pipeline

Capability ID: system.guardrails.pipelines.create Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "p"
}

Response:

{}

---

DELETE /v1/guardrails/pipelines/{id}

Delete a V2 guardrail pipeline

Capability ID: system.guardrails.pipelines.delete Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "deleted"
}

---

GET /v1/guardrails/pipelines/{id}

Get a V2 guardrail pipeline by id

Capability ID: system.guardrails.pipelines.get Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{}

---

GET /v1/guardrails/pipelines

List tenant V2 guardrail pipelines

Capability ID: system.guardrails.pipelines.list Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "pipelines": []
}

---

POST /v1/guardrails/pipelines/{id}/test

Test a V2 guardrail pipeline against sample text

Capability ID: system.guardrails.pipelines.test Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{
  "text": "..."
}

Response:

{}

---

PUT /v1/guardrails/pipelines/{id}

Update a V2 guardrail pipeline

Capability ID: system.guardrails.pipelines.update Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{}

Response:

{}

---

POST /v1/guardrails/providers

Register an external guardrail provider

Capability ID: system.guardrails.providers.create Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "id": "x"
}

Response:

{
  "status": "registered"
}

---

DELETE /v1/guardrails/providers/{id}

Remove an external guardrail provider

Capability ID: system.guardrails.providers.delete Auth: apiKey Permission: guardrails.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "removed"
}

---

GET /v1/guardrails/providers

List built-in + external guardrail providers

Capability ID: system.guardrails.providers.list Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "providers": []
}

---

GET /v1/guardrails/templates

List well-known provider templates

Capability ID: system.guardrails.templates.list Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "templates": []
}

---

POST /v1/guardrails/test

Run text through the guardrail pipeline (testing/preview)

Capability ID: system.guardrails.test Auth: apiKey Permission: guardrails.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{
  "text": "..."
}

Response:

{
  "result": {}
}

---

GET /health

Liveness probe — returns ok while the process is up and serving HTTP

Capability ID: system.health Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "const": "healthy"
    },
    "version": {
      "type": "string"
    },
    "product": {
      "type": "string"
    },
    "uptime_seconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "timestamp": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    }
  },
  "required": ["status", "version", "product", "uptime_seconds", "timestamp"],
  "additionalProperties": false
}

Examples

healthy

Request:

{}

Response:

{
  "status": "healthy",
  "version": "1.0.0",
  "product": "br",
  "uptime_seconds": 12345,
  "timestamp": "2026-01-01T00:00:00.000Z"
}

---

GET /v1/health/providers

Per-provider health combining sentinel probes, circuit breakers, and BYOK key presence

Capability ID: system.health.providers Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "providers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sentinel": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string"
              },
              "latency_ms": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_probe_at": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": ["status", "latency_ms", "last_probe_at"],
            "additionalProperties": false
          },
          "models": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "circuit": {
                  "type": "string",
                  "enum": ["open", "closed"]
                },
                "routable": {
                  "type": "boolean"
                }
              },
              "required": ["id", "circuit", "routable"],
              "additionalProperties": false
            }
          },
          "aggregate": {
            "type": "object",
            "properties": {
              "total_models": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "routable_models": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "circuit_open_count": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "health": {
                "type": "string",
                "enum": ["healthy", "degraded", "down"]
              }
            },
            "required": ["total_models", "routable_models", "circuit_open_count", "health"],
            "additionalProperties": false
          },
          "has_key": {
            "type": "boolean"
          },
          "tenant_auth": {
            "type": "string",
            "enum": ["ok", "auth_error", "unknown"]
          },
          "routable_for_tenant": {
            "type": "boolean"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "enum": ["no_tenant_key", "auth_error", "all_circuits_open"]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "sentinel",
          "models",
          "aggregate",
          "has_key",
          "tenant_auth",
          "routable_for_tenant",
          "reason"
        ],
        "additionalProperties": false
      }
    },
    "summary": {
      "type": "object",
      "properties": {
        "total_providers": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "healthy": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "degraded": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "down": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        }
      },
      "required": ["total_providers", "healthy", "degraded", "down"],
      "additionalProperties": false
    }
  },
  "required": ["providers", "summary"],
  "additionalProperties": false
}

Examples

all-healthy

Request:

{}

Response:

{
  "providers": [],
  "summary": {
    "total_providers": 0,
    "healthy": 0,
    "degraded": 0,
    "down": 0
  }
}

---

POST /v1/tenant/claim-link

Generate a dashboard claim link (admin scope required)

Capability ID: system.identity.claim_link Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "enum": ["owner", "admin", "member"]
    },
    "max_uses": {
      "type": "number"
    },
    "expires_in_days": {
      "type": "number"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

owner

Request:

{
  "role": "owner"
}

Response:

{
  "token": "abc",
  "url": "..."
}

---

POST /v1/auth/device/authorize

Start a device-authorization flow (admin scope required)

Capability ID: system.identity.device_authorize Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

start

Request:

{}

Response:

{
  "device_code": "abc",
  "user_code": "XYZ"
}

---

POST /v1/auth/device/token

Poll device-authorization status

Capability ID: system.identity.device_token Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "device_code": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["device_code"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

linked

Request:

{
  "device_code": "abc"
}

Response:

{
  "status": "linked",
  "tenant": {
    "id": "t_1"
  }
}

---

POST /v1/auth/link

Generate a browser-based dashboard link URL (admin scope)

Capability ID: system.identity.link Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

link

Request:

{}

Response:

{
  "link_url": "https://..."
}

---

GET /v1/insights/daily

Daily cost-optimization insight rollup (requires DB)

Capability ID: system.insights.daily Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "rows": []
}

---

GET /v1/insights/forecast

Budget runway forecast (daily or monthly period)

Capability ID: system.insights.forecast Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "budget": {
      "type": "string"
    },
    "period": {
      "type": "string",
      "enum": ["daily", "monthly"]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

monthly

Request:

{}

Response:

{
  "projection": {}
}

---

GET /v1/insights/optimize

Model-substitution recommendations for cost reduction

Capability ID: system.insights.optimize Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "recommendations": []
}

---

GET /v1/insights/waste

Waste detection report. Returns 403 privacy_restricted on strict privacy mode.

Capability ID: system.insights.waste Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "status": "ok",
  "items": []
}

---

GET /v1/intelligence/institutional

Institutional intelligence (I3) index for the tenant

Capability ID: system.intelligence.institutional Auth: apiKey Permission: intelligence.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

i3

Request:

{}

Response:

{
  "index": {}
}

---

GET /v1/intelligence/sampling-audit

Routing-sampling audit (agent trap defense)

Capability ID: system.intelligence.samplingAudit Auth: apiKey Permission: intelligence.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

sa

Request:

{}

Response:

{
  "entries": []
}

---

GET /v1/mcp/audit

Recent MCP tool-call audit entries for the tenant

Capability ID: system.mcp.audit Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

audit

Request:

{}

Response:

{
  "entries": []
}

---

POST /v1/mcp/bootstrap

Pre-auth MCP bootstrap — register a tenant in-band over MCP (2 tools)

Capability ID: system.mcp.bootstrap Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

connect

Request:

{}

Response:

{}

---

GET /v1/mcp/bootstrap

MCP bootstrap discovery (2-tool manifest, no auth)

Capability ID: system.mcp.bootstrap_discover Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

discover

Request:

{}

Response:

{
  "name": "brainstormrouter-bootstrap",
  "version": "1.0.0",
  "transport": "streamable-http",
  "tools": [
    {
      "name": "br_register",
      "description": "Create a BrainstormRouter tenant + admin API key (no auth, no email, no browser). Same limits as POST /v1/register: 5/h per IP, 3 sandbox tenants/day per IP. A 429 from this tool is the register limiter, not the bootstrap connection limiter.",
      "permission": null
    },
    {
      "name": "br_bootstrap_info",
      "description": "Static pointers: authed MCP endpoint, docs, graduation path.",
      "permission": null
    }
  ],
  "next": "After registering, connect to POST /v1/mcp/connect with your br_live_ key for the full tool set."
}

---

GET /v1/mcp/capabilities

Core + external MCP tool catalog for the tenant

Capability ID: system.mcp.capabilities Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

caps

Request:

{}

Response:

{
  "capabilities": []
}

---

POST /v1/mcp/connect

Open an MCP Streamable HTTP session against BR's control-plane tools

Capability ID: system.mcp.connect Auth: apiKey Permission: mcp.connect

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

connect

Request:

{}

Response:

{}

---

GET /v1/mcp/connect

MCP server discovery (capability + tool manifest)

Capability ID: system.mcp.discover Auth: apiKey Permission: mcp.connect

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

discover

Request:

{}

Response:

{
  "name": "brainstormrouter",
  "version": "1.0.0",
  "transport": "streamable-http",
  "tools": [
    {
      "name": "br_route_completion",
      "description": "Send a message to any AI model. Set model='auto' for automatic cost/quality optimization. Supports streaming, tool calls, and vision.",
      "permission": "router.write"
    },
    {
      "name": "br_list_models",
      "description": "List all available models with pricing and capabilities. Use to discover what's routable before making completions.",
      "permission": "router.read"
    },
    {
      "name": "br_compare_models",
      "description": "Run the same prompt on 2-6 models in parallel. Returns per-model output, cost, latency, quality signals, and picks cheapest/fastest/best.",
      "permission": "router.write"
    },
    {
      "name": "br_get_usage",
      "description": "Check how much you've spent and how many requests you've made. Specify period: 'day', 'week', or 'month'.",
      "permission": "audit.read"
    },
    {
      "name": "br_explain_request",
      "description": "Get full routing explanation for a past request. Shows model selection method, alternatives, complexity, guardrails, cost, and latency.",
      "permission": "audit.read"
    },
    {
      "name": "br_estimate_cost",
      "description": "Predict cost before executing a request. Send messages and model to get estimated cost in USD, token counts, and cheaper alternatives.",
      "permission": "router.read"
    },
    {
      "name": "br_set_alias",
      "description": "Create a model shortcut. Example: alias 'fast' to 'anthropic/claude-haiku-4-5'. Use aliases in completions for easy switching.",
      "permission": "config.write"
    },
    {
      "name": "br_list_aliases",
      "description": "View all model aliases configured for your tenant. Aliases map friendly names to model IDs.",
      "permission": "config.read"
    },
    {
      "name": "br_patch_aliases",
      "description": "Bulk update aliases in one call. Set value to null to delete. Useful for swapping model tiers across all aliases.",
      "permission": "config.write"
    },
    {
      "name": "br_get_health",
      "description": "Check if BrainstormRouter is operational. Returns version, uptime, and endpoint counts. Use as a connectivity test.",
      "permission": "router.read"
    },
    {
      "name": "br_memory_list",
      "description": "Read all persistent memory entries. Returns facts organized by block (human, system, project, general).",
      "permission": "memory.read"
    },
    {
      "name": "br_memory_store",
      "description": "Save a fact that persists across sessions. Specify block: 'human' for user preferences, 'system' for instructions, 'project' for project-scoped facts, 'general' for everything else.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_query",
      "description": "Search memory by keyword relevance. Returns scored results. Use before completions to inject relevant context.",
      "permission": "memory.read"
    },
    {
      "name": "br_memory_delete",
      "description": "Remove a memory entry by its ID. Permanent — cannot be undone.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_update",
      "description": "Edit a memory entry's text or toggle its pinned status. Pinned entries are always included in context.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_shared_store",
      "description": "Save a fact visible to ALL agents in your tenant. Use for team knowledge, shared policies, or cross-agent coordination.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_shared_list",
      "description": "Read shared memory entries accessible by all agents in your tenant.",
      "permission": "memory.read"
    },
    {
      "name": "br_memory_set_importance",
      "description": "Set importance score (0.0-1.0) on a memory entry. Higher importance entries survive eviction longer.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_rethink",
      "description": "Atomically restructure a memory block — deduplicate, reorganize, and improve all facts. Full before/after logged to audit trail.",
      "permission": "memory.write"
    },
    {
      "name": "br_memory_reconstruct",
      "description": "Reconstruct memory state at a specific point in time using the audit trail. Event-sourced time travel.",
      "permission": "memory.read"
    },
    {
      "name": "br_list_prompts",
      "description": "List prompt templates with versions and A/B test status. Use to find reusable system prompts for your tenant.",
      "permission": "config.read"
    },
    {
      "name": "br_evaluate_prompt",
      "description": "Run a prompt template against test cases with scoring. Supports exact_match, contains, validity, and llm_judge scorers. Returns pass/fail per case.",
      "permission": "config.write"
    },
    {
      "name": "br_get_eval_results",
      "description": "Get stored evaluation run results for a prompt. Shows pass rate, scores, and per-case details from previous evaluations.",
      "permission": "config.read"
    },
    {
      "name": "br_list_presets",
      "description": "List routing presets — saved model+parameter combos. Reference as '@preset/slug' in completions.",
      "permission": "config.read"
    },
    {
      "name": "br_graduation_status",
      "description": "Graduation criteria + live progress for a sandbox tenant: community caps, usage today, reputation, and what graduating grants. Same data as GET /v1/account/graduation.",
      "permission": "config.read"
    },
    {
      "name": "br_graduate",
      "description": "Graduate a sandbox tenant to standard tier via a verified provider key (BYOK). Live-validates your registered provider keys; a strict pass promotes every community key ($5/day budget, community caps removed). No email, no browser.",
      "permission": "config.write"
    },
    {
      "name": "br_capabilities_query",
      "description": "Query BR's trust-scored capability graph (what the system can do, where it lives, how to invoke it, reversibility). Same data as GET /v1/capabilities — query, don't grep.",
      "permission": "router.read"
    },
    {
      "name": "br_capabilities_get",
      "description": "Fetch a single capability-graph node by exact id — the typed contract (what/where/how-to/recovery) plus trust vector. Same data as GET /v1/capabilities?id=...",
      "permission": "router.read"
    },
    {
      "name": "br_pattern_recommend",
      "description": "Get task execution pattern recommendations. Query what approaches work best for a task type before starting work.",
      "permission": "router.read"
    },
    {
      "name": "br_request_patterns",
      "description": "Get request pattern intelligence — which models succeed best for which request types (tool use, code, large context, etc.).",
      "permission": "router.read"
    },
    {
      "name": "br_routing_advise",
      "description": "Get predictive routing advice — recommended model with reasoning chain, evidence from similar past requests, alternatives with tradeoffs, and confidence score.",
      "permission": "router.read"
    },
    {
      "name": "br_fleet_insights",
      "description": "Get fleet-wide model intelligence: capability scores, success rates, best-for/weak-at signals. Query a model or get top-10 overview.",
      "permission": "router.read"
    },
    {
      "name": "br_get_ops_status",
      "description": "Full operations dashboard: endpoint health, budget status, usage trends, guardrail stats. Start here for system overview.",
      "permission": "router.read"
    },
    {
      "name": "br_get_ops_build",
      "description": "Get authenticated runtime build identity: commit SHA, build timestamp, image digest, and deploy ID. Use before live evidence probes.",
      "permission": "audit.read"
    },
    {
      "name": "br_diagnose_providers",
      "description": "Run the provider doctor against the current fleet — classifies every non-healthy provider with hypothesis, cited evidence, severity, and remediation steps. Call after `br_get_ops_status` shows providers down to figure out *why*.",
      "permission": "router.read"
    },
    {
      "name": "br_get_insights",
      "description": "Get cost optimization recommendations. Identifies waste, suggests cheaper models, and estimates potential savings.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_governance",
      "description": "Governance health check: memory usage by block, compliance status, audit trail statistics.",
      "permission": "audit.read"
    },
    {
      "name": "br_list_agents",
      "description": "List all agent profiles with lifecycle state, department, and cost center. Use to audit your agent fleet.",
      "permission": "agent.profile.read"
    },
    {
      "name": "br_get_leaderboard",
      "description": "Rank models by real performance: quality score, speed, value. Powered by Thompson sampling from actual usage data.",
      "permission": "router.read"
    },
    {
      "name": "br_recommend_model",
      "description": "Get ranked model recommendations for a task. Returns top models with scores, estimated costs, and reasons based on real production data.",
      "permission": "router.read"
    },
    {
      "name": "br_consensus",
      "description": "Evaluate consensus across multiple model responses. Submit 2-5 pre-collected responses and get the best answer via majority vote, quality scoring, or weighted Thompson sampling.",
      "permission": "router.write"
    },
    {
      "name": "br_bootstrap_agent",
      "description": "Create a new agent identity in one call. Returns profile + JWT + budget. Required before independent agent action.",
      "permission": "agent.bootstrap"
    },
    {
      "name": "br_agent_status",
      "description": "Full self-check: profile, budget remaining, rate limit headroom, recent anomaly events, and governance state.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_agent_limits",
      "description": "Check your budget and rate limit status. Shows enforced limits, current spend, and remaining capacity.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_agent_anomaly",
      "description": "View your recent security events. High anomaly scores may trigger trust degradation — check here to understand why.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_delegate_agent",
      "description": "Spawn a sub-agent with a sliced budget from your own. Requires agent JWT. The child inherits your trust tier.",
      "permission": "agent.delegate"
    },
    {
      "name": "br_list_sub_agents",
      "description": "List your active sub-agents. Shows budget consumed, remaining capacity, and lifecycle state for each.",
      "permission": "agent.delegate"
    },
    {
      "name": "br_terminate_sub_agent",
      "description": "Terminate a sub-agent and reclaim its unspent budget back to your allocation. Irreversible.",
      "permission": "agent.delegate"
    },
    {
      "name": "br_why",
      "description": "Why was a request decided or denied? Given a request_id, returns the verified audit block (chain hashes + provenance recompute), the policy_context deny reason, the durable lineage + neighbors, a coverage label, and anomalies. The deny reason is tamper-evident — committed to the audit chain.",
      "permission": "audit.read"
    },
    {
      "name": "br_lineage_trace",
      "description": "Reconstruct a causal episode from durable decision lineage. Pass trace_id (whole trace) or request_id (one request's spans); each edge is labeled verified/claimed/unverified from the row's committed fields. live=true reads the recent ring buffer.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_governance_artifact",
      "description": "Get the signed, control-mapped Governance Artifact for a request_id: audit-chain proof + coverage + policy/grant context + exercised framework controls (SOC2/EU AI Act/NIST/ISO 42001), optionally HMAC-signed. Assembled on-read from committed rows.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_agent_skill",
      "description": "Read an agent's accumulated skill — domain knowledge, learned patterns, project context. Skills grow from completions.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_update_agent_skill",
      "description": "Update an agent's skill with new knowledge, patterns, or standards. Partial merge — only specified fields change.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_list_agent_skills",
      "description": "List all agents and their skill summaries: domain, version, pattern count, total completions.",
      "permission": "agent.profile.read"
    },
    {
      "name": "br_get_skill_history",
      "description": "View how an agent's skill evolved over time. Shows version snapshots with triggers (accumulation, manual, seed).",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_get_employment_profile",
      "description": "Full Workday-style employment profile — identity, compensation, objectives, performance reviews, heartbeat, and compliance.",
      "permission": "agent.profile.read"
    },
    {
      "name": "br_set_objectives",
      "description": "Set MBOs (Management by Objectives) — measurable targets with auto-tracked progress from production data.",
      "permission": "agent.profile.write"
    },
    {
      "name": "br_get_performance_review",
      "description": "Performance review — current rating (exceeds/meets/needs_improvement/pip), review history, PIP status, promotion eligibility.",
      "permission": "agent.profile.read"
    },
    {
      "name": "br_trigger_review",
      "description": "Force an immediate off-cycle performance review for an agent.",
      "permission": "agent.profile.write"
    },
    {
      "name": "br_update_compensation",
      "description": "Update compensation — salary tier (intern/junior/senior/staff/principal), daily and monthly budget.",
      "permission": "agent.profile.write"
    },
    {
      "name": "br_get_heartbeat",
      "description": "Unified agent health surface — lifecycle state, anomaly score, reputation tier, and budget remaining in one call.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_workspace_list",
      "description": "List all workspace files for an agent — SOUL.md, context files, reference docs.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_workspace_get",
      "description": "Read a workspace file by name (e.g. SOUL.md, SESSION_CONTEXT.md).",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_workspace_put",
      "description": "Create or update a workspace file. Use for SOUL.md, context files, or reference docs (prefix with ref/).",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_workspace_delete",
      "description": "Delete a workspace file.",
      "permission": "agent.profile.self"
    },
    {
      "name": "br_list_config",
      "description": "List all tenant configuration sections with versions. Sections include routing, guardrails, security, mesh, and more.",
      "permission": "config.read"
    },
    {
      "name": "br_get_config",
      "description": "Read a specific config section by key. Returns the current value and OCC version number.",
      "permission": "config.read"
    },
    {
      "name": "br_set_config",
      "description": "Update a config section. Pass the full section value — it replaces the current config atomically.",
      "permission": "config.write"
    },
    {
      "name": "br_get_insights_daily",
      "description": "Daily cost breakdown by model. Shows per-model spend, request counts, and average cost. Use for budget planning.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_insights_forecast",
      "description": "Predict when your budget will run out. Uses 30-day trend data to project daily and monthly depletion dates.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_capacity",
      "description": "Provider health matrix: 24h request counts, success rates, latency, and health status per provider.",
      "permission": "router.read"
    },
    {
      "name": "br_get_security_status",
      "description": "Security posture overview: policy engine state, rule count, anomaly detector metrics. Check after config changes.",
      "permission": "security.read"
    },
    {
      "name": "br_get_policies",
      "description": "Read the active security policy ruleset. Shows all rules with conditions, actions, and priorities.",
      "permission": "security.read"
    },
    {
      "name": "br_test_policy",
      "description": "Dry-run a request context against security policies. See which rules would match without affecting live traffic.",
      "permission": "security.read"
    },
    {
      "name": "br_list_policy_packs",
      "description": "List the Policy Pack Library — framework-tagged packs (prod-safety, pii-protection, eu-ai-act-high-risk, nist-ai-rmf) enforced inline on live requests. Pass pack_id for one pack's full ruleset.",
      "permission": "security.read"
    },
    {
      "name": "br_get_siem_config",
      "description": "View SIEM export settings: destination (Splunk/LogScale), format (OCSF/CEF/JSON), and event filters.",
      "permission": "security.read"
    },
    {
      "name": "br_update_siem_config",
      "description": "Configure SIEM export: set destination URL, auth token, format, and which event types to forward.",
      "permission": "security.write"
    },
    {
      "name": "br_get_guardrail_config",
      "description": "View active guardrail pipeline: enabled scanners, mode (block/warn/log), PII detection settings.",
      "permission": "config.read"
    },
    {
      "name": "br_update_guardrail_config",
      "description": "Configure guardrails: enable/disable scanners, set mode, adjust PII detection sensitivity.",
      "permission": "config.write"
    },
    {
      "name": "br_test_guardrails",
      "description": "Test content against guardrails without affecting traffic. Returns which scanners would trigger and why.",
      "permission": "config.write"
    },
    {
      "name": "br_get_budget_status",
      "description": "Check budget: daily and monthly spend vs limits. Shows remaining capacity and whether limits are enforced.",
      "permission": "audit.read"
    },
    {
      "name": "br_get_budget_forecast",
      "description": "Predict budget depletion: projected spend rate, estimated exhaustion date, anomaly alerts if spending spikes.",
      "permission": "audit.read"
    },
    {
      "name": "br_activate_killswitch",
      "description": "EMERGENCY: Immediately halt ALL AI routing for this tenant. Reversible via br_deactivate_killswitch. Use with caution.",
      "permission": "security.write"
    },
    {
      "name": "br_deactivate_killswitch",
      "description": "Resume AI routing after emergency stop. All pending requests will start flowing again immediately.",
      "permission": "security.write"
    },
    {
      "name": "br_get_killswitch_status",
      "description": "Check kill switch state and activation history. Shows who activated, when, and the reason given.",
      "permission": "security.read"
    },
    {
      "name": "br_killswitch_scope",
      "description": "Surgically kill a specific agent, tool, or provider without stopping all routing. More precise than full kill switch.",
      "permission": "security.write"
    },
    {
      "name": "br_list_killswitch_scopes",
      "description": "List all active scoped kill switches with their type, target, reason, and activation time.",
      "permission": "security.read"
    },
    {
      "name": "br_deactivate_killswitch_scope",
      "description": "Remove a scoped kill switch, re-enabling the targeted agent, tool, or provider.",
      "permission": "security.write"
    },
    {
      "name": "br_policy_dry_run",
      "description": "Simulate a policy evaluation: pass any request context and see exactly which rules match, in what order.",
      "permission": "security.read"
    },
    {
      "name": "br_replay_decisions",
      "description": "Review recent routing decisions: which model was chosen, why, and what alternatives were considered.",
      "permission": "audit.read"
    },
    {
      "name": "br_session_timeline",
      "description": "Reconstruct a chronological session timeline: usage, security events, memory mutations. For incident investigation.",
      "permission": "audit.read"
    },
    {
      "name": "br_forensic_snapshots",
      "description": "View forensic proof-of-death records for terminated agents. Contains final state, budget, and termination reason.",
      "permission": "security.read"
    },
    {
      "name": "br_list_pending_approvals",
      "description": "List pending human-in-the-loop approval requests. Agents can queue actions that require human sign-off.",
      "permission": "security.read"
    },
    {
      "name": "br_approve_request",
      "description": "Approve a pending HITL request. The queued action will execute immediately upon approval.",
      "permission": "security.write"
    },
    {
      "name": "br_reject_request",
      "description": "Reject a pending HITL request. The queued action is discarded and the requester is notified.",
      "permission": "security.write"
    },
    {
      "name": "br_list_tenants",
      "description": "List all tenants with status, spend, and model count. Filter by status: pending, active, suspended. Admin only.",
      "permission": "platform.admin"
    },
    {
      "name": "br_approve_tenant",
      "description": "Activate a pending tenant. They gain immediate access to the API. Admin only.",
      "permission": "platform.admin"
    },
    {
      "name": "br_reject_tenant",
      "description": "Reject a pending tenant application. They cannot access the API. Admin only.",
      "permission": "platform.admin"
    },
    {
      "name": "br_get_business_digest",
      "description": "Executive summary: total tenants, aggregate spend, pending approvals, growth trends. Admin only.",
      "permission": "platform.admin"
    },
    {
      "name": "br_create_invite_code",
      "description": "Generate a beta invite code. Required for POST /v1/register. Set max_uses and expiry. Admin only.",
      "permission": "platform.admin"
    },
    {
      "name": "br_mcp_server_health",
      "description": "Probe a registered MCP server's health. Tests connectivity, refreshes OAuth2 tokens if needed.",
      "permission": "config.read"
    },
    {
      "name": "br_my_permissions",
      "description": "View your RBAC roles and permissions. Shows what you can and cannot do, plus how to request elevated access.",
      "permission": "router.read"
    },
    {
      "name": "br_guardrail_metrics",
      "description": "Guardrail scanner performance: pass/fail/error rates per scanner, feedback summary, and trend data.",
      "permission": "security.read"
    },
    {
      "name": "br_onboard",
      "description": "One-call agent setup. Returns recommended models, relevant tools, configuration, and first-steps guide based on your preferences.",
      "permission": "router.read"
    },
    {
      "name": "br_mesh_execute",
      "description": "Execute a distributed workflow on the mesh. Steps run in parallel when independent, sequential when dependent. Streams SSE progress.",
      "permission": "router.write"
    },
    {
      "name": "br_route_recommend",
      "description": "Delegate model selection to BrainstormRouter intelligence — returns optimal model using Thompson sampling, auto-selection, and cost-quality frontier.",
      "permission": "router.read"
    },
    {
      "name": "br_feedback_report",
      "description": "Report outcome feedback for a model request — feeds Thompson sampling learning loop. Use after task completion to report success/failure/partial.",
      "permission": "router.write"
    },
    {
      "name": "br_trajectory_record",
      "description": "Record an orchestration trajectory — multi-phase agentic workflow with per-phase model, cost, duration, tools, and outcome. Feeds BrainstormLLM training flywheel.",
      "permission": "audit.write"
    },
    {
      "name": "br_trajectory_query",
      "description": "Query orchestration trajectories with filters: project, request_type, source, limit, since. Returns newest first.",
      "permission": "audit.read"
    },
    {
      "name": "br_task_run_report",
      "description": "Report a completed task run with cost, duration, and model used. Feeds telemetry for CLI agent task tracking.",
      "permission": "audit.write"
    },
    {
      "name": "br_project_register",
      "description": "Register or sync a CLI project. Upserts by name with optional path, description, and budget limits.",
      "permission": "config.write"
    },
    {
      "name": "br_memory_blocks_sync",
      "description": "Bulk upsert core memory blocks for a project. Syncs CLAUDE.md, conventions, and other structured knowledge into memory.",
      "permission": "memory.write"
    },
    {
      "name": "br_project_config",
      "description": "Set project configuration: model, budget, guardrails, conventions, protected paths. Use to sync team-wide settings.",
      "permission": "config.write"
    },
    {
      "name": "br_project_activity",
      "description": "View active sessions and recent changes on a project. Shows who is working, what they're doing, and cost so far.",
      "permission": "router.read"
    },
    {
      "name": "br_agent_run_start",
      "description": "Create a pending agent run session. Returns a session_id. To actually execute the multi-turn loop, call POST /v1/agents/:agentId/run with the session_id (the loop requires HTTP for SSE streaming). Use this to pre-create sessions for delegation workflows.",
      "permission": "agent.delegate"
    },
    {
      "name": "br_agent_run_status",
      "description": "Check the status of an agent run (session). Returns total turns, cost, duration, end reason, and last model used.",
      "permission": "agent.profile.read"
    },
    {
      "name": "br_agent_run_cancel",
      "description": "Cancel a running agent session. The loop stops after the current turn and the session is marked as ended.",
      "permission": "agent.delegate"
    },
    {
      "name": "br_xdr_list_destinations",
      "description": "List XDR/SIEM destinations configured for this tenant. Returns destination type, enabled status, delivery stats. Credentials are redacted in the response.",
      "permission": "config.read"
    },
    {
      "name": "br_xdr_create_destination",
      "description": "Create an XDR/SIEM destination for forwarding BrainstormRouter security events. Supported types: crowdstrike, sentinel, splunk-ocsf, cortex, datadog-ocsf. Requires vendor-specific config (API keys, endpoints).",
      "permission": "config.write"
    },
    {
      "name": "br_xdr_test_destination",
      "description": "Send a test event to an XDR destination to verify connectivity and authentication. Returns ok: true on success or ok: false with the error message.",
      "permission": "config.write"
    }
  ]
}

---

GET /v1/mcp/approvals

List pending MCP tool-call approvals

Capability ID: system.mcp.governance.approvalsList Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "approvals": []
}

---

POST /v1/mcp/approvals/{id}/approve

Approve a queued MCP tool call

Capability ID: system.mcp.governance.approve Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

approve

Request:

{}

Response:

{
  "status": "approved"
}

---

POST /v1/mcp/approvals/{id}/deny

Deny a queued MCP tool call

Capability ID: system.mcp.governance.deny Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

deny

Request:

{}

Response:

{
  "status": "denied"
}

---

GET /v1/mcp/governance

Get MCP governance engine status

Capability ID: system.mcp.governance.status Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

status

Request:

{}

Response:

{
  "enabled": false
}

---

PUT /v1/mcp/governance/policy

Update an MCP tool-name policy in the governance engine

Capability ID: system.mcp.governance.updatePolicy Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tool_name": {
      "type": "string"
    },
    "allowed": {
      "type": "boolean"
    },
    "max_cost_usd": {
      "type": "number"
    },
    "requires_approval": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

policy

Request:

{
  "tool_name": "shell",
  "allowed": false
}

Response:

{
  "ok": true
}

---

POST /v1/mcp/servers

Register an external MCP server for this tenant

Capability ID: system.mcp.servers.create Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "transport": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "auth": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "allowed_key_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "shadow_mode": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "n8n",
  "transport": "http",
  "url": "https://..."
}

Response:

{}

---

DELETE /v1/mcp/servers/{id}

Remove an MCP server registration

Capability ID: system.mcp.servers.delete Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "removed"
}

---

POST /v1/mcp/servers/{id}/discover

Trigger remote tool discovery for an MCP server

Capability ID: system.mcp.servers.discover Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

discover

Request:

{}

Response:

{
  "tools": []
}

---

GET /v1/mcp/servers/{id}

Get details for an MCP server

Capability ID: system.mcp.servers.get Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "server": {}
}

---

POST /v1/mcp/servers/{id}/health

Trigger an on-demand health check for an MCP server

Capability ID: system.mcp.servers.healthCheck Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

check

Request:

{}

Response:

{
  "health": {}
}

---

GET /v1/mcp/servers/{id}/health

Get the last health status for an MCP server

Capability ID: system.mcp.servers.healthGet Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

status

Request:

{}

Response:

{
  "health": {}
}

---

GET /v1/mcp/servers

List registered MCP servers for this tenant

Capability ID: system.mcp.servers.list Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "servers": []
}

---

PUT /v1/mcp/servers/{id}

Update an MCP server registration

Capability ID: system.mcp.servers.update Auth: apiKey Permission: mcp.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "auth": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "allowed_key_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "shadow_mode": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{
  "enabled": false
}

Response:

{
  "server": {}
}

---

POST /v1/mcp/tools/{server}/{tool}

Execute a tool call through the MCP gateway (proxied + governed)

Capability ID: system.mcp.tools.call Auth: apiKey Permission: mcp.execute

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "arguments": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

call

Request:

{
  "arguments": {}
}

Response:

{
  "result": {}
}

---

GET /v1/mcp/tools

List all discovered tools across registered MCP servers

Capability ID: system.mcp.tools.list Auth: apiKey Permission: mcp.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "tools": []
}

---

GET /v1/memory/approval-config

Get the memory-write approval-required flag

Capability ID: system.memory.approvalConfig.get Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "requireApproval": false
}

---

PUT /v1/memory/approval-config

Set the memory-write approval-required flag

Capability ID: system.memory.approvalConfig.set Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "requireApproval": {
      "type": "boolean"
    }
  },
  "required": ["requireApproval"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "requireApproval": true
}

Response:

{
  "ok": true
}

---

GET /v1/memory/blocks/{block}

List entries in a specific memory block

Capability ID: system.memory.blocks.get Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "entries": []
}

---

GET /v1/memory/blocks

List memory blocks with entry counts (optional ?project= filter)

Capability ID: system.memory.blocks.list Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "blocks": []
}

---

POST /v1/memory/blocks/sync

Bulk upsert core memory entries for a project (Brainstorm CLI)

Capability ID: system.memory.blocks.sync Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "project": {
      "type": "string"
    },
    "blocks": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "required": ["key", "value"],
          "additionalProperties": false
        }
      }
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

sync

Request:

{
  "project": "p",
  "blocks": {}
}

Response:

{
  "ok": true
}

---

POST /v1/memory/entries

Append a new core memory entry (alias for /v1/memory/store)

Capability ID: system.memory.entries.create Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "fact": {
      "type": "string"
    },
    "context": {
      "type": "string"
    },
    "block": {
      "type": "string"
    },
    "pinned": {
      "type": "boolean"
    },
    "project": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "fact": "User prefers dark mode"
}

Response:

{
  "ok": true
}

---

DELETE /v1/memory/entries/{id}

Delete a memory entry

Capability ID: system.memory.entries.delete Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/memory/entries

List all core memory entries (optional ?project= filter)

Capability ID: system.memory.entries.list Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "entries": []
}

---

PUT /v1/memory/entries/{id}

Update fact text and/or pin state for an entry

Capability ID: system.memory.entries.update Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "fact": {
      "type": "string"
    },
    "pinned": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{
  "pinned": true
}

Response:

{
  "entry": {}
}

---

POST /v1/memory/init

Bootstrap memory from context documents via LLM extraction

Capability ID: system.memory.init Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "documents": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string"
          },
          "source": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "model": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

init

Request:

{
  "documents": []
}

Response:

{
  "status": "ok"
}

---

POST /v1/memory/pending/{id}/approve

Approve a pending memory write (unified queue or legacy)

Capability ID: system.memory.pending.approve Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

approve

Request:

{}

Response:

{
  "status": "approved"
}

---

GET /v1/memory/pending

List pending memory writes (unified queue + legacy)

Capability ID: system.memory.pending.list Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

pending

Request:

{}

Response:

{
  "pending": []
}

---

POST /v1/memory/pending/{id}/reject

Reject a pending memory write

Capability ID: system.memory.pending.reject Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

reject

Request:

{}

Response:

{
  "status": "rejected"
}

---

POST /v1/memory/query

Relevance-scored memory query (top-N matches)

Capability ID: system.memory.query Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string"
    },
    "query": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

query

Request:

{
  "query": "user prefs"
}

Response:

{
  "results": []
}

---

GET /v1/memory/shared/entries

List shared memory entries plus pending approval count

Capability ID: system.memory.shared.list Auth: apiKey Permission: memory.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "entries": []
}

---

POST /v1/memory/shared/store

Store a tenant-wide shared memory entry (may queue for approval)

Capability ID: system.memory.shared.store Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "fact": {
      "type": "string"
    },
    "context": {
      "type": "string"
    },
    "block": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

store

Request:

{
  "fact": "fact"
}

Response:

{
  "ok": true
}

---

POST /v1/memory/store

Append a core memory entry (canonical path)

Capability ID: system.memory.store Auth: apiKey Permission: memory.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "fact": {
      "type": "string"
    },
    "context": {
      "type": "string"
    },
    "block": {
      "type": "string"
    },
    "pinned": {
      "type": "boolean"
    },
    "project": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

store

Request:

{
  "fact": "User prefers dark mode"
}

Response:

{
  "ok": true
}

---

GET /v1/mesh/agents

List registered agents in the mesh for this tenant

Capability ID: system.mesh.agents.list Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "agents": []
}

---

POST /v1/mesh/check

Evaluate a mesh access decision for source → destination

Capability ID: system.mesh.check Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "sourceSpiffeId": {
      "type": "string",
      "minLength": 1
    },
    "destinationSpiffeIdOrHostname": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["sourceSpiffeId", "destinationSpiffeIdOrHostname"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

check

Request:

{
  "sourceSpiffeId": "s",
  "destinationSpiffeIdOrHostname": "d"
}

Response:

{
  "effect": "allow"
}

---

POST /v1/mesh/deregister

Deregister an agent from the mesh (mTLS required)

Capability ID: system.mesh.deregister Auth: mtls Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "hostname": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["hostname"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

dereg

Request:

{
  "hostname": "h"
}

Response:

{
  "ok": true
}

---

POST /v1/mesh/execute

Run a DAG-based mesh workflow, streaming step progress as SSE

Capability ID: system.mesh.execute Auth: apiKey Permission: mesh.execute

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

exec

Request:

{
  "workflow": {
    "id": "w",
    "name": "n",
    "steps": []
  }
}

Response:

{
  "workflow_id": "w"
}

---

GET /v1/mesh/forensics/{id}

Get a single forensic snapshot by id

Capability ID: system.mesh.forensics.get Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "snapshot": {}
}

---

GET /v1/mesh/forensics

List forensic snapshots for the tenant

Capability ID: system.mesh.forensics.list Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "snapshots": []
}

---

GET /v1/mesh/graph

Current mesh graph snapshot for this tenant

Capability ID: system.mesh.graph Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

graph

Request:

{}

Response:

{}

---

GET /v1/mesh/graph/history

Historical mesh graph snapshots over the last N hours

Capability ID: system.mesh.graph.history Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

history

Request:

{}

Response:

{
  "snapshots": []
}

---

POST /v1/mesh/heartbeat

Send a liveness heartbeat for the calling agent (mTLS required)

Capability ID: system.mesh.heartbeat Auth: mtls Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "hostname": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["hostname"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

hb

Request:

{
  "hostname": "h"
}

Response:

{
  "ok": true
}

---

POST /v1/mesh/invoke/{hostname}

Proxy an A2A call through the mesh (mTLS required)

Capability ID: system.mesh.invoke Auth: mtls Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

invoke

Request:

{}

Response:

{
  "success": true
}

---

POST /v1/mesh/invoke-did/{target_did}

Resolve a target DID via the Capability Registry and forward the invocation to the owning product (v0.3 P6.3)

Capability ID: system.mesh.invoke_did Auth: agentJwt Permission: mesh.invoke

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "minLength": 1
    },
    "input": {},
    "task_id": {
      "type": "string"
    }
  },
  "required": ["capability"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

invoke

Request:

{
  "capability": "agent.list_devices",
  "input": {
    "query": "macs"
  }
}

Response:

{
  "ok": true
}

---

POST /v1/mesh/policies

Create a mesh allow/deny policy

Capability ID: system.mesh.policies.create Auth: apiKey Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "sourcePattern": {
      "type": "string",
      "minLength": 1
    },
    "destinationPattern": {
      "type": "string",
      "minLength": 1
    },
    "effect": {
      "type": "string",
      "enum": ["allow", "deny"]
    },
    "priority": {
      "type": "number"
    },
    "description": {
      "type": "string"
    }
  },
  "required": ["sourcePattern", "destinationPattern", "effect"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "sourcePattern": "*",
  "destinationPattern": "*",
  "effect": "allow"
}

Response:

{
  "policy": {}
}

---

DELETE /v1/mesh/policies/{id}

Delete a mesh policy by id

Capability ID: system.mesh.policies.delete Auth: apiKey Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

del

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/mesh/policies

List mesh RBAC policies

Capability ID: system.mesh.policies.list Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "policies": []
}

---

POST /v1/mesh/profiles

Create a mesh behavioral profile

Capability ID: system.mesh.profiles.create Auth: apiKey Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "minLength": 1
    },
    "maxRps": {
      "type": "number"
    },
    "maxPayloadBytes": {
      "type": "number"
    },
    "allowedDestinations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "maxFanOut": {
      "type": "number"
    },
    "maxRequestsPerWindow": {
      "type": "number"
    },
    "windowSeconds": {
      "type": "number"
    }
  },
  "required": ["role"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "role": "agent"
}

Response:

{
  "profile": {}
}

---

DELETE /v1/mesh/profiles/{role}

Delete a mesh behavioral profile by role

Capability ID: system.mesh.profiles.delete Auth: apiKey Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

del

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/mesh/profiles

List mesh behavioral profiles

Capability ID: system.mesh.profiles.list Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "profiles": []
}

---

POST /v1/mesh/register

Register an agent in the service mesh (mTLS required)

Capability ID: system.mesh.register Auth: mtls Permission: mesh.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "hostname": {
      "type": "string",
      "minLength": 1
    },
    "endpoint": {
      "type": "string",
      "minLength": 1
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "machine_id_fingerprint": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["hostname", "endpoint"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

register

Request:

{
  "hostname": "h",
  "endpoint": "https://..."
}

Response:

{
  "agent": {}
}

---

GET /v1/mesh/resolve/{hostname}

Resolve a mesh hostname to its agent registration

Capability ID: system.mesh.resolve Auth: apiKey Permission: mesh.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

resolve

Request:

{}

Response:

{
  "agent": {}
}

---

GET /metrics

Prometheus-compatible metrics endpoint (text exposition format)

Capability ID: system.metrics Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

scrape

Request:

{}

Response:

{}

---

GET /v1/models/leaderboard

Per-model performance rankings across reward, quality, speed, value, reliability

Capability ID: system.models_leaderboard Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

default

Request:

{}

Response:

{
  "object": "list",
  "data": [],
  "sort_by": "overall",
  "model_count": 0
}

---

GET /v1/models/{provider}/{modelId}/capabilities

Per-model capability profile: catalog flags + production quality/latency/success metrics

Capability ID: system.models.capabilities Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "provider": {
      "type": "string"
    },
    "modelId": {
      "type": "string"
    },
    "window": {
      "type": "string"
    }
  },
  "required": ["provider", "modelId"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

lookup

Request:

{
  "provider": "openai",
  "modelId": "gpt-4o"
}

Response:

{
  "model": "openai/gpt-4o",
  "catalog": {
    "supports_tools": true
  },
  "production": {
    "sample_count": 0
  }
}

---

GET /v1/models

List available models for the authenticated tenant (auto-detects OpenAI vs Anthropic format)

Capability ID: system.models.list Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "includeUnhealthy": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

openai-format

Request:

{}

Response:

{
  "object": "list",
  "data": []
}

---

POST /v1/oauth/apps

Register an OAuth app (developer-facing)

Capability ID: system.oauth.apps.create Auth: apiKey Permission: oauth.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "callback_urls": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "website_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "My App",
  "callback_urls": ["https://example.com/cb"]
}

Response:

{
  "id": "..."
}

---

DELETE /v1/oauth/apps/{id}

Revoke an OAuth app (soft delete — sets active=false)

Capability ID: system.oauth.apps.delete Auth: apiKey Permission: oauth.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/oauth/apps

List OAuth apps for the tenant

Capability ID: system.oauth.apps.list Auth: apiKey Permission: oauth.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "apps": [],
  "total": 0
}

---

POST /v1/observability/destinations

Add a broadcast destination

Capability ID: system.observability.addDestination Auth: apiKey Permission: observability.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "batch": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "filter_rules": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

add

Request:

{
  "name": "Webhook",
  "type": "webhook",
  "config": {
    "url": "https://example.com"
  }
}

Response:

{
  "destination": {}
}

---

DELETE /v1/observability/destinations/{id}

Remove a broadcast destination

Capability ID: system.observability.deleteDestination Auth: apiKey Permission: observability.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "status": "removed"
}

---

GET /v1/observability/config

Get the full broadcast config (enabled + destinations)

Capability ID: system.observability.getConfig Auth: apiKey Permission: observability.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "config": {}
}

---

GET /v1/observability/templates/{provider}

Get a single integration template (config schema + example)

Capability ID: system.observability.getTemplate Auth: apiKey Permission: observability.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "template": {}
}

---

GET /v1/observability/destinations

List configured broadcast destinations for the tenant

Capability ID: system.observability.listDestinations Auth: apiKey Permission: observability.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "destinations": []
}

---

GET /v1/observability/templates

List available integration template names

Capability ID: system.observability.listTemplates Auth: apiKey Permission: observability.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "templates": []
}

---

GET /v1/observability

Observability surface summary (broadcast state + destination count + sub-endpoints)

Capability ID: system.observability.summary Auth: apiKey Permission: observability.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

summary

Request:

{}

Response:

{
  "enabled": false,
  "destination_count": 0,
  "endpoints": {}
}

---

POST /v1/observability/test/{id}

Send a synthetic event to verify a destination is reachable

Capability ID: system.observability.testDestination Auth: apiKey Permission: observability.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{}

Response:

{
  "status": "sent"
}

---

PUT /v1/observability/config

Enable or disable broadcasting for the tenant

Capability ID: system.observability.updateConfig Auth: apiKey Permission: observability.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "enabled": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{
  "enabled": true
}

Response:

{
  "enabled": true
}

---

PUT /v1/observability/destinations/{id}

Update a broadcast destination

Capability ID: system.observability.updateDestination Auth: apiKey Permission: observability.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "batch": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "filter_rules": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{}

Response:

{
  "destination": {}
}

---

POST /v1/onboard

Personalized one-call agent setup: identity, models, tools, budget, bootstrap path

Capability ID: system.onboard Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "agent_name": {
      "type": "string"
    },
    "preferred_tasks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "budget_hint": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

minimal

Request:

{}

Response:

{
  "identity": {},
  "recommended_models": [],
  "mcp_tools": []
}

---

GET /v1/operator-registry/list

List operator-facing god-mode capabilities from the platform operator-capability registry (v0.5 M00a SoR). Used by the HAI chat dispatcher + capability browser.

Capability ID: system.operator_registry.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "product": {
      "type": "string"
    },
    "persona": {
      "type": "string"
    },
    "include_superseded": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "capabilities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "capability_id": {
            "type": "string"
          },
          "product": {
            "type": "string"
          },
          "persona": {
            "type": "string"
          },
          "chat_posture": {
            "type": "string",
            "enum": ["direct-read", "changeset-write", "prohibited"]
          },
          "requires_changeset": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "superseded_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "registered_at": {
            "type": "string"
          },
          "last_heartbeat_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_fresh": {
            "type": "boolean"
          }
        },
        "required": [
          "capability_id",
          "product",
          "persona",
          "chat_posture",
          "requires_changeset",
          "status",
          "superseded_by",
          "registered_at",
          "last_heartbeat_at",
          "is_fresh"
        ],
        "additionalProperties": false
      }
    },
    "count": {
      "type": "number"
    },
    "fresh_count": {
      "type": "number"
    },
    "stale_count": {
      "type": "number"
    },
    "schema_version": {
      "type": "number",
      "const": 1
    }
  },
  "required": ["capabilities", "count", "fresh_count", "stale_count", "schema_version"],
  "additionalProperties": false
}

Examples

list-all-operator-caps

Request:

{}

Response:

{
  "capabilities": [
    {
      "capability_id": "msp.users.list",
      "product": "msp",
      "persona": "user",
      "chat_posture": "direct-read",
      "requires_changeset": false,
      "status": "active",
      "superseded_by": null,
      "registered_at": "2026-05-19T12:00:00Z",
      "last_heartbeat_at": "2026-05-19T12:04:30Z",
      "is_fresh": true
    }
  ],
  "count": 1,
  "fresh_count": 1,
  "stale_count": 0,
  "schema_version": 1
}

---

GET /v1/ops/alert-log

Recent alert-delivery receipts + last delivery timestamp — proves SNS alarms actually reach a subscriber

Capability ID: system.ops.alertLog Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

recent-receipts

Request:

{}

Response:

{
  "last_alert_delivery": "2026-08-09T12:00:00.000Z",
  "count": 1,
  "redis_available": true,
  "receipts": [
    {
      "alarm_name": "br-prod-soak-test-failure",
      "new_state": "ALARM",
      "reason": "Threshold Crossed",
      "received_at": "2026-08-09T12:00:00.000Z"
    }
  ]
}

---

GET /v1/ops/build

Authenticated runtime build identity for evidence-gated production verification

Capability ID: system.ops.build Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

runtime-identity

Request:

{}

Response:

{
  "gate": "G1",
  "closes": "G1 merged-vs-running gate",
  "commit_sha": "d256ac285ac5a5c48e4015bc3cf0937a0db6c3b6",
  "built_at": "2026-05-22T00:00:00.000Z",
  "image_digest": "sha256:...",
  "node_version": "v22.22.0"
}

---

POST /v1/ops/circuit/reset

Manually reset circuit breakers (endpoint, provider, or all). Admin-only.

Capability ID: system.ops.circuit.reset Auth: apiKey Permission: router.admin

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "endpointId": {
      "type": "string"
    },
    "provider": {
      "type": "string"
    },
    "all": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "reset": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "count": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["reset", "count"],
  "additionalProperties": false
}

Examples

single-endpoint

Request:

{
  "endpointId": "google::gemini-2.5-flash"
}

Response:

{
  "reset": ["google::gemini-2.5-flash"],
  "count": 1
}

---

POST /v1/ops/diagnose

Run provider-doctor against the fleet; returns structured diagnoses + remediations

Capability ID: system.ops.diagnose Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

healthy-fleet

Request:

{}

Response:

{
  "providers": [],
  "summary": {
    "healthy": 0
  }
}

---

GET /v1/ops/diagnose

GET alias for /v1/ops/diagnose (read-only fleet diagnosis)

Capability ID: system.ops.diagnose.get Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

healthy-fleet

Request:

{}

Response:

{
  "providers": [],
  "summary": {
    "healthy": 0
  }
}

---

GET /v1/ops/status

Single-pane-of-glass status: providers, endpoints, budget, usage

Capability ID: system.ops.status Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

ready

Request:

{}

Response:

{
  "status": "ready",
  "providers": {},
  "endpoints": {},
  "budget": {},
  "usage": {}
}

---

DELETE /v1/presets/{slug}

Archive a routing preset (soft-delete)

Capability ID: system.presets.archive Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

archive

Request:

{}

Response:

{
  "slug": "prod",
  "status": "archived"
}

---

POST /v1/presets

Create a routing preset (saved @preset/ configuration)

Capability ID: system.presets.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "model": {
      "type": "string",
      "minLength": 1
    },
    "strategy": {
      "type": "string",
      "enum": ["price", "latency", "throughput", "priority", "quality", "cascade"]
    },
    "fallbacks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provider_allow": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provider_deny": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "max_cost_usd": {
      "type": "number",
      "minimum": 0
    },
    "variant": {
      "type": "string"
    }
  },
  "required": ["slug", "name", "model"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "slug": "prod",
  "name": "Prod",
  "model": "anthropic/claude-sonnet-4"
}

Response:

{
  "preset": {
    "slug": "prod"
  }
}

---

GET /v1/presets/{slug}

Get a routing preset by slug

Capability ID: system.presets.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "preset": {
    "slug": "prod"
  }
}

---

GET /v1/presets

List active routing presets for the tenant

Capability ID: system.presets.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "presets": [],
  "count": 0
}

---

PUT /v1/presets/{slug}

Update a routing preset (partial)

Capability ID: system.presets.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    },
    "description": {
      "type": "string"
    },
    "model": {
      "type": "string",
      "minLength": 1
    },
    "strategy": {
      "type": "string",
      "enum": ["price", "latency", "throughput", "priority", "quality", "cascade"]
    },
    "fallbacks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provider_allow": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "provider_deny": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "max_cost_usd": {
      "type": "number",
      "minimum": 0
    },
    "variant": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "Prod-v2"
}

Response:

{
  "preset": {
    "slug": "prod"
  }
}

---

GET /v1/projects/{id}/activity

Get recent activity for a project (filterable by ?since=1h)

Capability ID: system.projects.activity_get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

since-1h

Request:

{}

Response:

{
  "active_sessions": []
}

---

POST /v1/projects/{id}/activity

Report an activity record for a project

Capability ID: system.projects.activity_post Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "user": {
      "type": "string"
    },
    "session_id": {
      "type": "string"
    },
    "started_at": {
      "type": "string"
    },
    "current_task": {
      "type": "string"
    },
    "files_modified": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "cost_so_far": {
      "type": "number"
    },
    "model_used": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

report

Request:

{
  "user": "alice",
  "current_task": "refactor"
}

Response:

{
  "user": "alice"
}

---

DELETE /v1/projects/{id}

Archive a project (soft-delete)

Capability ID: system.projects.archive Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

archive

Request:

{}

Response:

{
  "id": "p_1",
  "status": "archived"
}

---

GET /v1/projects/{id}/config

Get a project's routing config

Capability ID: system.projects.config_get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "projectId": "p_1"
}

---

POST /v1/projects/{id}/config

Set project routing config (default model, budget, conventions, etc.)

Capability ID: system.projects.config_set Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "default_model": {
      "type": "string"
    },
    "budget_daily_usd": {
      "type": "number"
    },
    "routing_strategy": {
      "type": "string"
    },
    "guardrails": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "conventions": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "protected_paths": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "team_members": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "cost_center": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

set

Request:

{
  "default_model": "auto"
}

Response:

{
  "projectId": "p_1"
}

---

POST /v1/projects

Create a project under an existing workspace

Capability ID: system.projects.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "workspaceId": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "settings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["name", "workspaceId"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "Demo",
  "workspaceId": "ws_1"
}

Response:

{
  "id": "p_1"
}

---

GET /v1/projects/{id}

Get a project by id

Capability ID: system.projects.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "p_1"
}

---

GET /v1/projects

List active projects (optionally filtered by ?workspaceId=)

Capability ID: system.projects.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "projects": [],
  "count": 0
}

---

GET /v1/projects/registry/{name}

Get a single registered project by name (404 on missing)

Capability ID: system.projects.registry.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": ["name"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

lookup

Request:

{
  "name": "demo"
}

Response:

{
  "name": "demo",
  "created_at": "2026-01-01T00:00:00Z"
}

---

GET /v1/projects/registry

List registered projects for the current tenant

Capability ID: system.projects.registry.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["projects", "total"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "projects": [],
  "total": 0
}

---

PUT /v1/projects/registry/{name}

Update project metadata (404 on missing)

Capability ID: system.projects.registry.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "budget_daily": {
      "type": "number"
    },
    "budget_monthly": {
      "type": "number"
    }
  },
  "required": ["name"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "project": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["ok", "project"],
  "additionalProperties": false
}

Examples

update

Request:

{
  "name": "demo",
  "description": "Updated"
}

Response:

{
  "ok": true,
  "project": {
    "name": "demo"
  }
}

---

POST /v1/projects/registry

Register or sync a project (upsert by name; 201 on create, 200 on update)

Capability ID: system.projects.registry.upsert Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "budget_daily": {
      "type": "number"
    },
    "budget_monthly": {
      "type": "number"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

register

Request:

{
  "name": "demo"
}

Response:

{
  "ok": true,
  "project": {
    "name": "demo"
  },
  "created": true
}

---

PUT /v1/projects/{id}

Update a project (partial)

Capability ID: system.projects.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "settings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "workspaceId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "Demo v2"
}

Response:

{
  "id": "p_1"
}

---

GET /v1/prompts/{id}/ab

Get A/B test results for a prompt

Capability ID: system.prompts.ab.get Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

ab-get

Request:

{}

Response:

{
  "winner": null
}

---

POST /v1/prompts/{id}/ab

Start or stop an A/B test for a prompt

Capability ID: system.prompts.ab.set Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": ["start", "stop"]
    },
    "version_a": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "version_b": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "split_ratio": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    }
  },
  "required": ["action"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

start

Request:

{
  "action": "start",
  "version_a": 1,
  "version_b": 2
}

Response:

{
  "status": "ok"
}

---

DELETE /v1/prompts/{id}

Archive a prompt template (soft delete)

Capability ID: system.prompts.archive Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

archive

Request:

{}

Response:

{
  "status": "archived"
}

---

POST /v1/prompts

Create a versioned prompt template

Capability ID: system.prompts.create Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "template": {
      "type": "string",
      "minLength": 1
    },
    "variables": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "environment": {
      "type": "string",
      "enum": ["dev", "staging", "prod"]
    },
    "change_note": {
      "type": "string"
    }
  },
  "required": ["id", "template"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "id": "greeting",
  "template": "Hello {{name}}"
}

Response:

{
  "id": "greeting",
  "version": 1
}

---

GET /v1/prompts/{id}/diff

Unified diff between two versions of a prompt

Capability ID: system.prompts.diff Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

diff

Request:

{}

Response:

{
  "diff": ""
}

---

GET /v1/prompts/{id}/evaluate/results/{runId}/export

Export a single evaluation run as JSON or CSV

Capability ID: system.prompts.evalExport Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

export

Request:

{}

Response:

{}

---

GET /v1/prompts/{id}/evaluate/results

List recent evaluation runs for a prompt with aggregate metrics

Capability ID: system.prompts.evalResults Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

results

Request:

{}

Response:

{
  "runs": [],
  "count": 0
}

---

POST /v1/prompts/{id}/evaluate

Run a prompt against test cases with a chosen scorer

Capability ID: system.prompts.evaluate Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "test_cases": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "input": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "expected_output": {
            "type": "string"
          }
        },
        "required": ["input"],
        "additionalProperties": false
      }
    },
    "model": {
      "type": "string"
    },
    "scorer": {
      "type": "string",
      "enum": ["exact_match", "contains", "validity", "llm_judge"]
    },
    "store": {
      "type": "boolean"
    }
  },
  "required": ["test_cases"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

evaluate

Request:

{
  "test_cases": [
    {
      "input": {}
    }
  ]
}

Response:

{
  "run_id": "",
  "pass_count": 0
}

---

GET /v1/prompts/{id}

Get a prompt template with its full version history

Capability ID: system.prompts.get Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "",
  "versions": []
}

---

GET /v1/prompts

List all prompt templates for the tenant

Capability ID: system.prompts.list Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "prompts": [],
  "count": 0
}

---

POST /v1/prompts/{id}/promote

Promote a prompt version to a higher environment

Capability ID: system.prompts.promote Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "target_environment": {
      "type": "string",
      "enum": ["dev", "staging", "prod"]
    }
  },
  "required": ["version", "target_environment"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

promote

Request:

{
  "version": 1,
  "target_environment": "prod"
}

Response:

{
  "environment": "prod"
}

---

POST /v1/prompts/{id}/test

Test-resolve a prompt template with the given variables

Capability ID: system.prompts.test Auth: apiKey Permission: prompts.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "variables": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "environment": {
      "type": "string",
      "enum": ["dev", "staging", "prod"]
    },
    "version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{
  "variables": {
    "name": "World"
  }
}

Response:

{
  "resolved_text": ""
}

---

PUT /v1/prompts/{id}

Update a prompt — auto-creates a new version

Capability ID: system.prompts.update Auth: apiKey Permission: prompts.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "template": {
      "type": "string",
      "minLength": 1
    },
    "variables": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "environment": {
      "type": "string",
      "enum": ["dev", "staging", "prod"]
    },
    "change_note": {
      "type": "string"
    }
  },
  "required": ["template"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

update

Request:

{
  "template": "Hi {{name}}"
}

Response:

{
  "version": 2
}

---

POST /v1/providers/batch

Register up to 10 provider keys in one call (returns 207)

Capability ID: system.providers.batch Auth: apiKey Permission: providers.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "providers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "api_key": {
            "type": "string"
          },
          "test_first": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

batch

Request:

{
  "providers": []
}

Response:

{
  "results": []
}

---

GET /v1/providers/catalog

Public catalog of supported provider IDs and base URLs

Capability ID: system.providers.catalog Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

catalog

Request:

{}

Response:

{
  "providers": []
}

---

DELETE /v1/providers/{providerId}

Remove a provider key by provider name

Capability ID: system.providers.delete Auth: apiKey Permission: providers.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "ok": true
}

---

GET /v1/providers

List configured providers for the tenant (admin/operator only)

Capability ID: system.providers.list Auth: apiKey Permission: providers.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "providers": []
}

---

POST /v1/providers

Store an encrypted provider API key for the tenant

Capability ID: system.providers.register Auth: apiKey Permission: providers.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "provider": {
      "type": "string"
    },
    "api_key": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

register

Request:

{
  "provider": "anthropic",
  "api_key": "sk-..."
}

Response:

{
  "id": ""
}

---

POST /v1/providers/test

Validate a provider API key with a lightweight live request

Capability ID: system.providers.test Auth: apiKey Permission: providers.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "provider": {
      "type": "string"
    },
    "api_key": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{
  "provider": "anthropic",
  "api_key": "sk-..."
}

Response:

{}

---

GET /v1/rbac/my-permissions

Caller's RBAC posture — roles, granted/denied permissions, upgrade paths

Capability ID: system.rbac.my_permissions Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "principal_id": {
      "type": "string"
    },
    "auth_method": {
      "type": "string"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "denied_permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "upgrade_paths": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "requires_role": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "self_service_possible": {
            "type": "boolean"
          },
          "recommended_action": {
            "type": "string"
          }
        },
        "required": ["requires_role", "self_service_possible", "recommended_action"],
        "additionalProperties": false
      }
    },
    "deprecation_warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "principal_id",
    "auth_method",
    "roles",
    "permissions",
    "denied_permissions",
    "upgrade_paths",
    "deprecation_warnings"
  ],
  "additionalProperties": false
}

Examples

developer

Request:

{}

Response:

{
  "principal_id": "key_abc",
  "auth_method": "api_key",
  "roles": ["developer"],
  "permissions": ["router.read"],
  "denied_permissions": ["config.write"],
  "upgrade_paths": {
    "config.write": {
      "requires_role": ["admin"],
      "self_service_possible": false,
      "recommended_action": "Ask a tenant admin to grant the admin role"
    }
  },
  "deprecation_warnings": []
}

---

POST /v1/register

Machine registration — create tenant + admin user + API key atomically

Capability ID: system.register Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "invite_code": {
      "type": "string",
      "minLength": 1
    },
    "tenant_name": {
      "type": "string",
      "minLength": 1
    },
    "admin_email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "key_name": {
      "default": "Auto-provisioned",
      "type": "string"
    },
    "accept_tos": {
      "type": "boolean",
      "const": true
    },
    "tenant_slug": {
      "type": "string"
    }
  },
  "required": ["tenant_name", "key_name", "accept_tos"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

register-sandbox

Request:

{
  "tenant_name": "Scout Agent",
  "key_name": "Auto-provisioned",
  "accept_tos": true
}

Response:

{
  "tenant": {
    "id": "tenant_x",
    "plan": "sandbox"
  }
}

register-invite

Request:

{
  "invite_code": "abc",
  "tenant_name": "Acme",
  "admin_email": "ops@acme.com",
  "key_name": "Auto-provisioned",
  "accept_tos": true
}

Response:

{
  "tenant": {
    "id": "tenant_x",
    "plan": "free"
  }
}

---

GET /v1/replays/compare

Compare routing strategies side-by-side on recorded traffic

Capability ID: system.replays.compare Auth: apiKey Permission: replays.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

compare

Request:

{}

Response:

{
  "strategies": []
}

---

GET /v1/replays/decisions

List recorded routing decisions for the tenant

Capability ID: system.replays.decisions Auth: apiKey Permission: replays.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "decisions": [],
  "count": 0
}

---

POST /v1/replays/simulate

Simulate alternative routing strategy on recorded traffic

Capability ID: system.replays.simulate Auth: apiKey Permission: replays.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "strategy": {
      "type": "string",
      "enum": ["price", "latency", "throughput", "priority", "quality", "cascade"]
    },
    "since": {
      "type": "string"
    },
    "until": {
      "type": "string"
    }
  },
  "required": ["strategy"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

sim

Request:

{
  "strategy": "price"
}

Response:

{
  "period": {}
}

---

GET /v1/self

Agent self-awareness — identity, health, budget, memory, suggestions

Capability ID: system.self Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

self

Request:

{}

Response:

{
  "identity": {}
}

---

GET /v1/sessions/latest

Get the most recently updated session for a project

Capability ID: system.sessions.latest Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

latest

Request:

{}

Response:

{
  "session_id": "s_1"
}

---

POST /v1/sessions/{id}/state

Save session state (≤1MB blob, upserts by session id)

Capability ID: system.sessions.save Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

save

Request:

{
  "project": {
    "name": "demo"
  }
}

Response:

{
  "session_id": "s_1",
  "saved_at": "2026-01-01T00:00:00Z"
}

---

POST /v1/signup

Initiate signup: send 6-digit verification code to email

Capability ID: system.signup.start Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
    },
    "tenant_name": {
      "type": "string",
      "minLength": 1
    },
    "force": {
      "type": "boolean"
    }
  },
  "required": ["email", "tenant_name"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

start

Request:

{
  "email": "user@example.com",
  "tenant_name": "Acme"
}

Response:

{
  "message": "Verification code sent. Check your email.",
  "email": "user@example.com"
}

---

POST /v1/signup/verify

Verify code → create tenant + user + API key atomically

Capability ID: system.signup.verify Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 1
    },
    "code": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": ["email", "code"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

verify

Request:

{
  "email": "user@example.com",
  "code": "123456"
}

Response:

{
  "tenant": {
    "id": "tenant_x"
  }
}

---

GET /v1/sleep-time/config

Get the tenant's sleep-time refinement configuration

Capability ID: system.sleep_time.config.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "config": {
    "enabled": false
  }
}

---

PUT /v1/sleep-time/config

Update the tenant's sleep-time refinement configuration

Capability ID: system.sleep_time.config.set Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "enabled": {
      "type": "boolean"
    },
    "model": {
      "type": "string"
    },
    "max_daily_budget_usd": {
      "type": "number"
    },
    "min_idle_minutes": {
      "type": "number"
    },
    "max_archival_entries": {
      "type": "number"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

enable

Request:

{
  "enabled": true
}

Response:

{
  "config": {
    "enabled": true
  }
}

---

POST /v1/sleep-time/run

Trigger an immediate sleep-time memory refinement pass

Capability ID: system.sleep_time.run Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

run

Request:

{}

Response:

{
  "result": {
    "status": "ok"
  }
}

---

GET /v1/agent/task-runs

Query task-run history (filter by project, limit)

Capability ID: system.task_runs.query Auth: apiKey Permission: router.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "project": {
      "type": "string"
    },
    "limit": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["runs", "total", "limit"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "runs": [],
  "total": 0,
  "limit": 20
}

---

POST /v1/agent/task-runs

Report a completed task run (Brainstorm CLI integration; 201)

Capability ID: system.task_runs.report Auth: apiKey Permission: router.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "task_name": {
      "type": "string"
    },
    "project": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "trigger_type": {
      "type": "string"
    },
    "cost": {
      "type": "number"
    },
    "turns_used": {
      "type": "number"
    },
    "duration_ms": {
      "type": "number"
    },
    "model_used": {
      "type": "string"
    },
    "cron_expression": {
      "type": "string"
    },
    "allow_mutations": {
      "type": "boolean"
    },
    "timestamp": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

report

Request:

{
  "task_name": "build",
  "status": "completed"
}

Response:

{
  "ok": true,
  "id": "abc"
}

---

POST /v1/tasks

Schedule a background agent task (cron-scheduled prompt)

Capability ID: system.tasks.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "prompt": {
      "type": "string"
    },
    "schedule": {
      "type": "string"
    },
    "model": {
      "type": "string"
    },
    "conversation_id": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

hourly

Request:

{
  "name": "summary",
  "prompt": "Summarize today",
  "schedule": "0 * * * *"
}

Response:

{
  "task": {
    "id": "tsk_1"
  }
}

---

DELETE /v1/tasks/{id}

Cancel a scheduled background task

Capability ID: system.tasks.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "ok": true,
  "id": "tsk_1"
}

---

GET /v1/tasks

List all background tasks for the tenant

Capability ID: system.tasks.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "tasks": [],
  "total": 0
}

---

GET /v1/telemetry/live

SSE telemetry stream: model health, budget alerts, routing decisions

Capability ID: system.telemetry.live Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

stream

Request:

{}

Response:

{}

---

GET /v1/tenant/context

Canonical tenant-context resolver: {workspace, products, entitlements, residency, members}. v0.4 P2 M24.

Capability ID: system.tenant.context Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "tenant_id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "workspace": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "plan": {
          "type": "string"
        },
        "residency": {
          "type": "string"
        }
      },
      "required": ["id", "plan", "residency"],
      "additionalProperties": false
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": ["online", "degraded", "offline"]
          },
          "capabilities_count": {
            "type": "number"
          }
        },
        "required": ["name", "status", "capabilities_count"],
        "additionalProperties": false
      }
    },
    "entitlements": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "members": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        },
        "required": ["user_id", "role"],
        "additionalProperties": false
      }
    },
    "schema_version": {
      "type": "number",
      "const": 1
    }
  },
  "required": [
    "tenant_id",
    "slug",
    "name",
    "status",
    "workspace",
    "products",
    "entitlements",
    "members",
    "schema_version"
  ],
  "additionalProperties": false
}

Examples

operator-fetches-own-tenant

Request:

{}

Response:

{
  "tenant_id": "t_1",
  "slug": "demo",
  "name": "Demo Tenant",
  "status": "active",
  "workspace": {
    "id": "w_1",
    "plan": "starter",
    "residency": "us-east-1"
  },
  "products": [
    {
      "name": "msp",
      "status": "online",
      "capabilities_count": 45
    },
    {
      "name": "vm",
      "status": "online",
      "capabilities_count": 32
    },
    {
      "name": "br",
      "status": "online",
      "capabilities_count": 117
    }
  ],
  "entitlements": {
    "agent_seats": 50,
    "max_workspaces": 5
  },
  "members": [
    {
      "user_id": "u_1",
      "role": "admin"
    }
  ],
  "schema_version": 1
}

---

GET /v1/tos

Returns current Terms of Service version, summary, and URL

Capability ID: system.tos Auth: none

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "version": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": ["version", "summary", "url"],
  "additionalProperties": false
}

Examples

current

Request:

{}

Response:

{
  "version": "1.0",
  "summary": "BrainstormRouter routes your AI traffic — you provide your own LLM API keys (BYOK).\nYou retain ownership of all data sent through the platform.\nUsage is metered and billed per your plan; budget limits are enforced in real time.\nAbuse (credential stuffing, DDoS, reverse-engineering) will result in termination.\nWe may update these terms with 30 days notice; continued use constitutes acceptance.",
  "url": "https://brainstormrouter.com/legal/terms"
}

---

GET /v1/usage/by-cost-center

Aggregated spend per cost center for the period

Capability ID: system.usage.by_cost_center Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

month

Request:

{}

Response:

{
  "period": "month",
  "data": []
}

---

GET /v1/usage/by-owner

Aggregated spend per agent owner for the period

Capability ID: system.usage.by_owner Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

month

Request:

{}

Response:

{
  "period": "month",
  "data": []
}

---

POST /v1/usage/{requestId}/feedback

Submit quality feedback for a specific request

Capability ID: system.usage.feedback Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "score": {
      "type": "number"
    },
    "comment": {
      "type": "string"
    },
    "idempotency_key": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

positive

Request:

{
  "score": 1
}

Response:

{
  "ok": true
}

---

GET /v1/usage/models

Per-model usage breakdown for the current period

Capability ID: system.usage.models Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

month

Request:

{}

Response:

{
  "period": "month",
  "models": []
}

---

GET /v1/usage/spend

Total spend for the current billing period

Capability ID: system.usage.spend Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

month

Request:

{}

Response:

{
  "period": "month"
}

---

GET /v1/usage/summary

Spend, request count, latency summary for the current period

Capability ID: system.usage.summary Auth: apiKey Permission: audit.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

month

Request:

{}

Response:

{
  "period": "month",
  "data": []
}

---

POST /v1/webhooks

Create a webhook subscription (returns secret once); 400 on SSRF-blocked URL

Capability ID: system.webhooks.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1
    },
    "events": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "completion.created",
          "completion.error",
          "provider.down",
          "provider.recovered",
          "budget.threshold",
          "budget.exceeded",
          "key.created",
          "key.revoked",
          "anomaly.detected"
        ]
      }
    }
  },
  "required": ["url", "events"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "url": "https://example.com",
  "events": ["completion.created"]
}

Response:

{
  "webhook": {
    "id": "wh_1",
    "secret": "..."
  }
}

---

DELETE /v1/webhooks/{id}

Delete a webhook by ID (404 on missing)

Capability ID: system.webhooks.delete Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": ["id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deleted": {
      "type": "boolean",
      "const": true
    },
    "id": {
      "type": "string"
    }
  },
  "required": ["deleted", "id"],
  "additionalProperties": false
}

Examples

delete

Request:

{
  "id": "wh_1"
}

Response:

{
  "deleted": true,
  "id": "wh_1"
}

---

GET /v1/webhooks/{id}/deliveries

Recent delivery history for a webhook (last 50)

Capability ID: system.webhooks.deliveries Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": ["id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "deliveries": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["deliveries", "total"],
  "additionalProperties": false
}

Examples

empty

Request:

{
  "id": "wh_1"
}

Response:

{
  "deliveries": [],
  "total": 0
}

---

GET /v1/webhooks

List webhook subscriptions for the current tenant

Capability ID: system.webhooks.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "webhooks": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": ["webhooks", "total"],
  "additionalProperties": false
}

Examples

empty

Request:

{}

Response:

{
  "webhooks": [],
  "total": 0
}

---

POST /v1/webhooks/{id}/test

Send a test event to a webhook; records delivery row regardless of outcome

Capability ID: system.webhooks.test Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": ["id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "test": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["test"],
  "additionalProperties": false
}

Examples

test

Request:

{
  "id": "wh_1"
}

Response:

{
  "test": {
    "succeeded": true,
    "status_code": 200
  }
}

---

PATCH /v1/webhooks/{id}

Update webhook URL/events/is_active (400 SSRF, 404 missing)

Capability ID: system.webhooks.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "minLength": 1
    },
    "events": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "completion.created",
          "completion.error",
          "provider.down",
          "provider.recovered",
          "budget.threshold",
          "budget.exceeded",
          "key.created",
          "key.revoked",
          "anomaly.detected"
        ]
      }
    },
    "is_active": {
      "type": "boolean"
    }
  },
  "required": ["id"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

deactivate

Request:

{
  "id": "wh_1",
  "is_active": false
}

Response:

{
  "webhook": {
    "id": "wh_1",
    "is_active": false
  }
}

---

POST /v1/workflows/auto-select

Auto-select a workflow preset from a natural-language description

Capability ID: system.workflows.autoSelect Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

auto

Request:

{
  "description": "summarize this PDF"
}

Response:

{
  "presetId": ""
}

---

POST /v1/workflows

Create a workflow definition (optionally cloned from a preset)

Capability ID: system.workflows.create Auth: apiKey Permission: workflows.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "n"
}

Response:

{
  "definition": {}
}

---

DELETE /v1/workflows/{id}

Delete a workflow definition

Capability ID: system.workflows.delete Auth: apiKey Permission: workflows.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

del

Request:

{}

Response:

{
  "deleted": true
}

---

GET /v1/workflows/{id}

Get a workflow definition by id

Capability ID: system.workflows.get Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "definition": {}
}

---

GET /v1/workflows

List workflow definitions for the tenant

Capability ID: system.workflows.list Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "definitions": []
}

---

GET /v1/workflows/presets

List available workflow presets

Capability ID: system.workflows.presets.list Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "presets": []
}

---

POST /v1/workflows/run

Run a workflow and stream events via SSE

Capability ID: system.workflows.run Auth: apiKey Permission: workflows.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

run

Request:

{
  "description": "..."
}

Response:

{}

---

POST /v1/workflows/runs/{id}/cancel

Cancel a workflow run

Capability ID: system.workflows.runs.cancel Auth: apiKey Permission: workflows.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

cancel

Request:

{}

Response:

{
  "cancelled": true
}

---

GET /v1/workflows/runs/{id}

Get a workflow run by id

Capability ID: system.workflows.runs.get Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "run": {}
}

---

GET /v1/workflows/runs

List recent workflow runs for the tenant

Capability ID: system.workflows.runs.list Auth: apiKey Permission: workflows.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "runs": []
}

---

DELETE /v1/workspaces/{id}

Archive a workspace (soft-delete)

Capability ID: system.workspaces.archive Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

archive

Request:

{}

Response:

{
  "id": "ws_1",
  "status": "archived"
}

---

POST /v1/workspaces

Create a workspace under the tenant

Capability ID: system.workspaces.create Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "slug": {
      "type": "string",
      "maxLength": 255
    },
    "orgId": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "settings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": ["name"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

create

Request:

{
  "name": "Acme"
}

Response:

{
  "id": "ws_1"
}

---

GET /v1/workspaces/{id}

Get a workspace by id

Capability ID: system.workspaces.get Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

get

Request:

{}

Response:

{
  "id": "ws_1"
}

---

GET /v1/workspaces

List active workspaces for the tenant

Capability ID: system.workspaces.list Auth: apiKey Permission: config.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

list

Request:

{}

Response:

{
  "workspaces": [],
  "count": 0
}

---

PUT /v1/workspaces/{id}

Update workspace metadata (name, slug, settings, etc.)

Capability ID: system.workspaces.update Auth: apiKey Permission: config.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "slug": {
      "type": "string",
      "maxLength": 255
    },
    "orgId": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "settings": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "Acme v2"
}

Response:

{
  "id": "ws_1"
}

---

POST /v1/observability/xdr/destinations

Register a new XDR/SIEM destination

Capability ID: system.xdr.create Auth: apiKey Permission: security.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "type": {
      "type": "string",
      "enum": ["crowdstrike", "sentinel", "splunk-ocsf", "cortex", "datadog-ocsf"]
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filter_rules": {
      "type": "object",
      "properties": {
        "include": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "exclude": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "min_severity": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5
        }
      },
      "additionalProperties": false
    },
    "batch": {
      "type": "object",
      "properties": {
        "max_size": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 1000
        },
        "flush_interval_ms": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 60000
        }
      },
      "additionalProperties": false
    }
  },
  "required": ["name", "type", "config"],
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

splunk

Request:

{
  "name": "prod-splunk",
  "type": "splunk-ocsf",
  "config": {
    "url": "https://..."
  }
}

Response:

{
  "destination": {
    "id": "x_1"
  }
}

---

DELETE /v1/observability/xdr/destinations/{id}

Remove an XDR/SIEM destination

Capability ID: system.xdr.delete Auth: apiKey Permission: security.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

delete

Request:

{}

Response:

{
  "deleted": true,
  "id": "x_1"
}

---

POST /v1/observability/xdr/destinations/{id}/enable

Toggle an XDR destination on/off

Capability ID: system.xdr.enable Auth: apiKey Permission: security.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "enabled": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

enable

Request:

{
  "enabled": true
}

Response:

{
  "enabled": true
}

---

GET /v1/observability/xdr/destinations

List XDR/SIEM destinations for the tenant

Capability ID: system.xdr.list Auth: apiKey Permission: security.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

empty

Request:

{}

Response:

{
  "destinations": [],
  "count": 0
}

---

GET /v1/observability/xdr/destinations/{id}/stats

Get delivery stats for an XDR destination

Capability ID: system.xdr.stats Auth: apiKey Permission: security.read

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

stats

Request:

{}

Response:

{
  "delivery_count": 0
}

---

POST /v1/observability/xdr/destinations/{id}/test

Send a synthetic test event to a destination

Capability ID: system.xdr.test Auth: apiKey Permission: security.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

test

Request:

{}

Response:

{
  "test_id": "evt_x"
}

---

PUT /v1/observability/xdr/destinations/{id}

Update an XDR/SIEM destination (partial)

Capability ID: system.xdr.update Auth: apiKey Permission: security.write

Request schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "enabled": {
      "type": "boolean"
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filter_rules": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "include": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "exclude": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "min_severity": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "batch": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "max_size": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 1000
            },
            "flush_interval_ms": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 60000
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": false
}

Response schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "propertyNames": {
    "type": "string"
  },
  "additionalProperties": {}
}

Examples

rename

Request:

{
  "name": "x"
}

Response:

{
  "destination": {
    "id": "x_1"
  }
}

---