Developers
Quickstart — First Call in 5 Minutes
Get your first AI voice call running in under 5 minutes. This guide uses the TypeScript SDK.
1. Install the SDK
bash
npm install @converse/sdk
2. Get your keys
Go to Settings → API Keys in your dashboard. You'll get two keys:
bash
# Secret key (server-side only — never expose) export CONVERSE_API_KEY=sk_live_your_secret_key # Publishable key (safe for client code) export CONVERSE_PUBLIC_KEY=pk_live_your_public_key
3. Create an agent
typescript
import { ConverseClient } from '@converse/sdk';
const converse = new ConverseClient({
apiKey: process.env.CONVERSE_API_KEY!,
});
const agent = await converse.agents.create({
name: 'My First Agent',
system_prompt: 'You are a friendly support agent for Acme Corp. Help customers with their orders.',
llm_provider: 'groq',
llm_model: 'llama-3.3-70b-versatile',
language: 'en',
greeting: 'Hello! Welcome to Acme Corp. How can I help you today?',
});
console.log('Agent created:', agent.id);4. Make an outbound call
typescript
const call = await converse.calls.create({
agent_id: agent.id,
to: '+919876543210', // Phone number to call
});
console.log('Call initiated:', call.id, call.status);Subscribe to live events through the dedicated realtime client:
typescript
import { ConverseRealtime, TRANSCRIPT, CALL_ENDED } from '@converse/sdk/realtime';
const realtime = new ConverseRealtime({ apiKey: process.env.CONVERSE_API_KEY! });
realtime.on(TRANSCRIPT, event => console.log(event.data));
realtime.on(CALL_ENDED, event => console.log('Call ended', event.data));
await realtime.connect();
realtime.subscribeToCall(call.id);5. Or test in the browser (no phone needed)
typescript
import { useConverseVoice, ConverseOrb } from '@converse/sdk/components';
// In your React component:
const { voiceState, agentState, connect, disconnect } = useConverseVoice({
publicKey: 'pk_live_...', // Publishable key — safe in client code
agentId: agent.id,
});
// voiceState: idle → connecting → active → ended
// agentState: idle → connecting → listening → speaking
// Audio + mic handled automatically inside the SDK.What's next?
- Add tools so your agent can look up orders, create tickets, etc.
- Upload a knowledge base so your agent can answer from your docs.
- Connect a phone number to receive inbound calls.
- Set up webhooks to get notified when calls complete.
Python quickstart
bash
pip install converse-ai
python
from converse import ConverseClient
client = ConverseClient(api_key="sk_live_your_key")
agent = client.agents.create(
name="Support Bot",
system_prompt="You are a helpful support agent.",
llm_provider="groq",
language="hi", # Hindi
greeting="Namaste! Kaise madad kar sakta hoon?",
)
call = client.calls.create(agent_id=agent.id, to="+919876543210")
print(f"Call {call.id} → {call.status}")Using with WhatsApp
The same agent works across all channels — no code changes needed.
typescript
// WhatsApp messages are handled automatically via webhook
// Just connect your WhatsApp Business number in Settings → Channels
// Or send a proactive WhatsApp message:
const call = await converse.calls.create({
agent_id: agent.id,
to: '+919876543210',
channel: 'whatsapp',
});Indian languages
Converse supports all major Indian languages from day one with code-switching:
typescript
const hindiAgent = await converse.agents.create({
name: 'Hindi Support',
system_prompt: 'Aap ek helpful assistant hain. Hindi mein jawab dein, lekin agar user English mein baat kare toh English mein bhi baat kar sakte hain.',
language: 'hi', // Hindi (code-switching with English supported)
voice_id: 'raj', // Indian male voice
llm_provider: 'groq',
tts_provider: 'spectre', // Cartesia Sonic 3.5 (Hindi)
});
// Malayalam, Tamil, Telugu, Bengali, Marathi, Kannada, Gujarati also supported
const mlAgent = await converse.agents.create({
name: 'Malayalam Support',
language: 'ml',
voice_id: 'priya', // Indian female voice
// ...
});