Valni
switchboard

One key.
Every model.

OpenAI, Anthropic, Google, local — all through one endpoint with the OpenAI chat-completions wire format. One API, one bill, no provider lock-in.

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

Routes to

OpenAIAnthropicGooglexAIDeepSeekMeta · LlamaMoonshot · KimiZhipuLocal · OllamaLocal · MLX

How does Switchboard help?

OpenAI-compatible — drop in

Already use OpenAI's SDK? Swap the base URL and the model id. Chat completions, tool calling, streaming, multimodal content — all map. No new wire format to learn.

Read the quickstart

Bring your own keys, or use ours

Use your own OpenAI / Anthropic / Google keys for direct billing, or let Switchboard manage the provider keys and bill you one invoice. Per-customer key minting via admin APIs.

Manage keys

Cache + reasoning attribution

Cache writes, cache reads, reasoning tokens: itemized on every response. Cost math matches the provider's, multipliers 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

Metered, settled, one invoice

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

See pricing

Local models, same integration

On-device models route with the same key and metering as any cloud provider. No integration changes.

See supported models

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.

Is the OpenAI wire format really 100% compatible?

Yes — chat completions, tool calling, streaming, multimodal content (text + images). Provider-specific divergences (Anthropic's /v1/messages, Gemini-native) are translated server-side. Your code never sees them.

Can I use my own provider keys?

Yes. For each customer, Switchboard supports either Valni-minted provider keys (we handle billing) or your own keys (you pay providers directly). Per-provider rollout gate; no estimated-cost fallbacks.

Which models can I route to?

Every model in Linecard is routable through Switchboard. The registry tracks pricing, capabilities, and provenance 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 provenance for every model

Linecard is the model registry behind Switchboard — track what each model can do, what it costs per token, and where it actually ran.

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.