The router for voice AI models
Speko is a hosted routing platform for speech-to-text, LLM, and text-to-speech traffic in voice AI applications.
AI Panel Score
6 AI reviews
Reviewed
Speko's hosted Router sits at router.speko.dev and exposes HTTP endpoints for model discovery (GET /v1/models), speech-to-text (POST /v1/stt/transcriptions), text-to-speech (POST /v1/tts/speech), and LLM calls (POST /v1/llm/responses), plus WebSocket streaming routes for STT and TTS and native speech-to-speech routes at /v1/realtime, /v1/live, and /v1/bidi. Requests specify routing as an explicit tagged object: either {"mode":"auto","objective":"balanced"} to let Router pick a provider, or {"mode":"explicit","provider":"...","model":"..."} to pin one directly, with objectives of balanced, quality, latency, or cost. Successful responses report the concrete route taken through headers such as Speko-Provider, Speko-Model, and Speko-Region, and every error uses one consistent JSON envelope with a closed set of error codes.
The site states that Speko measures 61 speech and language models across 10 languages and routes each session to the model it finds performs best for that language, rather than relying on English-only benchmarks. Separately, the open-source Gateway (published on GitHub) provides one local streaming protocol across voice providers, keeps bring-your-own-key credentials inside the Gateway process, and ships native integrations for LiveKit and Pipecat, letting provider-direct voice traffic stay local while other work is routed through Speko's managed infrastructure. The API is versioned under a stable /v1 path, with breaking changes requiring a new major version and deprecations following RFC 9745 conventions with at least 90 days of notice. Speko also documents a separate hosted Agents API for creating and operating agents, sessions, phone numbers, and calls, distinct from both the Router and the Gateway.
Lets callers set routing as an explicit tagged object, either 'auto' with an objective (balanced, quality, latency, or cost) to let Router choose the best model, or 'explicit' to pin a specific provider and model.
Identifies the concrete route taken for each request through response headers including Speko-Provider, Speko-Model, Speko-Region, Speko-Request-ID, and Speko-Attempt-ID.
Measures 61 speech and language models across 10 languages and publishes results at benchmarks.speko.ai to inform routing decisions.
A separate hosted API for creating and operating agents, sessions, phone numbers, and calls.
A managed provider-neutral data plane that sends STT, LLM, and TTS requests to whichever provider it determines wins for a given language or objective, using typed requests, typed responses, and normalized errors.
Requires a caller-generated Idempotency-Key on every POST and WebSocket upgrade so retries can be safely reused only for byte-identical requests.
Returns every non-2xx response in one structured JSON error envelope with a closed vocabulary of error codes such as authentication_failed, rate_limited, and provider_unavailable.
Advertises a default edge rate-limit policy via the RateLimit-Policy header and returns Retry-After on 429 responses to guide backoff.
Provides WebSocket operations for streaming STT and TTS (/v1/stt/stream, /v1/tts/stream) and native speech-to-speech routes (/v1/realtime, /v1/live, /v1/bidi).
Ships native integrations that let Speko Gateway run alongside a LiveKit AgentSession or plug into a Pipecat cascade for STT and TTS services.
Provides a public docs MCP for unauthenticated documentation queries and a separate operational MCP requiring OAuth or bearer key for authenticated account data or actions.
Command-line tools published on npm for disclosed agent phone calls and local access to the hosted Speko MCP server.
A publicly available runtime for LiveKit and Pipecat workloads that provides one local streaming protocol across voice providers with provider-direct streaming.
Keeps bring-your-own-key credentials local to the Gateway process rather than passing through a Speko-managed data plane.
Maintains a stable /v1 major version path and signals breaking changes with RFC 9745 Deprecation headers, a dated Sunset header, migration instructions, and at least 90 days of notice.
Pay-as-you-go pricing for workloads run entirely on Speko's own infrastructure, billed per minute across speech-to-text, LLM and text-to-speech.
Pay-as-you-go pricing for requests routed through Speko to a third-party provider, billed as a markup on that provider's published rate.
A voice model router with real routing logic, priced by the minute, not the seat.
“Speko routes STT, LLM, and TTS calls to whichever provider wins per language, with a flat $0.09/min bundle or a 5% markup option. The mechanics are unusually well specified for a category this new.”
61 models benchmarked across 10 languages, published at benchmarks.speko.ai. That's a specific, checkable claim, not a marketing adjective. Most voice infra vendors bury routing logic; Speko exposes it via response headers like Speko-Provider and Speko-Model, so you can audit what actually happened.
Two pricing paths: $0.09/min all-in on their infrastructure, or provider rate plus 5% through the Router. Both come with $10 signup credit and no tiers to negotiate. That's clean, but it's also usage-based with no published enterprise floor, so cost at scale is a spreadsheet exercise, not a lookup.
The open Gateway with BYOK credential custody is the smart hedge here. It lets LiveKit and Pipecat shops keep sensitive keys local while still using Speko's routing brain elsewhere. Lock-in risk is lower than a typical managed router because of that split.
Benchmarking 61 models across 10 languages instead of English-only scores is a differentiated, defensible claim, not a copy-paste feature.
BYOK Gateway reduces custody risk, and the normalized error envelope with closed error codes shows operational maturity.
Auto-routing with an objective flag (balanced, quality, latency, cost) means you skip building your own provider-selection logic on day one.
Useful if you're building multilingual voice agents now; less relevant if you're locked into one provider already.
Versioned /v1 API, RFC 9745 deprecation policy with 90-day notice, and a changelog suggest active, disciplined shipping.
Teams building multilingual voice agents who want routing logic they can inspect rather than a black box.
Skip it if you need fixed monthly pricing rather than per-minute usage billing.
A routing layer with real design taste, but the craft ceiling is infrastructure, not voice.
“Speko treats voice-model selection as a design problem — typed requests, closed error vocabularies, auditable routing — rather than a plumbing afterthought. That's rare discipline for infrastructure, but it's a system for engineers, not for anyone shaping how a voice actually sounds.”
Sixty-one models across 10 languages, published at benchmarks.speko.ai. That's a real design decision: most voice tooling still treats English as the default and everything else as a rounding error. Building routing around per-language performance rather than one benchmark leaderboard shows someone on this team understands that voice craft isn't uniform across markets.
But this is systems design, not creative tooling. There's no mention of prosody control, voice persona management, or brand-voice consistency across providers — the object model is provider/model/region, not tone/character/emotion. If your job is shaping how an assistant sounds and feels, Speko sits one layer below where you work; it decides which engine answers the phone, not what the voice says or how it says it.
The RFC 9745 deprecation policy and 90-day sunset notice tell me this team thinks in years, not sprints. That's the right posture for something your agents depend on daily. The tradeoff: you're adopting a routing dependency to solve a problem — provider fragmentation — that only exists because the voice AI market itself is still consolidating.
Positions itself as the neutral routing layer beneath voice AI stacks, a lane with room to run since most competitors ship single-provider tools.
Built for the engineers wiring voice pipelines together, not for anyone directing tone, persona, or brand voice across a product.
Native LiveKit and Pipecat integrations plus a CLI on npm mean it slots into existing agent stacks rather than demanding a rebuild.
A stable /v1 path with RFC 9745 deprecations and 90-day notice signals a team planning for multi-year dependency, not quarterly churn.
Per-language benchmarking across 61 models and a closed error taxonomy show genuine architectural discipline, not a thin wrapper.
Engineering teams running multi-provider voice agents who want one typed interface and auditable routing decisions.
You're shaping brand voice, persona, or tone rather than choosing which backend model answers a call.
Two clean prices, no seats, no tiers. Rare in this category.
“$0.09/min all-in on Speko's own infrastructure, or provider rate plus 5% on the Router. Both numbers sit on the pricing page, no sales call required.”
Two SKUs. Speko Infrastructure at $0.09/min flat, covering STT, LLM, TTS combined. Routed Provider Pricing at provider rate plus 5%. Both visible, both usage-based, no seats.
Run the math at scale. A 50-agent voice desk doing 20 min/day/agent, 22 workdays: 22,000 minutes/month. At $0.09 flat that's $1,980/month, ~$71K over 3 years before growth. Provider-routed cost floats with whatever the underlying vendor charges — harder to lock into a budget line. $10 signup credit gets you started, not far.
No enterprise tier posted, so high-volume discounting needs a direct conversation — fine for procurement, less fine for finance modeling year 3 without a call. Usage-based billing means no flat invoice to forecast against; good for pay-as-you-grow, bad for anyone who needs a fixed number for next year's budget. No contract terms, renewal windows, or termination language visible on the pricing page itself.
Self-serve signup with $10 credit lowers onboarding friction, but no enterprise invoicing terms are visible for larger buyers.
Usage-based with no visible term length or auto-renewal clause on the pricing page — I couldn't find contract terms posted.
Both rates ($0.09/min flat, provider rate + 5%) are posted plainly, no gated tiers.
Per-request routing headers let you tie cost to a specific provider and model, useful for attributing spend after the fact.
Flat rate models cleanly at scale but the routed-provider path floats with third-party pricing, complicating a 3-year projection.
Finance teams that want a single flat per-minute number to model against without a sales call.
You need a fixed annual invoice rather than usage-based billing that moves with provider rates.
The routing decisions show up in your headers, which is exactly where a mix engineer wants them.
“Speko puts real telemetry into the signal path — Speko-Provider, Speko-Model, Speko-Region on every response. For anyone who's had to guess why a TTS take sounds off after a silent provider swap, that's a genuine relief.”
I mix voice for conversational agents, and the failure mode I dread is a provider swap mid-session that changes prosody without telling anyone. Speko's response headers name the exact route taken per request, which means when a take sounds wrong I can actually trace it instead of guessing. That's a real win for post-mortem work.
The idempotency requirement on every POST and WebSocket upgrade is the kind of detail that only shows up when you've been burned by a duplicate TTS render eating budget on a retry. Good instinct, small tax on setup.
What's missing for my chair: nothing in the routing logic touches performance direction. The benchmarks at 61 models across 10 languages tell me which model wins on accuracy, not which one sounds right for a brand voice or a character read. Objectives are balanced, quality, latency, cost — none of them are 'sounds like this reference clip.' Fine for IVR and support bots. For anything with a performance to protect, I'm still doing that judgment call by ear, outside the router entirely.
Route metadata headers make debugging a bad take traceable instead of guesswork, a real day-3 win.
A closed error-code vocabulary and RFC 9745 deprecation notices with 90 days' warning read like docs written by people shipping production traffic, not marketing copy.
Mandatory Idempotency-Key on every POST and WebSocket upgrade is one more header to wire in before anything streams.
Explicit provider/model pinning gives control, but no objective or parameter targets tone, pacing, or performance quality — that layer isn't here.
Fits pipeline plumbing cleanly via LiveKit/Pipecat, but the Agents API is a separate surface to learn on top of the Router.
Producers building conversational or IVR pipelines who need traceable, provider-agnostic routing across languages.
Avoid if your work depends on protecting a specific vocal performance or brand voice rather than routing for raw model accuracy.
Plumbing you install once and hopefully never think about again
“Speko is infrastructure, not an app you live in day to day. That's mostly fine, since the whole pitch is that you shouldn't have to notice it.”
There's no dashboard to fall in love with here, and that's kind of the point. You're integrating an HTTP and WebSocket layer, reading response headers like Speko-Provider and Speko-Model, and trusting a routing decision most days without looking at it twice. The 90-day deprecation notice and RFC 9745-style headers tell me someone's thought about what happens when things change under you, which matters more than any onboarding screen ever will for a tool like this.
What worries me a little is the Idempotency-Key requirement on every POST — smart engineering, but it means your first hour is reading docs, not shipping audio. That's homework before the fun part.
The split between the hosted Router, the open Gateway, and a separate Agents API means three mental models to hold at once, and I couldn't find much on how errors actually surface in practice beyond the documented envelope. For a plumbing product, that's the real test: not the demo, but whether provider_unavailable shows up gracefully three months in.
Normalized error envelope and route metadata headers show real care, but there's no visible UI layer to sweat over since this is API-first.
Explicit vs auto routing modes and a stable /v1 path help long-term, but three separate surfaces (Router, Gateway, Agents API) add real ramp-up.
Nothing in what I found suggests a mobile-specific surface, which is standard for infrastructure sold as HTTP and WebSocket endpoints.
Idempotency-Key and typed request/response requirements mean setup before you send your first real audio call.
RateLimit-Policy headers, Retry-After on 429s, and a closed error code vocabulary read as a team that's handled production traffic before.
Teams building voice agents on LiveKit or Pipecat who want provider routing handled without babysitting three separate vendor APIs.
Skip it if you want a visual dashboard experience rather than an HTTP layer you configure once and monitor through headers.
A router asking you to trust its own scoreboard for who wins.
“Speko grades the 61 models it routes between, on 10 languages, and then sells you the routing decision. Reasonable pitch. The benchmark being self-published is the part I'd poke at before committing spend.”
Middleman businesses live or die on one question: do you trust the middleman's judgment more than your own? Speko's whole pitch is that English-only benchmarks mislead you, so they built one across 10 languages and 61 models. Fine. But the benchmark lives at benchmarks.speko.ai — their own domain, their own methodology, no third-party audit mentioned anywhere I found.
I've seen this shape before: infrastructure vendor publishes the metric that just happens to justify their product. Doesn't mean it's wrong. Means I'd want an independent eval before trusting auto-mode with quality objectives on production traffic.
Pricing is at least legible: $0.09/min all-in, or provider-rate plus 5% if routed. No enterprise tier visible, which is normal for a usage-based tool this size. The Gateway's BYOK design is the honest exit hatch here — if the Router's judgment goes sideways, you're not fully locked to their infrastructure.
Per-language routing across 61 models is a specific, non-generic angle versus a single-provider integration, though I have no named rival in front of me to weigh it against.
The open Gateway with local BYOK credentials gives a real off-ramp for LiveKit and Pipecat workloads if the hosted Router stops being worth the 5% surcharge.
RFC 9745 deprecation conventions with 90-day notice and a stable /v1 path signal a team thinking past launch, docs and changelog visible.
The meta description's claim about English-only benchmarks is a real, checkable claim, not vague superlative — but it's also the exact claim their own benchmark exists to support.
Typed requests, error envelopes, and versioning are concrete and verifiable; the routing-quality claim rests on a benchmark with no visible third-party validation.
Teams building multilingual voice agents who want per-call routing transparency and are willing to verify Speko's own benchmark before trusting auto mode.
Skip it if you need an independently audited routing benchmark before putting production call quality in someone else's hands.
Common questions answered by our AI research team
Two options exist: on the Router plan you pay the provider's published rate plus 5%, or on Speko infrastructure you pay a flat $0.09 per minute across speech-to-text, LLM, and TTS combined.
Router charges the provider's published rate plus 5% on top, with no bundling. Speko infrastructure instead bundles all three voice-model legs (STT, LLM, TTS) into a single flat $0.09/minute rate, with no separate provider billing.
Yes, $10 in signup credit applies to every account, and it's applied before paid usage begins.
Yes. Speko publishes an open customer-side Gateway with native integrations for LiveKit and Pipecat, enabling provider-direct streaming for voice agent workloads in Python.
Yes. The Gateway supports locally-held BYOK (bring-your-own-key) credentials for provider-direct streaming, as an alternative to routing through a Speko-managed data plane.
Speko provides an API that benchmarks and routes between multiple speech-to-text models across languages.