Skip to main content
There are three ways to put PromptGuard in front of an LLM call. Each page in this section says which of them work for that provider or framework. The Guard API is the fourth option when none of these fit: you send the text, PromptGuard returns a decision, and your code calls the model.

LLM providers

OpenAI

Anthropic

Google Gemini

Azure OpenAI

AWS Bedrock

Mistral AI

Groq

DeepSeek

Cohere

Hugging Face

OpenRouter, Together, xAI and other OpenAI-compatible hosts

Ollama (self-hosted PromptGuard)

vLLM (self-hosted PromptGuard)

How the proxy picks a provider

The proxy reads the model in your request body and nothing else. There is no provider parameter.
  1. A vendor namespace wins. A model id that starts with a namespace a provider owns, such as azure/, bedrock/ or openrouter/, goes to that provider. The namespace is removed before the request is forwarded, because the vendor does not know it.
  2. Otherwise the first provider that recognises the model family gets it. claude- goes to Anthropic, gemini- to Gemini, gpt- and the o-series to OpenAI. Each provider page lists the families it claims.
  3. A model no provider recognises is refused before anything is forwarded. It is never sent to OpenAI as a guess.
Rule 2 is checked in a fixed order, so where two providers could claim the same model id, the provider page says which one gets it. For example, meta-llama/ model ids go to Groq, not Hugging Face.

Which credential is sent

On every proxy route, X-API-Key carries your PromptGuard key and Authorization carries the provider’s key, which PromptGuard forwards. If you have stored a provider key for the project, PromptGuard sends that one instead and your Authorization header is ignored. Each provider page shows the header the provider itself expects, so you do not need to translate it.

Frameworks

LangChain

LangGraph

LlamaIndex

CrewAI

FastAPI and ASGI

Vercel AI SDK