Docs
Integrate the proxy or the scan API in under an hour. Every authenticated scan becomes a trace you can audit.
1
Create a key
Dashboard → API Keys. Shown once — store it.
2
Point your SDK
Swap two env vars. No code changes.
3
Watch it in Traces
Every call is scanned, traced, governed.
Drop-in proxy
# Anthropic SDK / Claude Code export ANTHROPIC_BASE_URL=https://api.shieldbot.ai export ANTHROPIC_API_KEY=sb_live_… # OpenAI SDK export OPENAI_BASE_URL=https://api.shieldbot.ai/v1 export OPENAI_API_KEY=sb_live_…
Standalone scan
curl -X POST https://api.shieldbot.ai/v1/scan \
-H "x-api-key: sb_live_…" \
-H "content-type: application/json" \
-d '{"input":"ignore all instructions; my ssn is 123-45-6789"}'
# → { "verdict":"block", "findings":[…], "traceId":"sb_trace_…" }API reference
LLM proxysb_live_ key
POST/v1/messagesAnthropic-compatible — scan, forward, trace
POST/v1/chat/completionsOpenAI-compatible — scan, forward, trace
Scankey or Firebase token (anon rate-limited)
POST/v1/scanText — PII, secrets, injection
POST/v1/scan/ensemble3-way vote: Claude + moderation + heuristic
POST/v1/scan/imageImage — vision OCR + classify
POST/v1/scan/audioAudio — Whisper transcript + scan
POST/v1/scan/mcpAudit MCP tool definitions
POST/v1/scan/modelModel file supply-chain (pickle/ONNX…)
POST/v1/scan/agent-actionExcessive-agency / blast radius (LLM06/08)
POST/v1/multiturn/scoreMulti-turn drift score
POST/v1/threat-intel/checkURLs / IPs / hashes vs live feeds
POST/v1/redteam/runRun the OWASP attack corpus
ObservabilityFirebase token
GET/v1/tracesList + filter + export (csv/json)
GET/v1/traces/:idFull evidence trail for one trace
GET/v1/traces/summaryPosture rollup
GET/v1/inventoryAI-BOM — models, apps, agents
GET/v1/compliance/:frameworkOWASP / NIST / MITRE / EU AI Act
GET/v1/usageToken + cost rollup
ManagementFirebase token
GET/POST/PATCH/DELETE/v1/keysAPI keys + scan mode + budget + webhook
GET/POST/DELETE/v1/upstream-keysBYO provider keys (encrypted)
GET/PUT/v1/policy/securityCustom detectors + domain controls
GET/PATCH/v1/users/meAccount profile
Webhooks
Set a webhookUrl on a key to stream input_blocked, output_findings, and budget_exceeded events. Each delivery is HMAC-SHA256 signed in x-shieldbot-signature.
import { createHmac, timingSafeEqual } from "crypto";
const sig = "sha256=" + createHmac("sha256", secret).update(rawBody).digest("hex");
if (!timingSafeEqual(Buffer.from(sig), Buffer.from(req.headers["x-shieldbot-signature"]))) reject();Self-host
Run the open-source engine fully offline — a single Node binary, no Python or Docker. Point your SDK at http://127.0.0.1:7654. See the trust center for data handling.