Quickstart
Start routing LLM requests through Ingate in under 5 minutes. No infrastructure to deploy. Ingate is fully managed.
Cloud-hosted
https://api.ingateai.com. There's nothing to install or self-host.1. Create Your Account
Head to app.ingateai.com and create an account. This sets up your organization and generates your first Ingate API key. It looks like sk-ingate-....
Save your API key
2. Add a Provider
In the dashboard, navigate to Dashboard → Providers and click Add Provider. Choose the LLM provider you want to route to (OpenAI, Anthropic, etc.) and select an auth mode:
API Key Mode
Ingate securely stores your provider API key (e.g. your OpenAI sk-... key) and injects it into every proxied request. Your clients never see the provider key. They only use their Ingate key.
This is the default for most use cases: backend services, internal tools, and any app where you manage the provider subscription.
Passthrough Mode
For tools that already have their own provider subscription, like Claude Code Pro or Claude Code Max: Ingate passes the client's auth token straight through to the provider. Ingate doesn't store or replace the credentials; it just observes, logs, and applies your policies.
Use passthrough when your developers or coding agents bring their own subscriptions and you want centralized visibility without managing provider keys yourself.
Auto-detection
/v1/chat/completions routes to OpenAI, /v1/messages routes to Anthropic, and so on. You don't need to specify the provider explicitly.3. Send Your First Request
Send a request to Ingate the same way you would to your provider. Just swap the base URL and add your Ingate key. The provider is auto-detected from the path:
curl https://api.ingateai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-Ingate-Key: sk-ingate-your-key" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Say hello"}]
}'That's it. No X-Ingate-Provider header needed. Ingate sees /v1/chat/completions and routes to OpenAI automatically.
For Anthropic, use the Anthropic path and body format:
curl https://api.ingateai.com/v1/messages \
-H "Content-Type: application/json" \
-H "X-Ingate-Key: sk-ingate-your-key" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Say hello"}]
}'Done
4. SDK Integration
Swap the base URL and set your Ingate key. Auto-detection handles routing with no extra headers required.
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.ingateai.com/v1",
api_key="sk-ingate-your-key", # your Ingate key, not an OpenAI key
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello from Ingate!"}],
)
print(response.choices[0].message.content)TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.ingateai.com/v1",
apiKey: "sk-ingate-your-key", // your Ingate key, not an OpenAI key
});
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello from Ingate!" }],
});
console.log(response.choices[0].message.content);Works with any OpenAI-compatible SDK
/v1/chat/completions by default. Ingate auto-detects this as OpenAI and routes accordingly. The same pattern works for the Anthropic SDK. Just set the base URL to https://api.ingateai.com.5. Check Your Dashboard
Open app.ingateai.com and you'll see your requests in real time: provider, model, token counts, latency, cost, and full request/response bodies. Every request through Ingate is logged automatically.
Next Steps
Providers
Configure OpenAI, Anthropic, Azure, Ollama, and custom endpoints.
Prompt Management
Create versioned, renderable prompt templates with variable injection.
Evaluations
Run automated quality checks on every LLM response.
Playground
Test prompts and models interactively from the dashboard.
Datasets
Build test datasets from production traffic for evals and fine-tuning.
Sessions
Group related requests into sessions for multi-turn conversation tracking.