Documentation
Integration Guide
Put Gatekeeper in front of your AI calls in a few minutes. Point your provider requests at the gateway, add one header, and every prompt is scanned, policy-enforced, and logged before it reaches the model.
Step-by-step setup
1. Get your API key
In the dashboard, open Settings → Create App. You'll get an app_id and an api_key that looks like gk_live_xxxxxxxxxxxx. Save the key — you need it on every protected request.
2. Point your AI calls at Gatekeeper
POST your provider request to the Gatekeeper proxy endpoint (/proxy/openai or /proxy/anthropic). Gatekeeper applies your policies and forwards the cleaned request to the provider. Note: this is a direct POST, not an SDK base_url swap — Gatekeeper wraps the reply in an envelope the provider SDK can't parse.
3. Add the Gatekeeper header
Send your key in the X-Gatekeeper-Key header alongside your existing provider auth header. That's the only new header you need.
4. Send a protected AI request
Make the request as usual. PII is redacted and policies are enforced before the provider sees the prompt — and every request lands in your audit log.
Code examples
Examples use the live gateway. Swap in your own gk_live_ key and provider credentials.
// Quick check: scan any text for PII / policy hits
const res = await fetch("https://gatekeeper-production-7dd1.up.railway.app/scan", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
text: "My email is john@gmail.com"
})
});
const result = await res.json();
// -> redacted text + the PII types that were detected// Protect an OpenAI call — POST to the proxy with your X-Gatekeeper-Key
const res = await fetch("https://gatekeeper-production-7dd1.up.railway.app/proxy/openai", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_OPENAI_KEY",
"X-Gatekeeper-Key": "gk_live_xxxxxxxxxxxx"
},
body: JSON.stringify({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello AI" }],
max_tokens: 300
})
});
// Response is wrapped: { gatekeeper: {...audit}, response: {...reply|null} }
const { gatekeeper, response } = await res.json();// Protect an Anthropic call
const res = await fetch("https://gatekeeper-production-7dd1.up.railway.app/proxy/anthropic", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_ANTHROPIC_KEY",
"X-Gatekeeper-Key": "gk_live_xxxxxxxxxxxx"
},
body: JSON.stringify({
model: "claude-haiku-4-5-20251001",
messages: [{ role: "user", content: "Hello AI" }],
max_tokens: 300
})
});
// Response is wrapped: { gatekeeper: {...audit}, response: {...reply|null} }
const { gatekeeper, response } = await res.json();Supported integrations
OpenAI
Route chat/completions through /proxy/openai. Keep your model and messages exactly as-is.
Anthropic
Route messages through /proxy/anthropic with your X-Api-Key. Same request body, one extra header.
Workato
Enterprise recipes connect via the Gatekeeper connector so no-code automations are policy-gated too.
Need the full walkthrough?
The customer guide covers dashboards, policy packs, automated tests, and Slack alerts end to end.