Backed by Y Combinator

Ship voice agents
in minutes

One API for the whole voice stack, with a measured route for your workload. No keys, no setup.

Live demo

Don't take our word for it. Talk to one.

in
Try asking

Four layers, one API key.

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.

  • OpenAI
  • Anthropic
  • Google
  • ElevenLabs
  • Deepgram
  • Cartesia
  • AssemblyAI
  • Rime
  • Inworld
  • MiniMax
  • Hume
  • xAI
  • Alibaba
  • Azure
  • Amazon Polly
  • Speechify
  • Soniox

Routing runs on measured numbers.

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
See the live boards

Routing and failover are the same list.

Selection, fallback order and preview, in the order they happen.

  1. 01

    Request

    Your request arrives with a language and an intent. That is all the router needs.

  2. 02

    Benchmark-scored selection

    Each stage is benchmark-scored for that language and intent; the top-scoring provider takes the request.

  3. 03

    Runners-up = failover order

    The winner comes back with ranked runners-up. If the winner errors, the request moves down that same list.

  4. 04

    Selection metadata and preview

    Responses identify the selected provider and benchmark score run. GET /v1/routing/preview shows the route before you commit.

    Read the routing docs
How it works

From a sentence to a shipped agent.

  1. 01

    Describe it

    Tell Speko what your agent should do, in plain English.

  2. 02

    Speko routes it

    We benchmark STT, LLM and TTS providers and assemble a measured route for your use case and language.

  3. 03

    Test it live

    Talk to it in the browser or get a real phone call. Tune voice, latency and accuracy in real time.

    Try the live demo
  4. 04

    Ship & own it

    Deploy to a phone number, web widget or API. Your keys, your data, your agent.

    Build your agent
Retrieval

The fastest retrieval
in voice.

95.8–100% recall vs an exact search, at 0.76 ms across 100K documents.

Retrieval p50 100K docs · lower is better
Speko 0.76ms
ChromaDB 352ms
Pinecone 433ms
Qdrant 598ms

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.

Ship it anywhere

One API. Every surface.

Phone number Inbound and outbound calls over SIP. Bring a number or get one.
Web & mobile widget Drop-in voice widget, or wire the SDK into your app.
API & webhooks Full programmatic control with @spekoai/sdk and event webhooks.
create-agent.ts
// 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 …
Questions

Good questions.

What is Speko?

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.

Do I need my own provider API keys?

No. One Speko key covers it. We manage provider credentials and routing, and bring-your-own keys are optional if you prefer.

How does routing choose a provider?

Benchmarks on accuracy, latency and cost are filtered by language, region and required capabilities. Each response identifies the selected provider and benchmark score run.

What latency can I expect?

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.

Who owns the data and the agent?

You do. Your audio and transcripts aren't used to train models, and you can export your configuration at any time.

How fast can I launch?

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.

The fine print, up front.

HIPAA compliant

Attested HIPAA compliance, so regulated call traffic runs on the same routed stack.

Open benchmarks

The data behind routing is public and dated - machine-readable at benchmarks.speko.ai/data.json, with per-model permalinks.

Failover by default

Failover is the default configuration, not an add-on you enable.

Start now

Your first agent is waiting.

Describe it in a sentence. Hear it in a minute. Ship it today.

YC S26 founders@speko.ai

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.

# 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.

SDKs

Full programmatic control of the gateway from your language of choice.

Read

Machine-readable indexes first, then concepts and the live benchmarks that drive routing.

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