Valni
switchboard

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

OpenAIAnthropicGooglexAIDeepSeekMistralMoonshot · KimiZhipu

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 quickstart

Cache + 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 shape

Per-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 attribution

Keys 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 work

Metered, settled, one invoice

Every token metered, every debit ledgered, one bill across every provider. Rate limits and cost caps built in.

See pricing

Drop-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 →
Swift Switchboard SDK
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 switchboard.valni.app
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"
  }'

Pricing

A 3% routing fee — no subscription, no platform fee.

See pricing

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.

Enter invite key

Valni is in private alpha. Enter your invite key to download. Don't have one? Reach out.