Crackle is a studio and an API for voice agents that hold a real conversation. Write the brief, pick a voice, talk to it in your browser, then start calls from your app with one request.
Free to start, with sign-up credit for your first test calls.
One agent, 40+ languages, each written in its own script before it is spoken.
- हिन्दी
- English
- தமிழ்
- Español
- తెలుగు
- Français
- বাংলা
- 日本語
- मराठी
- Deutsch
- ગુજરાતી
- العربية
- ಕನ್ನಡ
- Português
- മലയാളം
- 한국어
- ਪੰਜਾਬੀ
- Italiano
- اردو
- 中文
- Türkçe
- Русский
- Tiếng Việt
- ไทย
- Bahasa Indonesia
- Nederlands
- עברית
- Polski
- Ελληνικά
- Svenska
- Українська
- Tagalog
The feel
The small things that make a call feel human.
Timing, interruptions, tone. The parts of a conversation nobody notices until they go wrong.
Cut in any time
Start talking and the agent stops mid-word and listens, the way a person would. It picks the thread back up when you are done.
Not thrown by a “हाँ”
A quick “okay” or “mm-hm” while it is talking is a listener nodding along, not an interruption. It keeps going.
Laughs, sighs, slows down
Set the pace and the tone per agent. On voices that can perform them, a written laugh or sigh is acted out, never read aloud.
Follows the caller’s language
When a caller moves between Hindi and English, the agent moves with them and stays there for the rest of the call.
Knows when it’s over
Once the caller is done, it says one short goodbye and hangs up, instead of leaving them on an open line.
How it works
From a blank page to a live call in four moves.
Brief it like a new hire
An agent’s instructions are a page of plain writing, not a flowchart. Say who it is, what it is for and what it must never do.
- Variables fill in what you know about each caller
- Tools are your own HTTP endpoints, used mid-conversation
- A greeting it speaks first, written or improvised
Hi customer_name, this is Tara at Sunrise Dental. How can I help?
InstructionsYou answer calls for a dental clinic and look after its bookings. Use find_booking to look up the caller’s appointment and reschedule to move it.
Give it a voice
Pick the speech engine, the voice and the language, then the model that does the thinking. Sliders set the pace and the volume.
- Search the voice library for the right voice
- One price per minute, whichever voice and model you pick
- Press Test agent and talk to it in your browser
Ship it with one request
Every agent has its own API key. One POST starts a call and returns what a LiveKit client needs to join it, from a browser or a phone.
- Per-call variables and your own metadata
- Signed webhooks, retried if your server is down
- Live captions for your own call screen
curl -X POST "$CRACKLE_API_URL/v1/calls" \
-H "Authorization: Bearer $CRACKLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"participant": { "identity": "customer_123" },
"variables": { "customer_name": "Divya" }
}'{ "callId": "…", "livekitUrl": "wss://…", "token": "eyJ…" }- call.started
- The call exists and an agent is on its way
- call.user_joined
- Your caller is on the line
- transcript.user
- Each thing the caller finished saying
- transcript.assistant
- Each complete reply
- call.ended
- Why it ended, how long it ran, the full transcript
Read every call back
Each call is kept with its transcript, how long it ran and what it cost, next to the numbers that say how it went.
- Who cut in, and how often
- How long each reply took to start
- Why the call ended
- Caller turns
- 2
- Agent replies
- 3
- Interruptions
- 1
- How it ended
- The agent ended the call
CallerI need to move my appointment on Friday.
TaraGot it, Friday at four thirty with Doctor Rao. I have Monday at ten, or Tues—
CallerMonday works.
Pricing
Free to build. Priced by the minute.
Build and test without a plan. When you go live, a plan adds call credit every month and room for more calls at once.
Loading plans…
Put a voice on the line.
Build your first agent and talk to it today. Sign-up credit is there for your first test calls.