Voice agent API for web and mobile apps
Adding a voice agent to an app usually means buying a phone number you do not need, or joining speech-to-text, a model and a voice yourself while keeping the API keys off the device. For product teams who want a voice agent inside their own app rather than on a phone line: the same agents, engines, knowledge bases and appointment booking that answer phone calls, reached from a browser tab or a mobile app over wss://api.voice.wixzel.com/v1/realtime. Nothing to connect, no number to buy. Your server mints a single-use session so your API key never reaches the client, and the session spends the same prepaid balance per second as a call on the same engine.
Last updated

How do you build a voice agent for a web or mobile app with Wixzel Voice?
- 01POST /v1/agents
Create the agent: prompt, opening line, knowledge base and a voice engine. It is the same agent a phone call would reach.
- 02POST /v1/realtime/sessions
From your server, with your API key: name the agent, optionally the allowed browser origins and your own metadata, and get back a client_secret that works once, for one minute, for that agent.
- 03wss://api.voice.wixzel.com/v1/realtime
Your client opens the socket with the secret and streams audio. In a browser, RealtimeSession from wixzel-voice/realtime handles the microphone, playback and barge-in; in Flutter, RealtimeConnection from the wixzel_voice package speaks the protocol and your app supplies the microphone and speaker.
- 04GET /v1/calls/{id}
Every session is a call record with channel web: transcript, duration, cost and your metadata, and the same callCompleted webhook when it ends.
- 05wixzel-voice/mascot, wixzel_voice_flutter
Optional: show the agent's mascot, its animated face, while it talks. In a web page, mountMascot from wixzel-voice/mascot draws it and face.connect(session) runs the call with the mouth in sync. In Flutter, AgentMascotView from the wixzel_voice_flutter package draws it and MascotRealtimeLink keeps it in step with a RealtimeConnection.
Which voice engine fits a voice agent in a web or mobile app?
Use the gemini-live engine on Wixzel Voice, at $0.0491 per connected minute. One realtime model handles listening, thinking and speaking, so the round trip is what Gemini itself delivers and it is the cheapest engine per minute. The sarvam pipeline runs over the socket too, for Indian languages, and so does classic when you need a specific ElevenLabs voice.
What does a voice agent in a web or mobile app cost on Wixzel Voice?
Wixzel Voice engine time for 4-minute sessions on the gemini-live engine, at typical speech rates, billed per second of actual usage. There is no telephony cost, because there is no phone line, so shorter sessions cost proportionally less.
| Sessions per month | Connected minutes | Engine cost per month |
|---|---|---|
| 500 | 2,000 | $98.20 |
| 2,500 | 10,000 | $491 |
| 10,000 | 40,000 | $1,964 |
Prepaid: add credit from $5 and the sessions spend it. Estimate your own mix.
Which guides show how to build a voice agent for a web or mobile app on Wixzel Voice?
Let users talk to your voice agent inside a Flutter app: your server mints a session, the `wixzel_voice` Dart SDK streams audio over a WebSocket, and there is no SIP trunk or number.
Make an agent from your website, turn on its mascot's website widget and paste one script tag. Visitors call it from the browser, within caps and caller rules you set.
Draw a voice agent's animated mascot in a Flutter app with the `wixzel_voice_flutter` package, and make it listen, think and talk in time with a realtime call.
Change the agent's look, share it as a link or a website widget, set who can call and the daily caps.
Mint a session on your server and stream audio over a WebSocket, with no trunk and no number.
Frequently asked questions
Can I put a voice agent built on Wixzel Voice in my website or mobile app?
Does my browser or app need my API key?
Which SDKs support the realtime API?
What audio quality do web and app sessions have?
How is a web or app session billed?
How long can a session last?
Does it work in Flutter?
Can my app show the agent's face while it talks?
Is there a version that needs no code at all?
What else do agencies and developers build on Wixzel Voice?
Build an agent that answers the phone, checks availability and books an appointment, over your own SIP trunk, with the booking written back through the API.
Upload leads, start a campaign, and have an agent call each one over your own SIP trunk and ask your qualifying questions. Every call is a record with its status and transcript, linked to the lead.
Answer a support number with an agent that reads from a knowledge base you upload, handles the common questions, and leaves a transcript of every call.
Run phone agents in Indian languages on models built for them, with the sarvam engine covering speech-to-text, the language model and text-to-speech end to end.
Put a talking AI assistant on your website with one script tag: an agent made from your site, with an animated mascot visitors call from the browser, caller details, who-can-call settings and daily caps.
Connect Claude Code, Codex, Cursor or any MCP client to your account, and let an AI agent connect a carrier, build a voice agent, place calls, run campaigns and read transcripts, with every tool that spends money asking first.
Run AI phone calls for a few cents a minute: per-second billing from prepaid credit, no subscription or minimum, your own SIP trunk with no telephony markup, and every charge itemised.
Give a voice agent a face: an animated avatar that lip-syncs to the agent, for a website, a share link, a web app or a Flutter app, with no fee for the avatar.
Build a phone agent for each client on their own account and carrier, in their language, and charge a retainer on a cost billed per second.
Operator, prices, limits, refunds and data location, on one page.
Build your first voice agent

