Tools and webhooks
Let the agent look things up or save records by calling your HTTPS endpoints, with schemas you define.
Voice Agents Preview
One session handles listening, turn-taking, reasoning and speech. Add your instructions and tools, connect a phone number or a browser, and VoxVane runs the conversation.
Press Talk to see the orb follow your voice. Your microphone level only drives the animation; nothing is recorded or sent.
How a turn works
Example use case · AI receptionist
A fictional plumbing company uses a voice agent to answer calls at night. The agent discloses that it's an AI, gathers the details, and saves a structured message. The orb above follows the agent's voice.
Built in
Let the agent look things up or save records by calling your HTTPS endpoints, with schemas you define.
Transfer to a phone number or your support queue when the caller asks, and fall back to a message.
Every agent opens with your disclosure line and never claims to be human.
Choose snappy, balanced or patient turn-taking per agent, or tune the timers yourself.
Answer real calls through VoxVane Connect, or stream audio from your app over WebSocket.
Every session returns a transcript, structured output and an itemised cost record.
Create an agent
Create the agent once. Start a session whenever someone calls or opens your app, then stream audio over the returned WebSocket.
# 1. Create an agent
curl https://api.voxvane.com/v1/agents \
-H "Authorization: Bearer $VOXVANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Front desk",
"voice": "aria",
"instructions": "Answer questions about opening hours and take a message.",
"disclosure": "You are speaking with an AI assistant.",
"turn": {"profile": "balanced"}
}'
# 2. Start a live session (returns a WebSocket URL)
curl -X POST https://api.voxvane.com/v1/agents/agt_123/sessions \
-H "Authorization: Bearer $VOXVANE_API_KEY"import os
import requests
API = "https://api.voxvane.com/v1"
auth = {"Authorization": f"Bearer {os.environ['VOXVANE_API_KEY']}"}
agent = requests.post(f"{API}/agents", headers=auth, timeout=30, json={
"name": "Front desk",
"voice": "aria",
"instructions": "Answer questions about opening hours and take a message.",
"disclosure": "You are speaking with an AI assistant.",
"turn": {"profile": "balanced"},
}).json()
session = requests.post(f"{API}/agents/{agent['id']}/sessions", headers=auth, timeout=30).json()
print("Stream audio to", session["websocket_url"])const API = "https://api.voxvane.com/v1";
const headers = {
Authorization: `Bearer ${process.env.VOXVANE_API_KEY}`,
"Content-Type": "application/json",
};
const agent = await (await fetch(`${API}/agents`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Front desk",
voice: "aria",
instructions: "Answer questions about opening hours and take a message.",
disclosure: "You are speaking with an AI assistant.",
turn: { profile: "balanced" },
}),
})).json();
const session = await (await fetch(`${API}/agents/${agent.id}/sessions`, { method: "POST", headers })).json();
console.log("Stream audio to", session.websocket_url);More use cases
Answer a business line, take messages, transfer on request. The demo above, ready to deploy.
Learn moreAnswer order and account questions with your own lookup tools.
Collect booking requests and hand them to your scheduling system.
Run Bench + Sim against your agent before it takes a real call.
Learn moreThe API is in private preview. Read the quickstart, then ask for a key.