Voice agent API

Fast, natural voice agents for a fraction of the price.

Stream audio in, get a natural voice back in about a second. Echo cancellation, barge-in, tools and memory run on our side, billed per turn, so listening time is almost free.

Create an account Talk to a demo Read the docs

~1 s replies

Measured: about 0.9 s from end of turn to first agent audio (p50) on the fast profile, 1.2 s p95.

From $0.011/min

Pay per agent turn, not per minute. Idle listening costs $0.13 per hour.

Barge-in that works

Server-side echo cancellation fed with the exact audio the caller hears. Talk over the agent and it stops.

Natural voices

Nearly 50 stock voices, plus cloning from a short recording.

Tools and memory

Webhook, client and built-in tools; per-customer conversations and summaries with your retention settings.

Built for bad networks

Dropped connections resume where they left off, with no lost or repeated audio.

Live demo

A short call with a sample agent. Uses your microphone; nothing is recorded or stored.

Ready

Pricing

Model tierPer turn~Per minute
S (fastest, default)$0.0030~$0.011
M$0.0045~$0.016
L$0.0065~$0.023

Each turn includes 6,000 prompt tokens, 400 output tokens, 400 speech characters and 45 s of connected time. Small surcharges apply only beyond that, and every turn reports its usage. Prepaid credits, no minimums.

Calculator

Per turn-
Per minute-
Ciabatta per month-
At $0.10/min-
You save-

Estimate at 3.5 turns per minute. Competitor figure is the low end of typical all-in per-minute pricing.

How it compares

PlatformTypical all-in priceBilling
Ciabatta$0.011-0.037/minPer turn; idle listening $0.13/h
Vapi$0.10-0.30/minPer minute + providers
Retell AI$0.10-0.20/minPer minute
ElevenLabs Agents~$0.08-0.10/minPer minute, plan-bound
Bland~$0.09/minPer minute
OpenAI Realtime~$0.10-0.30/minPer audio token

Competitor prices are approximate public list prices as of October 2026 and vary by plan and provider choice.

Ship in minutes

npm install @getciabatta/sdk

import { Ciabatta } from "@getciabatta/sdk";
const ciabatta = new Ciabatta({ apiKey: process.env.CIABATTA_API_KEY });
const session = await ciabatta.sessions.create("support", { customer_id: "cust_123" });
// hand session.ws_url + session.token to your web or mobile app

Quickstart - SDKs and Twilio - Deployment profiles