Quickstart

Start routing LLM requests through Ingate in under 5 minutes. No infrastructure to deploy. Ingate is fully managed.

Cloud-hosted

Ingate is a managed cloud service. Sign up at app.ingateai.com, grab your API key, and point your requests at 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

Your raw API key is shown only once during creation. Copy it somewhere safe. It cannot be retrieved later.

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

Ingate automatically detects the target provider from the request path. /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:

bash
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:

bash
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

The request is proxied to the provider, the response streams back to your client, and everything is logged automatically. Open your dashboard to see the trace.

4. SDK Integration

Swap the base URL and set your Ingate key. Auto-detection handles routing with no extra headers required.

Python

pythonapp.py
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

tsapp.ts
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

The OpenAI SDK sends requests to /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