⚡ Quickstart

CMMC gateway in 60 seconds

HoundShield is an OpenAI-compatible proxy. Every AI query from your team passes through it first. CUI, CAGE codes, contract numbers, PHI and secrets are detected and blocked before they reach any provider.

1

Get your keys

Sign up, then copy your gateway license + admin token from Dashboard → Settings → API Keys.

2

Point your SDK at HoundShield

Change the baseURL in any OpenAI-compatible client to the gateway. Zero behavior change for your team.

3

Every query is now CMMC-monitored

CUI, CAGE codes, contract numbers, PHI and secrets are flagged and blocked in <10ms — before anything leaves your perimeter.

Your gateway URL
https://proxy.houndshield.com/v1
Authentication

Two keys, two scopes

The gateway endpoint uses your normal provider key as a Bearer token — you keep using ChatGPT/Copilot/Claude exactly as before. The management endpoints (audit log, quarantine, policy) require an admin token sent as the x-admin-token header, so no one with mere network reach can release quarantined CUI or weaken your policy.

Mode B for CUI. The hosted gateway (https://proxy.houndshield.com) is for demos and non-CUI evaluation. For CUI workloads run the identical API on your own Docker host — the base URL is the only change, and prompt content never leaves your boundary.
Detection

What gets detected

CUIFOUO markings, CAGE codes, DoD contract numbers, clearance/ITAR language.
PHIAll 18 HIPAA identifiers — MRN, DOB, SSN, insurance IDs, diagnoses.
PIISSN, addresses, phone, email, financial account numbers.
SecretsAPI keys, cloud credentials, tokens, private keys in prompt bodies.
Source & IPProprietary source code and internal identifiers.
Reference

API reference

POST/v1/chat/completions

Gateway intercept

The main endpoint. OpenAI-compatible chat completions that pass through HoundShield first — every message is scanned for CUI, CAGE codes, contract numbers, PHI/PII and secrets in <10ms before the request reaches the upstream provider. Point any OpenAI-compatible SDK at the gateway and your code is unchanged.

Auth · Bearer <your provider key> — the proxy validates its own license server-side.
Headers
AuthorizationstringrequiredBearer <provider API key> (e.g. your OpenAI key).
X-ProviderstringUpstream provider: openai (default), anthropic, openrouter.
X-Provider-Api-KeystringOverride the upstream key per request.
X-User-IdstringAttribute the event to a user (audit trail).
X-Session-IdstringGroup events into a session.
Request · cURL
curl https://proxy.houndshield.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-User-Id: alex@acme-defense.com" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      { "role": "user", "content": "Summarize our CAGE 1ABC2 contract" }
    ]
  }'
Response
// When the prompt is CLEAN, you get the normal OpenAI response.
// When a violation is detected, the request is blocked locally:
{
  "id": "chatcmpl-hs-9f3c1a",
  "object": "chat.completion",
  "houndshield": {
    "action": "BLOCKED",
    "risk_level": "CRITICAL",
    "detections": [
      { "engine": "CUI", "pattern": "CAGE code", "nist_control": "SC.L2-3.13.1" }
    ],
    "message": "Blocked before leaving your perimeter. Logged to the audit chain."
  }
}
GET/health

Health check

Liveness probe. No auth — safe for load balancers and uptime monitors.

Auth · None.
Request · cURL
curl https://proxy.houndshield.com/health
Response
{ "status": "ok", "version": "2.0.0", "source": "houndshield-proxy", "ooda": true }
GET/v1/stats

Live stats

Aggregate counters for the gateway — total scanned, blocked, quarantined, and average detection latency.

Auth · None (aggregate counts only, no prompt content).
Request · cURL
curl https://proxy.houndshield.com/v1/stats
Response
{ "success": true, "data": { "scanned": 14388, "blocked": 512, "quarantined": 37, "avg_ms": 8 } }
GET/v1/events admin token

Audit log

The tamper-evident, SHA-256 hash-chained event log — the C3PAO evidence trail. Filter by action or time window and page through with limit/offset.

Auth · Admin token.
Parameters
limitintMax rows (default 100, max 500).
offsetintPagination offset.
actionstringFilter: BLOCKED | QUARANTINED | ALLOWED.
sinceISO 8601Only events at/after this timestamp.
Request · cURL
curl "https://proxy.houndshield.com/v1/events?action=BLOCKED&limit=50" \
  -H "x-admin-token: $HOUNDSHIELD_ADMIN_TOKEN"
Response
{
  "success": true,
  "data": [
    {
      "request_id": "9f3c1a…",
      "action": "BLOCKED",
      "risk_level": "CRITICAL",
      "engine": "CUI",
      "nist_control": "SC.L2-3.13.1",
      "hash": "a3f1…",
      "prev_hash": "77c8…",
      "ts": "2026-07-18T14:22:33Z"
    }
  ]
}
GET/v1/quarantine admin token

Quarantine queue

List requests held for human review. Scoped to one org; filter by status.

Auth · Admin token.
Parameters
org_idstringrequiredOrganization to scope to.
statusstringpending (default) | released | blocked.
limitintMax rows (default 100, max 500).
Request · cURL
curl "https://proxy.houndshield.com/v1/quarantine?org_id=acme-defense&status=pending" \
  -H "x-admin-token: $HOUNDSHIELD_ADMIN_TOKEN"
Response
{ "success": true, "data": [ { "request_id": "9f3c1a…", "risk_level": "HIGH", "engine": "PHI", "ts": "2026-07-18T14:20:01Z" } ] }
PUT/v1/quarantine/:requestId admin token

Review a quarantined request

Release (allow through) or block a held request. The decision and reviewer are written to the audit chain.

Auth · Admin token.
Parameters
statusstringrequiredreleased | blocked (body).
reviewed_bystringWho made the call (body).
Request · cURL
curl -X PUT https://proxy.houndshield.com/v1/quarantine/9f3c1a \
  -H "x-admin-token: $HOUNDSHIELD_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "released", "reviewed_by": "alex@acme-defense.com" }'
Response
{ "success": true }
PUT/v1/policy/:orgId admin token

Update org policy

Read (GET) or update (PUT) an organization's detection policy — which engines are active and how each risk level is handled (block vs quarantine).

Auth · Admin token.
Request · cURL
curl -X PUT https://proxy.houndshield.com/v1/policy/acme-defense \
  -H "x-admin-token: $HOUNDSHIELD_ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "engines": { "CUI": "block", "PHI": "block", "PII": "quarantine" } }'
Response
{ "success": true, "org_id": "acme-defense" }
No infrastructure change required. Your employees keep using ChatGPT, Copilot or Claude — HoundShield sits in the middle, transparently, on your hardware.