CAIN-42 CAIN Studio

API reference · schema

ValidationError

3 fields · used by 342 operations

Last reviewed 2026-10-02

Fields

FieldTypeMeaning
loc requiredarray of string | integer
msg requiredstring
type requiredstring

Smallest valid example

{
  "loc": [
    "loc"
  ],
  "msg": "msg",
  "type": "type"
}

Used by 342 operations

GET/fabric/agent-keysList this account's agent keys (secrets are never shown again)
POST/fabric/agent-keysCreate an agent key (a separate principal for one agent)
POST/fabric/agent-keys/{agent_key_id}/fast-pathLet one agent's already-allowed calls to these tools skip the per-call consensus round
DELETE/fabric/agent-keys/{agent_key_id}/fast-pathRemove an agent's fast-path grant immediately
POST/fabric/agent-keys/{agent_key_id}/revokeRevoke one agent key immediately
GET/fabric/agi/evidence-chain.cefAgi Evidence Chain Cef
POST/fabric/agi/proposeAgi Submit Proposal
GET/fabric/anomaliesDeviations from this principal's own baseline
GET/fabric/approvalsActions held for human review
GET/fabric/approvals/{approval_id}One held action
POST/fabric/approvals/{approval_id}/approveLet one held action proceed
POST/fabric/approvals/{approval_id}/denyRefuse one held action
GET/fabric/baselineWhat normal looks like for this tenant or agent
POST/fabric/broker/callCAIN decides on the call, then makes it with the stored credential
GET/fabric/broker/credentialsBrokered credentials (the secrets are never returned)
POST/fabric/broker/credentialsStore a credential agents can use without seeing it
DELETE/fabric/broker/credentials/{name}Revoke a brokered credential
GET/fabric/budgetsList Budgets
POST/fabric/budgetsCreate Budget
POST/fabric/budgets/evaluateEvaluate Budget
GET/fabric/budgets/{budget_id}Get Budget
PATCH/fabric/budgets/{budget_id}Update Budget
POST/fabric/budgets/{budget_id}/commit/{reservation_id}Commit Reservation
POST/fabric/budgets/{budget_id}/freezeFreeze Budget
POST/fabric/budgets/{budget_id}/release/{reservation_id}Release Reservation
POST/fabric/budgets/{budget_id}/reserveReserve Budget
GET/fabric/budgets/{budget_id}/transactionsList Transactions
POST/fabric/budgets/{budget_id}/unfreezeUnfreeze Budget
GET/fabric/budgets/{budget_id}/usageGet Budget Usage
GET/fabric/compliance/audit-packagesList Audit Packages
POST/fabric/compliance/audit-packages/generateGenerate Audit Package
GET/fabric/compliance/audit-packages/{package_id}Get Audit Package
GET/fabric/compliance/audit-packages/{package_id}/exportExport Audit Package
GET/fabric/compliance/controlsList Controls
POST/fabric/compliance/controlsDefine Control
POST/fabric/compliance/controls/evaluateEvaluate Control
GET/fabric/compliance/controls/{control_id}Get Control
GET/fabric/compliance/controls/{control_id}/evaluationsList Control Evaluations
GET/fabric/compliance/driftList Drift
POST/fabric/compliance/drift/detectDetect Drift
POST/fabric/compliance/drift/snapshotCapture Snapshot
GET/fabric/compliance/evaluationsList Evaluations
GET/fabric/compliance/evidenceList Evidence
POST/fabric/compliance/evidence/recordRecord Evidence
GET/fabric/compliance/evidence/{evidence_id}Get Evidence
GET/fabric/compliance/findingsList Findings
POST/fabric/compliance/findingsCreate Finding
GET/fabric/compliance/findings/{finding_id}Get Finding
PATCH/fabric/compliance/findings/{finding_id}Update Finding
GET/fabric/compliance/frameworksList Frameworks
POST/fabric/compliance/frameworksCreate Framework
POST/fabric/compliance/frameworks/preset/{preset}Load Preset Framework
GET/fabric/compliance/frameworks/{framework_id}Get Framework
POST/fabric/compliance/monitorConfigure Monitor
GET/fabric/compliance/postureGet Compliance Posture
GET/fabric/compliance/remediationsList Remediations
POST/fabric/compliance/remediationsCreate Remediation
PATCH/fabric/compliance/remediations/{remediation_id}Update Remediation
GET/fabric/compliance/summaryGet Compliance Summary
POST/fabric/context/context/auditAudit Context
GET/fabric/context/context/audit/{audit_id}Get Context Audit
POST/fabric/context/memory/auditAudit Memory Batch
POST/fabric/context/memory/ingestIngest Memory
GET/fabric/context/memory/{agent_id}List Memory Items
GET/fabric/context/memory/{agent_id}/{item_id}/trustGet Memory Trust
GET/fabric/decisionsList this tenant's recent Fabric decisions
POST/fabric/decisionsAsk the control plane to decide on a proposed action
GET/fabric/decisions/streamLive feed of this tenant's decisions (Server-Sent Events)
GET/fabric/decisions/{decision_id}Retrieve one recorded decision (Evidence)
GET/fabric/decisions/{decision_id}/explainWhy this decision came out the way it did, and which run it belongs to
GET/fabric/decisions/{decision_id}/integrityCheck whether a recorded decision has been altered since it was written
GET/fabric/decisions/{decision_id}/signatureTamper-evidence for one decision record
GET/fabric/decisions/{decision_id}/signed-recordExport one decision row exactly as stored and signed; verify offline with verify_decision_record.py --key https://mcpgate.online/fabric/decision-signing-key
GET/fabric/drift/agents/{agent_id}Get Agent Drift Status
GET/fabric/drift/baselinesList Baselines
POST/fabric/drift/baselinesCreate Baseline
GET/fabric/drift/baselines/{baseline_id}Get Baseline
POST/fabric/drift/compareCompare
GET/fabric/drift/findingsList Findings
GET/fabric/drift/findings/{drift_id}Get Finding
POST/fabric/drift/findings/{drift_id}/acceptAccept Finding
POST/fabric/drift/findings/{drift_id}/acknowledgeAcknowledge Finding
POST/fabric/drift/findings/{drift_id}/false_positiveMark False Positive
GET/fabric/drift/findings/{drift_id}/historyGet Finding History
POST/fabric/drift/findings/{drift_id}/investigateInvestigate Finding
POST/fabric/drift/findings/{drift_id}/resolveResolve Finding
GET/fabric/drift/impact/{drift_id}Get Drift Impact
POST/fabric/drift/observeObserve
GET/fabric/drift/statsStats
GET/fabric/drift/statusStatus
GET/fabric/egress/rulesThis tenant's action-tool allowlist (destinations)
POST/fabric/egress/rulesAdd a destination allow rule (enables egress enforcement)
DELETE/fabric/egress/rulesRemove a destination allow rule
POST/fabric/eval/contamination/scanScan Contamination
GET/fabric/eval/contamination/{scan_id}Get Scan
POST/fabric/eval/reportCreate Report
POST/fabric/eval/trajectory/gradeGrade Trajectory
GET/fabric/eval/trajectory/{grading_id}Get Grading
GET/fabric/eventsFabric Events Endpoint
GET/fabric/evidence-accessWho has read this tenant's evidence
GET/fabric/governance/approvalsList Approvals
POST/fabric/governance/approvalsCreate Approval
GET/fabric/governance/approvals/{approval_id}Get Approval
POST/fabric/governance/approvals/{approval_id}/decideDecide Approval
GET/fabric/governance/auditGet Audit Log
GET/fabric/governance/authoritiesList Authorities
POST/fabric/governance/authoritiesCreate Authority
GET/fabric/governance/authorities/{authority_id}Get Authority
DELETE/fabric/governance/authorities/{authority_id}Revoke Authority
GET/fabric/governance/decisionsList Decisions
GET/fabric/governance/delegationsList Delegations
POST/fabric/governance/evaluateEvaluate Governance
GET/fabric/governance/policiesList Policies
POST/fabric/governance/policiesCreate Policy
GET/fabric/governance/policies/{policy_id}Get Policy
PATCH/fabric/governance/policies/{policy_id}Update Policy
POST/fabric/governance/policies/{policy_id}/activateActivate Policy
POST/fabric/governance/policies/{policy_id}/deactivateDeactivate Policy
GET/fabric/guard/a2a/drift/{agent_id}Check Drift
POST/fabric/guard/a2a/nonce/checkCheck Nonce
POST/fabric/guard/a2a/observeObserve Capability
POST/fabric/guard/a2a/registerRegister A2A Card
POST/fabric/guard/a2a/revoke/{agent_id}Revoke Card
POST/fabric/guard/a2a/verifyVerify A2A Card
POST/fabric/guard/action/verifyVerify Action Plan
POST/fabric/guard/hallucination/checkCheck Hallucination
POST/fabric/identity/agent-tokensMint a short-lived agent delegation token
POST/fabric/identity/agent-tokens/verifyVerify an agent delegation token
POST/fabric/identity/capability/checkCheck Capability
POST/fabric/identity/createCreate Identity
POST/fabric/identity/delegation/{delegation_id}/revokeRevoke Delegation
GET/fabric/identity/delegation/{delegation_id}/verifyVerify Delegation Endpoint
POST/fabric/identity/impersonation/checkCheck Impersonation Endpoint
GET/fabric/identity/listList Identities
GET/fabric/identity/principalsList this tenant's principals
POST/fabric/identity/principalsRegister a principal
GET/fabric/identity/principals/{principal_id}Fetch one principal
POST/fabric/identity/principals/{principal_id}/revokeRevoke a principal
POST/fabric/identity/principals/{principal_id}/verifyVerify an Ed25519 signature against a registered principal
POST/fabric/identity/sessionsExchange an API key for a short-lived browser session
GET/fabric/identity/sessions/currentInspect the session token in use
GET/fabric/identity/tenant/auditGet Tenant Audit
GET/fabric/identity/whoamiResolve the calling key to its Fabric principal
GET/fabric/identity/{identity_id}Get Identity
GET/fabric/identity/{identity_id}/auditGet Identity Audit
POST/fabric/identity/{identity_id}/delegateCreate Delegation
GET/fabric/identity/{identity_id}/delegationsList Delegations
GET/fabric/identity/{identity_id}/key-historyGet Key History
POST/fabric/identity/{identity_id}/reactivateReactivate Identity
POST/fabric/identity/{identity_id}/revokeRevoke Identity
POST/fabric/identity/{identity_id}/rotateRotate Credentials
POST/fabric/identity/{identity_id}/suspendSuspend Identity
POST/fabric/identity/{identity_id}/verifyVerify Credential
POST/fabric/impact/analyzeAnalyze Impact
POST/fabric/impact/analyze/drift/{drift_id}Analyze From Drift
POST/fabric/impact/compareCompare Impacts
GET/fabric/impact/dependencies/{entity_id}Get Entity Dependencies
GET/fabric/impact/entities/{entity_id}Get Entity Impact
GET/fabric/impact/graphGet Causal Graph
GET/fabric/impact/incidentsList Incidents
GET/fabric/impact/incidents/{incident_id}Get Incident
GET/fabric/impact/incidents/{incident_id}/authorityGet Incident Authority
GET/fabric/impact/incidents/{incident_id}/blast-radiusGet Incident Blast Radius
GET/fabric/impact/incidents/{incident_id}/evidenceGet Incident Evidence
GET/fabric/impact/incidents/{incident_id}/graphGet Incident Graph
GET/fabric/impact/incidents/{incident_id}/trajectoriesGet Incident Trajectories
POST/fabric/impact/simulateSimulate Whatif
GET/fabric/impact/statusStatus
GET/fabric/kill-switchWhether this tenant's agents are halted
POST/fabric/kill-switchHalt every subsequent action for this tenant
DELETE/fabric/kill-switchRelease the halt and allow actions again
POST/fabric/mcp/enforceEnforce
POST/fabric/mcp/l5/authorizeL5 Authorize
POST/fabric/mcp/system/{tenant}/evolution/proposeEvolution Propose
GET/fabric/memory/Api List Memories
POST/fabric/memory/consolidateApi Consolidate Memories
DELETE/fabric/memory/delete/{memory_id}Api Delete Memory
POST/fabric/memory/expireApi Expire Memories
GET/fabric/memory/get/{memory_id}Api Get Memory
GET/fabric/memory/operationsApi Get Operations
POST/fabric/memory/quarantine/{memory_id}Api Quarantine Memory
POST/fabric/memory/queryApi Query Memories
GET/fabric/memory/statsApi Get Stats
POST/fabric/memory/storeApi Store Memory
POST/fabric/memory/trust/{memory_id}Api Set Trust Level
PATCH/fabric/memory/update/{memory_id}Api Update Memory
POST/fabric/memory/{memory_id}/demoteApi Demote Memory
POST/fabric/memory/{memory_id}/forgetApi Forget Memory
GET/fabric/memory/{memory_id}/historyApi Get Memory History
POST/fabric/memory/{memory_id}/promoteApi Promote Memory
GET/fabric/memory/{memory_id}/provenanceApi Get Memory Provenance
POST/fabric/memory/{memory_id}/restoreApi Restore Memory
POST/fabric/memory/{memory_id}/revokeApi Revoke Memory
GET/fabric/memory/{memory_id}/usageApi Get Memory Usage
POST/fabric/memory/{memory_id}/validateApi Validate Memory
GET/fabric/plansList Plans
POST/fabric/plansCreate Plan
POST/fabric/plans/candidatesGenerate Candidates
POST/fabric/plans/generateGenerate Plan
GET/fabric/plans/{plan_id}Get Plan
POST/fabric/plans/{plan_id}/approveApprove Plan
POST/fabric/plans/{plan_id}/cancelCancel Plan
POST/fabric/plans/{plan_id}/compareCompare Plan
GET/fabric/plans/{plan_id}/evidenceGet Plan Evidence
POST/fabric/plans/{plan_id}/executeExecute Plan
GET/fabric/plans/{plan_id}/provenanceGet Plan Provenance
POST/fabric/plans/{plan_id}/rejectReject Plan
POST/fabric/plans/{plan_id}/replanReplan
POST/fabric/plans/{plan_id}/revalidateRevalidate Plan
GET/fabric/plans/{plan_id}/trajectoryGet Plan Trajectory
POST/fabric/plans/{plan_id}/validateValidate Plan
POST/fabric/plans/{plan_id}/verifyVerify Plan
GET/fabric/plans/{plan_id}/versionsGet Plan Versions
GET/fabric/policyThe live policy: version, modules, and how it is addressed
POST/fabric/policy/dryrunWhat would happen to my recent traffic under different enforcement
POST/fabric/policy/evaluateAsk the live policy engine about a hypothetical call
GET/fabric/proof/historyEvery proof run, hash-chained
POST/fabric/proof/runExecute every check and publish the result
POST/fabric/resilience/analyzeAnalyze Recovery
GET/fabric/resilience/checkpointsList Checkpoints
GET/fabric/resilience/checkpoints/{checkpoint_id}Get Checkpoint
GET/fabric/resilience/dashboardResilience Dashboard
GET/fabric/resilience/evidence/{plan_id}Get Recovery Evidence
POST/fabric/resilience/planPlan Recovery
GET/fabric/resilience/plansList Plans
GET/fabric/resilience/plans/{plan_id}Get Plan
POST/fabric/resilience/plans/{plan_id}/authorizeAuthorize Plan
POST/fabric/resilience/plans/{plan_id}/cancelCancel Recovery
POST/fabric/resilience/plans/{plan_id}/denyDeny Plan
POST/fabric/resilience/plans/{plan_id}/executeExecute Recovery
GET/fabric/resilience/plans/{plan_id}/verifyVerify Recovery Criteria
POST/fabric/resilience/simulateSimulate Recovery
GET/fabric/resilience/snapshots/{snapshot_id}Get Snapshot
GET/fabric/resilience/statesList Recovery States
GET/fabric/resilience/statusResilience Status
GET/fabric/resilience/targetsList Recovery Targets
GET/fabric/security/autonomy-trust/{agent_id}Get Autonomy Trust State
POST/fabric/security/contain/{agent_id}Contain Agent
POST/fabric/security/evaluateEvaluate Security
GET/fabric/security/incidentsGet Incidents
POST/fabric/security/postureCreate Or Update Posture
GET/fabric/security/posture/{agent_id}Get Agent Posture
GET/fabric/security/threatsGet Threats
GET/fabric/sentinel/dashboardSentinel Dashboard
POST/fabric/sentinel/evaluateEvaluate Trust
GET/fabric/sentinel/incidentsList Incidents
GET/fabric/sentinel/incidents/{incident_id}Get Incident
POST/fabric/sentinel/incidents/{incident_id}/closeClose Incident
POST/fabric/sentinel/incidents/{incident_id}/containContain Incident
GET/fabric/sentinel/incidents/{incident_id}/evidenceGet Incident Evidence
GET/fabric/sentinel/incidents/{incident_id}/impactGet Incident Impact
POST/fabric/sentinel/incidents/{incident_id}/recoverRecover Incident
POST/fabric/sentinel/incidents/{incident_id}/restoreRestore Incident
POST/fabric/sentinel/incidents/{incident_id}/reverifyReverify Incident
GET/fabric/sentinel/incidents/{incident_id}/timelineGet Incident Timeline
GET/fabric/sentinel/policiesList Policies
POST/fabric/sentinel/policiesCreate Policy
POST/fabric/sentinel/simulateSimulate Response
GET/fabric/sentinel/statusSentinel Status
GET/fabric/sentinel/transitionsGet Transitions
GET/fabric/sentinel/trust-stateGet Trust State
GET/fabric/settingsThis tenant's enforcement mode
POST/fabric/settingsSwitch this tenant between shadow and enforce
GET/fabric/simulateReplay recorded decisions under proposed settings
GET/fabric/skillsList Skills
POST/fabric/skillsCreate Skill
GET/fabric/skills/{skill_id}Get Skill
POST/fabric/skills/{skill_id}/activateActivate Skill
POST/fabric/skills/{skill_id}/approveApprove Skill
POST/fabric/skills/{skill_id}/executeExecute Skill
GET/fabric/skills/{skill_id}/executionsGet Skill Executions
GET/fabric/skills/{skill_id}/provenanceGet Skill Provenance
POST/fabric/skills/{skill_id}/revokeRevoke Skill
POST/fabric/skills/{skill_id}/security-scanSecurity Scan Skill
PATCH/fabric/skills/{skill_id}/stateUpdate Skill State
POST/fabric/skills/{skill_id}/suspendSuspend Skill
POST/fabric/skills/{skill_id}/testTest Skill
POST/fabric/skills/{skill_id}/validateValidate Skill
GET/fabric/skills/{skill_id}/versionsGet Skill Versions
GET/fabric/ssoThis workspace's single sign-on connection
PUT/fabric/ssoRegister this workspace's OpenID Connect identity provider
DELETE/fabric/ssoRemove single sign-on (members keep their memberships)
POST/fabric/sso/scim-tokenMint the SCIM provisioning token (shown once)
DELETE/fabric/sso/scim-tokenRevoke the SCIM provisioning token
GET/fabric/teamThis workspace's members, invites and your role
POST/fabric/team/acceptJoin a workspace with an invite (signed-in CAIN account)
GET/fabric/team/invite-infoWhat an invite link is for (no sign-in needed)
POST/fabric/team/invitesInvite someone by email
DELETE/fabric/team/invites/{invite_id}Withdraw an invite
PUT/fabric/team/members/{member_id}Change a member's role
DELETE/fabric/team/members/{member_id}Remove a member (or leave, for yourself)
GET/fabric/team/membershipsWorkspaces your CAIN account belongs to
PUT/fabric/team/nameName this workspace
POST/fabric/team/sessionOpen a workspace as a member (returns a short-lived member token)
GET/fabric/tool-rulesThis tenant's tool rules, in evaluation order
POST/fabric/tool-rulesAdd a tool rule
PUT/fabric/tool-rules-defaultWhat happens when no tool rule matches
GET/fabric/tool-rules-historyEvery change to this tenant's tool rules
POST/fabric/tool-rules/testWhich rule would decide this call? (no evidence, no quota)
PUT/fabric/tool-rules/{rule_id}Change a tool rule (its version increments)
DELETE/fabric/tool-rules/{rule_id}Retire a tool rule (kept in history, never deleted)
PUT/fabric/toolargs/schemasRegister or replace a tool schema (operator-admin)
GET/fabric/toolsEvery tool this tenant's agents called, and which rule governs it
GET/fabric/traces/List Traces
POST/fabric/traces/Create Trace
POST/fabric/traces/searchSearch Traces
GET/fabric/traces/{trace_id}Get Trace Endpoint
POST/fabric/traces/{trace_id}/decisionRecord Trace Decision
GET/fabric/traces/{trace_id}/eventsGet Trace Events
GET/fabric/traces/{trace_id}/evidenceGet Trace Evidence
POST/fabric/traces/{trace_id}/finalizeFinalize Trace
GET/fabric/traces/{trace_id}/graphGet Trace Graph
GET/fabric/trajectoriesRecent agent runs for this tenant
GET/fabric/trajectories/List Trajectories
POST/fabric/trajectories/Create Trajectory
POST/fabric/trajectories/passport/issueIssue Passport
POST/fabric/trajectories/passport/verifyVerify Passport
GET/fabric/trajectories/passport/{passport_id}Get Passport
POST/fabric/trajectories/passport/{passport_id}/revokeRevoke Passport
POST/fabric/trajectories/policiesCreate Policy
GET/fabric/trajectories/policies/{policy_id}Get Policy
GET/fabric/trajectories/state/{agent_id}Get Agent Trust State
GET/fabric/trajectories/{chain_id}Reconstruct one agent run, in order
POST/fabric/trajectories/{chain_id}/analyseGrade this run's path and attribute its failure
GET/fabric/trajectories/{trajectory_id}Get Trajectory
POST/fabric/trajectories/{trajectory_id}/cancelCancel Trajectory
POST/fabric/trajectories/{trajectory_id}/completeComplete Trajectory
POST/fabric/trajectories/{trajectory_id}/counterfactualEvaluate Counterfactual
POST/fabric/trajectories/{trajectory_id}/decideMake Trajectory Decision
POST/fabric/trajectories/{trajectory_id}/evaluateEvaluate Action
GET/fabric/trajectories/{trajectory_id}/eventsGet Trajectory Events
POST/fabric/trajectories/{trajectory_id}/eventsRecord Event To Trajectory
GET/fabric/trajectories/{trajectory_id}/evidenceGet Trajectory Evidence
GET/fabric/trajectories/{trajectory_id}/proofGet Trajectory Proof
GET/fabric/trajectories/{trajectory_id}/scoreGet Trajectory Score
POST/fabric/trajectories/{trajectory_id}/verifyVerify Trajectory Chain
GET/fabric/trust-scoreHeuristic trust score, with its arithmetic shown
POST/fabric/trySee CAIN decide on a real action -- no account needed
GET/fabric/webhooksWhere this tenant gets notified
POST/fabric/webhooksGet notified when an action is held, blocked or halted
GET/fabric/webhooks/deliveriesWhat was sent, and what failed
DELETE/fabric/webhooks/{endpoint_id}Stop notifying this endpoint

JSON Schema

Show the raw definition
{
  "properties": {
    "loc": {
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      },
      "type": "array",
      "title": "Location"
    },
    "msg": {
      "type": "string",
      "title": "Message"
    },
    "type": {
      "type": "string",
      "title": "Error Type"
    }
  },
  "type": "object",
  "required": [
    "loc",
    "msg",
    "type"
  ],
  "title": "ValidationError"
}

Try CAIN-42 on your own agents

Create a free account and every new account starts with a 7-day trial of the full platform. Or try the sandbox first, with no account at all.

Create a free account →  ·  Try the sandbox  ·  See the whole ecosystem