API reference · Trust Fabric
Halt every subsequent action for this tenant
POST /fabric/kill-switch
Last reviewed 2026-10-03
POST /fabric/kill-switch
Emergency stop.
Distinct from revoking a principal, which is the surgical tool for one leaked key. This is for the case where something is wrong and you do not yet know which agent -- you stop everything and read the evidence afterwards. Having to enumerate and revoke principals one at a time during an incident is not an incident response.
Blocks regardless of whether the Fabric is in enforce or shadow mode: a stop button that honours an observability setting is not a stop button.
Request body
KillSwitchRequest (required)
| Field | Type | Meaning |
|---|---|---|
reason required | string | why the halt was engaged -- read by whoever finds it later, so it is mandatory min length 3 · max length 500 |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Successful Response | JSON |
422 | Validation Error | HTTPValidationError |
401 | No key, or a key that is not valid | JSON detail |
429 | Rate limit for your plan reached; retry after the Retry-After seconds | JSON detail |
Try it
This call changes data in the account the key belongs to.
The request goes from your browser straight to this site. Your key is not stored unless you tick the box, and then only in this tab's session storage.
Code
curl -sS -X POST 'https://cainstudio.online/fabric/kill-switch' \
-H "X-API-Key: $CAIN_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"reason": "reason"}'import json, os, urllib.request
req = urllib.request.Request('https://cainstudio.online/fabric/kill-switch', method='POST',
headers={"X-API-Key": os.environ["CAIN_API_KEY"], "Content-Type": "application/json"},
data=json.dumps({
"reason": "reason"
}).encode())
with urllib.request.urlopen(req, timeout=60) as r:
print(r.status, json.load(r))const res = await fetch("https://cainstudio.online/fabric/kill-switch", {
method: "POST",
headers: {
"X-API-Key": process.env.CAIN_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
"reason": "reason"
}),
});
console.log(res.status, await res.json());Schemas used
HTTPValidationError · ValidationError · KillSwitchRequest
← Whether this tenant's agents are halted · all 79 Trust Fabric calls · Release the halt and allow actions again →
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