API reference · Trust Fabric
What would happen to my recent traffic under different enforcement
POST /fabric/policy/dryrun
Last reviewed 2026-10-02
POST /fabric/policy/dryrun
Replay this tenant's recorded decisions under candidate enforcement settings.
Exact, not simulated: each recorded decision carries what every stage actually said, so the outcome under different enforcement flags is a recomputation of stored facts. Stages that did not run are reported as unknown rather than assumed.
Request body
DryRunRequest (required)
| Field | Type | Meaning |
|---|---|---|
limit | integer | how many recent decisions to replay min 1.0 · max 1000.0 · default 200 |
fabric_enforce | boolean | master switch to simulate default true |
enforce_stages | array of string | which stages are enforcing in the simulation |
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/policy/dryrun' \
-H "X-API-Key: $CAIN_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"limit": 200, "fabric_enforce": true, "enforce_stages": ["enforce-stages"]}'import json, os, urllib.request
req = urllib.request.Request('https://cainstudio.online/fabric/policy/dryrun', method='POST',
headers={"X-API-Key": os.environ["CAIN_API_KEY"], "Content-Type": "application/json"},
data=json.dumps({
"limit": 200,
"fabric_enforce": True,
"enforce_stages": [
"enforce-stages"
]
}).encode())
with urllib.request.urlopen(req, timeout=60) as r:
print(r.status, json.load(r))const res = await fetch("https://cainstudio.online/fabric/policy/dryrun", {
method: "POST",
headers: {
"X-API-Key": process.env.CAIN_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
"limit": 200,
"fabric_enforce": true,
"enforce_stages": [
"enforce-stages"
]
}),
});
console.log(res.status, await res.json());Schemas used
DryRunRequest · HTTPValidationError · ValidationError
← The live policy: version, modules, and how it is addressed · all 79 Trust Fabric calls · Ask the live policy engine about a hypothetical call →
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