BobSentry logoBobSentry

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.

Sandbox Quickstart | BobSentry Docs | BobSentry