One bill.
1000s of models.
No subscriptions, no provider keys. Configurations applied at runtime, every model at its full capability set. End-user usage, visible and revocable. One simple rate.
A 3% routing fee. The whole price.
Routes to
How does Switchboard help?
OpenAI, Anthropic, Google native formats
Send the format you already use; Switchboard translates server-side. Chat completions, tool calling, streaming all map. No new wire format to learn.
Read the quickstartCache + reasoning attribution
Cache writes and cache reads itemized on every response. Billed at the provider's exact rates, cached-prompt discounts included.
See the response shapePer-end-user attribution
Pass `user: "your_user_id"` and every debit lands on a per-user ledger. One invoice, itemized down to every user.
See attributionKeys your end users never see
Switchboard mints and manages keys for your application and every end user. Nothing ships in a binary, nothing gets pasted, and rotation happens over the wire: no client rebuild, no downtime.
See how keys workMetered, settled, one invoice
Every token metered, every debit ledgered, one bill across every provider. Rate limits and cost caps built in.
See pricingDrop-in
OpenAI-compatible.
Pick a model. Ship.
Change the provider by changing the model id. Switchboard handles the wire-format translation server-side — your code stays exactly the same whether you're calling Claude, GPT, or Gemini.
Full quickstart →import Switchboard
let client = Switchboard.Client(
apiKey: ProcessInfo.processInfo.environment["SWB_API_KEY"]!
)
let response = try await client.chatCompletions(.init(
model: "anthropic/claude-sonnet-4-5",
messages: [.user("Hello")],
user: "your_user_id",
))
print(response.content ?? "") curl https://switchboard.valni.app/v1/chat/completions \
-H "Authorization: Bearer $SWB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4-5",
"messages": [{"role": "user", "content": "Hello"}],
"user": "your_user_id"
}' Switchboard FAQs
How is Switchboard different from OpenRouter or LiteLLM?
OpenRouter and LiteLLM are gateways — they unify the API. Switchboard does that and owns the billing relationship: per-customer key minting, per-end-user attribution, and a single invoice covering every provider. Built for SaaS products that need to resell inference, not just route it.
Which request formats are supported?
OpenAI, Anthropic, and Google native formats. Provider divergences are translated server-side, and each model is auto-configured from Linecard to run with its full capability set.
Which models can I route to?
Every model in Linecard is routable through Switchboard. The registry tracks pricing, capabilities, and configuration per model, so you can pick by feature (tool calling, vision, caching) and not just by name.
How does billing work?
A 3% fee on usage, no subscription. Auto-billed every $10, so nothing builds up. Start instantly with standard rate limits; higher limits come with history or by application.
What powers the routing
See pricing, capabilities, and configuration for every model
Linecard is the model registry behind Switchboard — track what each model can do, what it costs per token, and the configuration it performs best with.
Start with Switchboard
Get an API key, drop in your model id, ship.