Full Control
Drop-in OpenAI replacement. Customer changes
OPENAI_BASE_URL,
keeps their OpenAI key, adds an X-PromptWall-Api-Key header.Verify
Customer calls their LLM directly, then sends the prompt + answer
to
/v1/verify for validation and policy enforcement.Events
Customer ships traces to
/v1/events from their own SDK / vendor /
log import. Observability only — no enforcement.Decision guide
Pick Proxy when…
Pick Proxy when…
- You already use the OpenAI SDK / OpenAI-compatible API.
- You want zero application code changes (just two env vars).
- You want runtime control to be available (opt-in via header or per-tenant policy) without rewriting your app today.
- You want observability immediately, with no glue code.
Pick Verify when…
Pick Verify when…
- Your LLM call is wrapped in custom logic you don’t want to move.
- You already retrieve grounding data and want PromptWall to check the answer against it.
- You want always-on runtime control (block / rewrite / regenerate) sitting after every LLM call.
Pick Events when…
Pick Events when…
- PromptWall did not execute the LLM call (Moveo, Intercom Fin, Salesforce Einstein, or your own SDK already in production).
- You want observability without changing the request path.
- You’re backfilling historical traces from a log archive.
Required keys per mode
| Mode | OpenAI API key | PromptWall API key |
|---|---|---|
| Proxy | ✓ (forwarded to OpenAI) | ✓ (header X-PromptWall-Api-Key) |
| Verify | ✗ (you call your LLM) | ✓ (header X-API-Key or Authorization: Bearer) |
| Events | ✗ | ✓ (header X-API-Key) |
The customer’s OpenAI billing is unchanged in Proxy mode. Their
Authorization: Bearer sk-... header is forwarded verbatim — they
keep paying OpenAI directly. PromptWall’s role is purely
observation + governance.
Same dashboard, no matter what mode
All three modes write into the same canonicaltraces table and
appear on the unified Observability dashboard.
You can filter by:
use_case(e.g.customer_support,coding_assistant)team_id(e.g.support-eu)app_idintegration_id(proxy:openai,sdk:my-app@1.0,vendor:moveo, …)