One key. Every frontier model.
9 providers behind one OpenAI-compatible endpoint, metered per token. Change the model string; keep everything else.
- OpenAI
- Groq
Every call comes back with what it cost.
Not a percentage off a rate card. The model that answered, the tier it landed in, the dollars charged, and the model those dollars were measured against — in the response headers, or in the last frame of a stream, quotable by id.
- x-lobstack-model
- What actually served the request. Not necessarily what you sent.
- x-lobstack-tier
- The tier the complexity score landed in, and the score that put it there.
- x-lobstack-cost-usd
- What you owe for these tokens, priced the moment the request ran from the counts the provider reported. Empty when the model is unpriced — an absence, never a zero.
- x-lobstack-savings-usd
- The baseline cost minus the cost above, on these exact token counts. Dollars, subtracted — not a percentage off a rate card.
- x-lobstack-baseline-reason
- plan_ceiling here, because the request said "auto" and named no model: the comparison is Claude Fable 5.1, the most expensive model the Developer plan allows, and nobody asked for it. Read this before rendering the saving.
- x-lobstack-request-id
- The id on the trace and on the ledger row. Quotable in a support thread.
The receipt headers on a buffered 200; quota headers ride alongside them. Priced and routed by the Gateway’s own code at build time.
How it works
- POST
- /v1/chat/completions
- model
- "auto"
- complexity
- 25 / 100
- tier
- small
- model
- Claude Haiku 4.5
- provider
- anthropic
- cost-usd
- $0.001565
- savings-usd
- $0.014085
- baseline-reason
- plan_ceiling
The router walks the bands cheapest first and stops at the first whose range covers the score. 25 lands in small, served by Claude Haiku 4.5. The Developer ceiling is flagship, so the cap is not what stopped it here.
The $0.014085 saved is measured against that ceiling — Claude Fable 5.1, the most expensive model the Developer plan allows, and a model nobody asked for. That is what plan_ceiling on the response means.
The request above sent auto, which names no model. Name one instead and it sets the ceiling, not the answer: the router still starts at the cheapest tier and stops at the first that clears the score, so you get the model you named when the tier it selects is that model’s. x-lobstack-routed says which happened.
Point what you already have at it
The endpoint is OpenAI-shaped. Every client here reaches the same route on the same key and gets the same receipt back.
An OpenAI SDK
const client = new OpenAI({
baseURL: "https://www.lobstack.ai/api/gateway/v1",
apiKey: process.env.LOBSTACK_KEY,
});One base URL and a Lobstack key in place of the provider’s. Python is base_url=. Nothing else moves — the request and response shapes are OpenAI’s, streaming and tool calls included.
Quickstart →A tool that only speaks OpenAI
npx -y lobstack lobstack proxy OPENAI_BASE_URL=http://127.0.0.1:8787/v1 OPENAI_API_KEY=anything
Point Cursor, Aider or Continue at it and every call is routed, metered and in your Console. The tool never sees your Lobstack key; the proxy holds it. It binds 127.0.0.1 only — the process answers unauthenticated requests, so anything that can reach the port can spend on your account.
How the proxy works →An editor that speaks MCP
npx -y @lobstack-ai/mcp
The Lobstack Gateway as an MCP server over stdio: route a prompt, list models, send a call, read what it cost — inside Claude Desktop, Claude Code, Cursor or Zed.
MCP reference →The catalog
26 models across 9 providers, reachable by changing one string, plus 19 previous-generation keys that keep working.
Enterprise controls
Plan ceilings
Cap the model tier each plan can reach. Token Intelligence routes freely below the ceiling and never above it. Cost control by construction, not by review.
Bring your own keys
Run managed inference on Lobstack keys, or switch to BYOK and route with your own provider credentials. Same endpoint, same metering.
Keys you never handle
Managed provider keys are held as platform environment secrets and resolved at boot — never on agent disk, never in the workspace database. API keys are stored only as a SHA-256 hash and compared in constant time.
One key, from today.
Get a Gateway key, then command it from the Console.


