Sandbox Quickstart
Call POST /v1/runtime/evaluate with x-api-key. BobSentry returns ALLOW, REQUIRE_APPROVAL, or BLOCK — it does not execute the downstream action. Your integration must honor the decision. Full contract: Runtime Integration Contract.
1. Get an API key
Sign in and open the Sandbox page, then click Generate Sandbox Key. The full key is shown once — copy it and set it as an environment variable:
export BOBSENTRY_SANDBOX_KEY=bsk_your_key_here
2. curl
curl -X POST https://runtime.bobsentry.com/v1/runtime/evaluate \
-H "x-api-key: $BOBSENTRY_SANDBOX_KEY" \
-H "content-type: application/json" \
-d '{
"action": "deploy_production",
"agent_id": "infra-agent",
"action_environment": "PRODUCTION",
"schema_version": "2026-06",
"metadata": { "system": "payments" }
}'3. Python
import os, requests
resp = requests.post(
"https://runtime.bobsentry.com/v1/runtime/evaluate",
headers={"x-api-key": os.environ["BOBSENTRY_SANDBOX_KEY"]},
json={
"action": "deploy_production",
"agent_id": "infra-agent",
"action_environment": "PRODUCTION",
"schema_version": "2026-06",
"metadata": {"system": "payments"},
},
)
record = resp.json()
print(record["decision"], record["decision_id"])Sample payloads
Canonical (deploy_production)
{"action":"deploy_production","agent_id":"infra-agent","action_environment":"PRODUCTION","schema_version":"2026-06","metadata":{"system":"payments"}}ALLOW-oriented example
{"action":"query_ehr","agent_id":"agent_demo","metadata":{"system":"epic","sensitivity_level":"MEDIUM"}}REQUIRE_APPROVAL-oriented example
{"action":"send_external_email","agent_id":"agent_demo","metadata":{"destination_class":"EXTERNAL","sensitivity_level":"HIGH"}}BLOCK-oriented example
{"action":"destructive_database_update","agent_id":"agent_demo","metadata":{"system":"warehouse","sensitivity_level":"CRITICAL"}}Example signed response
{
"decision_id": "0f4c…",
"decision": "ALLOW",
"risk_level": "MEDIUM",
"policy_id": "HIPAA-EHR-QUERY-001",
"approval_required": false,
"approval_status": "NOT_REQUIRED",
"chain_index": 12,
"chain_digest": "a1b2…",
"signature": "ed25519:…",
"timestamp": "2026-06-19T05:00:00.000Z"
}Evidence
Every decision returns a decision_id (also the evidence id) plus an Ed25519 signature and a hash-chain digest. The tenant for each decision is derived from your API key on the server — any caller-supplied tenant field is rejected. Your recent decisions appear in the Sandbox evaluation history.