Conversations without the wait
Measured from end of turn to first agent audio on the fast profile.
Real-time conversational AI with natural voices, custom agents, memory, and tool calling. One simple API. No complex audio infrastructure. Pay per turn, not per minute.
A short call with a sample agent. Uses your microphone; nothing is recorded or stored.
Measured from end of turn to first agent audio on the fast profile.
You are billed per agent turn, so listening time is almost free. Each turn includes 6,000 prompt tokens, 400 output tokens, 400 speech characters and 45 s of connected time.
Set the voice, model, tools, memory and personality from the dashboard, or do it all through the API. Changes are versioned, so you can test safely.
Illustrative monthly estimate at 3.5 turns per minute, using the Ciabatta per-turn price for the selected tier (- per turn, - per minute) against an illustrative competitor price of $0.10 per minute. Actual costs vary with turns, allowances, model choices and surcharges.
| Model tier | Per turn | ~Per minute |
|---|---|---|
| S (fastest, default) | $0.0030 | ~$0.011 |
| M | $0.0045 | ~$0.016 |
| L | $0.0065 | ~$0.023 |
Small surcharges apply only beyond the per-turn allowances, and every turn reports its usage. Prepaid credits, no minimums.
Competitor costs use the typical all-in per-minute ranges below (light bar = high end of the range).
| Platform | Typical all-in price | Billing |
|---|---|---|
| Ciabatta | $0.011-0.037/min | Per turn; idle listening $0.13/h |
| Vapi | $0.10-0.30/min | Per minute + providers |
| Retell AI | $0.10-0.20/min | Per minute |
| ElevenLabs Agents | ~$0.08-0.10/min | Per minute, plan-bound |
| Bland | ~$0.09/min | Per minute |
| OpenAI Realtime | ~$0.10-0.30/min | Per audio token |
Competitor prices are approximate public list prices as of October 2026 and vary by plan and provider choice.
Create a session on your server, hand the WebSocket URL and token to your web or mobile app, and you have a talking agent.
// 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
Server-side, fed with the exact audio the caller hears.
Talk over the agent and it stops immediately.
Webhook, client and built-in tools.
Per-customer conversations and summaries, with your retention settings.
Dropped connections resume where they left off, with no lost or repeated audio.
Nearly 50 stock voices, plus cloning from a short recording.