AI gateway and control plane
Your applications
stop hardcoding
models.
Switchyard sits between everything you run and every AI provider. Each application gets one key and asks for auto. You decide — centrally — which model answers, what it may spend, and what happens when a provider breaks.
OpenAI-compatible · point an existing SDK at it and change one line
The problem
A model id in twelve repositories is twelve deploys.
Without a gateway
- Every service holds a provider key in its own environment.
- The model id is compiled into the application. Changing it is a pull request and a release.
- Spend is one invoice at the end of the month with no idea which app caused it.
- A provider outage takes down whatever happened to call it.
- Nobody can answer what a given feature costs per request.
With Switchyard
- One credential per application, issued and revoked from the dashboard.
- The model is configuration. Repoint a route and the next request follows it.
- Spend is attributed per application, per model, per task, as it happens.
- A failing provider is retried, then routed around, then taken out of rotation.
- Every request carries its token count, latency and estimated cost.
How it works
Five things happen between the request and the model.
None of them live in your application. All of them are visible afterwards.
01
Authenticate
The application presents its own key. Switchyard matches the hash, checks it is live and unexpired, and resolves which application and organization it belongs to.
02
Clear policy
Data classification, token ceiling, rate limit and month-to-date budget are all checked before a provider is contacted. A refusal here costs nothing.
03
Set the route
An explicit approved model wins, then the task rule, then the policy default. Any model with an open circuit is skipped.
04
Run and recover
Transient failures retry, then fail over down the approved chain. Premium models stay out of it unless the application explicitly permits them.
05
Meter
Tokens in and out, estimated cost, latency, provider, and which model actually answered — written before the response returns.
Capabilities
Built for the day a provider lets you down.
model portability
Change the model without a deploy
Applications ask for an alias or for auto — never a provider's model id. Repoint the route here and every application follows on its next request.
spend control
Budgets that actually stop traffic
Per application and per organization, enforced server-side against recorded spend. At the cap the request is refused with a 402, not logged and paid for.
reliability
Failover down an approved chain
One retry on the primary, then each approved fallback in order. The requesting application sees a normal response and the failover shows up in the logs.
circuit breakers
A sick model leaves the rotation
Five consecutive failures pulls a model out for two minutes. Routing skips it automatically and an alert opens.
accounting
Every request costed
Input, output and cached tokens, estimated cost, latency and the model that served it. Dashboard totals reconcile to the underlying records.
prompt registry
Prompts versioned centrally
System prompts live here rather than in application code. Every save is a new version; publishing an older one is the rollback.
governance
Regulated workloads refused
Legal and medical classifications are denied outright, whether declared on the application or on the request. No allowlist overrides it.
secrets
Provider keys never leave
Encrypted with AES-256-GCM and returned by no endpoint. Application keys are stored as hashes and shown once, at creation.
Pricing
You pay for the control plane. Model spend stays yours.
Switchyard bills for the gateway. What your applications spend upstream is billed by your provider, on your own account, and shown here to the cent.
Free
Put one application behind the gateway and see what it costs.
$0
free forever
- 1 application
- 10,000 requests a month
- Budgets, rate limits and failover
- 7-day request history
- Shared provider credential
Team
A product team running AI across several services.
$49
per month · $490 billed yearly
- 5 applications
- 250,000 requests a month
- Bring your own provider keys
- Prompt registry and test console
- 90-day request history
- Budget and outage alerts
Scale
Several teams, or several organizations, under one control plane.
$199
per month · $1990 billed yearly
- 25 applications
- 2,000,000 requests a month
- Multi-organization super admin
- Audit trail export
- 1-year request history
- Priority support
Enterprise
Self-hosted, or beyond what the Scale limits allow.
Custom
talk to us
- Unlimited applications and requests
- Self-hosted or dedicated deployment
- Custom retention and data residency
- SSO and role mapping
- Onboarding and migration help
Yearly billing is ten months for twelve. Request allowances are a fair-use ceiling — cross one and we raise it with you rather than cutting your traffic off mid-month. We never take a percentage of what you spend upstream, and we never mark up tokens.
Accounts are currently created by invitation — get in touch and we will set yours up.
Get started
Three steps, and one line of your code.
- 1Register the applicationName it, set its budget, rate limit and model allowlist.
- 2Issue a keyShown once. Store it in that application's environment.
- 3Change the base URLEverything else about your call stays as it is.
curl https://switchyard.click/v1/chat/completions \
-H "Authorization: Bearer $SWITCHYARD_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"task": "draft",
"messages": [
{ "role": "user", "content": "Hello" }
]
}'import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.SWITCHYARD_KEY,
baseURL: "https://switchyard.click/v1",
});
const res = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Hello" }],
});The response carries an extra gateway object naming the request id, the model that actually answered, whether a fallback fired, the latency and the estimated cost. Standard SDK fields are untouched. Full API reference.