HIPAA compliant
Attested HIPAA compliance, so regulated call traffic runs on the same routed stack.
One API for the whole voice stack, with a measured route for your workload. No keys, no setup.
OpenRouter-style coverage of the voice stack: 17 STT, 10 LLM, 23 TTS and 6 realtime speech-to-speech providers, with voice cloning through 4 of them.
| Layer | Providers | Models |
|---|---|---|
| Speech-to-text | 17 | 37 |
| Language models | 10 | 41 |
| Text-to-speech | 23 | 64 |
| Realtime speech-to-speech | 6 | 17 |
| One key | 56 | 159 |
100+ curated voices, plus the full ElevenLabs voice library per account.
7 public boards at benchmarks.speko.ai. The scores that rank the boards are the scores that pick your providers.
Published numbers are measured, never marketed. Boards re-run continually; every number carries its measurement date.| Board | What it measures | Link |
|---|---|---|
| STT | WER, streaming latency, cost per minute | |
| STT code-switching | WER on code-switched speech | |
| TTS | Blind human A/B Elo, time-to-first-audio | |
| LLM | First-token latency, completion, dead-air, fabrication | |
| Speech-to-speech | 9 realtime models, head to head | |
| Cost per solve | Real consumption times billed rates | |
| Turn-taking | 5 systems, 200 real human clips |
Selection, fallback order and preview, in the order they happen.
Your request arrives with a language and an intent. That is all the router needs.
Each stage is benchmark-scored for that language and intent; the top-scoring provider takes the request.
The winner comes back with ranked runners-up. If the winner errors, the request moves down that same list.
Responses identify the selected provider and benchmark score run. GET /v1/routing/preview shows the route before you commit.
Read the routing docsTell Speko what your agent should do, in plain English.
We benchmark STT, LLM and TTS providers and assemble a measured route for your use case and language.
Talk to it in the browser or get a real phone call. Tune voice, latency and accuracy in real time.
Try the live demoDeploy to a phone number, web widget or API. Your keys, your data, your agent.
Build your agent95.8–100% recall vs an exact search, at 0.76 ms across 100K documents.
Speko measured in-process at 100K docs. ChromaDB, Pinecone and Qdrant are their published figures for network-hosted deployments, which include network transport, so it isn't like-for-like.
// illustrative
import { Speko } from "@spekoai/sdk";
const speko = new Speko({ apiKey: process.env.SPEKO_KEY });
const agent = await speko.agents.create({
intent: "Book appointments for a dental clinic",
channels: ["phone", "web"],
});
console.log(agent.phoneNumber); // +1 … A voice-AI gateway. One API gives you speech-to-text, an LLM and text-to-speech, provider-agnostic. Speko uses benchmark evidence and your policy to plan the route.
No. One Speko key covers it. We manage provider credentials and routing, and bring-your-own keys are optional if you prefer.
Benchmarks on accuracy, latency and cost are filtered by language, region and required capabilities. Each response identifies the selected provider and benchmark score run.
It depends on the stack you run — STT, LLM and TTS each add latency. Rather than quote one number, we publish measured per-provider latency in the open benchmark, and you can optimize any agent for latency, accuracy or cost.
You do. Your audio and transcripts aren't used to train models, and you can export your configuration at any time.
Under five minutes from a plain-English description. Talk to your agent in the browser before you ship it to a phone number or the web.
Attested HIPAA compliance, so regulated call traffic runs on the same routed stack.
The data behind routing is public and dated - machine-readable at benchmarks.speko.ai/data.json, with per-model permalinks.
Failover is the default configuration, not an add-on you enable.
Describe it in a sentence. Hear it in a minute. Ship it today.
One API for the whole voice stack — STT, LLM, and TTS — with benchmark-scored routing per call and bounded failover.
MCP-first. Speko runs a hosted, OAuth-protected MCP server — no local install required. Point any MCP client at it and your agent gets authenticated, operational access to the Speko voice gateway.
# Guided setup for any supported client
npx @spekoai/mcp@latest init
# Hosted endpoint
https://mcp.speko.ai/mcp # Claude Code — add with OAuth, then run /mcp to sign in
claude mcp add --transport http speko https://mcp.speko.ai/mcp
# Or with an API key instead of OAuth
claude mcp add --transport http speko https://mcp.speko.ai/mcp \
--header "Authorization: Bearer sk_live_xxx" // Cursor — Settings > MCP > Add new global MCP server
{
"mcpServers": {
"speko": {
"url": "https://mcp.speko.ai/mcp"
}
}
} Authenticate with OAuth when your client supports it, or send a Speko API key as `Authorization: Bearer sk_live_xxx`. Once connected, the server exposes operational tools for: organizations (usage + credit balance), agents (create / update / deploy / roll back), sessions, calls (transcripts + recordings), phone numbers, knowledge bases, evals, deployment, a docs.search self-serve tool, and migration helpers to convert external voice-agent configs.
Full programmatic control of the gateway from your language of choice.
Machine-readable indexes first, then concepts and the live benchmarks that drive routing.
Speko is an OpenRouter-style gateway for voice AI: one API for supported voice providers. It benchmarks STT, LLM, and TTS providers on accuracy, latency, and cost, then applies your routing policy to eligible models, with bounded fallback where recovery is safe. No per-provider keys, no glue code. Per-model latency is published on the boards rather than averaged into one number. Describe an agent in plain English and talk to it in the browser before you ship it to a phone number, web widget, or API. Your keys, your data, your agent.
# Speko
> One API for the whole voice stack — STT, LLM, and TTS — with benchmark-scored routing per call and bounded failover.
## Connect your agent
MCP-first. Speko runs a hosted, OAuth-protected MCP server — no local install required. Point any MCP client at it and your agent gets authenticated, operational access to the Speko voice gateway.
- [Hosted MCP endpoint](https://mcp.speko.ai/mcp) — OAuth-protected Streamable HTTP; no local install
- [MCP quickstart](https://docs.speko.dev/quickstart/mcp) — Claude Code, Codex, OpenCode, Cursor, and other tools
- [@spekoai/mcp on npm](https://www.npmjs.com/package/@spekoai/mcp) — init wizard + local stdio bridge for the hosted MCP
```bash
# Guided setup for any supported client
npx @spekoai/mcp@latest init
# Hosted endpoint
https://mcp.speko.ai/mcp
```
```bash
# Claude Code — add with OAuth, then run /mcp to sign in
claude mcp add --transport http speko https://mcp.speko.ai/mcp
# Or with an API key instead of OAuth
claude mcp add --transport http speko https://mcp.speko.ai/mcp \
--header "Authorization: Bearer sk_live_xxx"
```
```json
// Cursor — Settings > MCP > Add new global MCP server
{
"mcpServers": {
"speko": {
"url": "https://mcp.speko.ai/mcp"
}
}
}
```
Authenticate with OAuth when your client supports it, or send a Speko API key as `Authorization: Bearer sk_live_xxx`. Once connected, the server exposes operational tools for: organizations (usage + credit balance), agents (create / update / deploy / roll back), sessions, calls (transcripts + recordings), phone numbers, knowledge bases, evals, deployment, a docs.search self-serve tool, and migration helpers to convert external voice-agent configs.
## SDKs
Full programmatic control of the gateway from your language of choice.
- [@spekoai/sdk on npm](https://www.npmjs.com/package/@spekoai/sdk) — official TypeScript SDK
- [spekoai on PyPI](https://pypi.org/project/spekoai/) — official Python SDK
- [@spekoai/adapter-livekit on npm](https://www.npmjs.com/package/@spekoai/adapter-livekit) — STT, LLM, and TTS components for LiveKit Agents
- [SpekoAI on GitHub](https://github.com/SpekoAI) — source repositories and SDKs
## Read
Machine-readable indexes first, then concepts and the live benchmarks that drive routing.
- [Documentation index for LLMs (llms.txt)](https://docs.speko.dev/llms.txt) — one-line descriptions of every doc page
- [Full documentation corpus (llms-full.txt)](https://docs.speko.dev/llms-full.txt) — all docs concatenated for LLM context
- [Site index (speko.ai/llms.txt)](https://speko.ai/llms.txt) — one-line index of every page on speko.ai
- [API reference](https://docs.speko.dev/api-reference/introduction) — public REST API for the voice gateway
- [How routing works](https://docs.speko.dev/concepts/routing) — intent + benchmark scores → ranked provider candidates
- [Failover](https://docs.speko.dev/concepts/failover) — transparent retry against runner-up providers
- [Provider benchmarks](https://benchmarks.speko.ai) — live STT, TTS, LLM, and speech-to-speech (accuracy, latency, cost)
## What it is
Speko is an OpenRouter-style gateway for voice AI: one API for supported voice providers. It benchmarks STT, LLM, and TTS providers on accuracy, latency, and cost, then applies your routing policy to eligible models, with bounded fallback where recovery is safe. No per-provider keys, no glue code. Per-model latency is published on the boards rather than averaged into one number. Describe an agent in plain English and talk to it in the browser before you ship it to a phone number, web widget, or API. Your keys, your data, your agent.
## Build
- [Build your agent](https://speko.ai/build) — describe it in a sentence, hear it in a minute
- [Platform dashboard](https://platform.speko.dev) — API keys, agents, usage
- [Get your API key](https://platform.speko.dev/api-keys)