Quickstart
Deploy your first AI voice agent in under 5 minutes. This guide walks you through API key generation, provider configuration, agent creation, making a WebRTC call, and monitoring.
Get your API key
Log into the LYRE dashboard and navigate to Settings → API Keys. Click Generate Key, give it a name, and copy the key. You will not be able to see the full key again.
Store it as an environment variable
export LYRE_API_KEY="lyre_sk_live_abc123..."
All API requests authenticate via a Bearer token in the Authorization header.
Configure providers
LYRE needs three provider types: STT (speech-to-text), LLM (language model), and TTS (text-to-speech). Configure them in the dashboard under Providers or via the API.
curl — add a Groq LLM provider
curl -X POST https://api.lyre.au/v1/providers \
-H "Authorization: Bearer $LYRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "llm",
"provider": "groq",
"api_key": "gsk_...",
"models": ["llama-3.3-70b-versatile"]
}'curl — add Deepgram STT
curl -X POST https://api.lyre.au/v1/providers \
-H "Authorization: Bearer $LYRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "stt",
"provider": "deepgram",
"api_key": "dg_...",
"models": ["nova-2"]
}'curl — add ElevenLabs TTS
curl -X POST https://api.lyre.au/v1/providers \
-H "Authorization: Bearer $LYRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "tts",
"provider": "elevenlabs",
"api_key": "el_...",
"models": ["eleven_flash_v2_5"]
}'Create an agent
An agent defines the voice persona, system prompt, model stack, and compliance settings. Create one via the API or the dashboard.
curl — create agent
curl -X POST https://api.lyre.au/v1/agents \
-H "Authorization: Bearer $LYRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Ava — Sales",
"first_message": "Hi, this is Ava from Acme. How can I help you today?",
"system_prompt": "You are Ava, a friendly Australian sales agent for Acme...",
"stt": { "provider": "deepgram", "model": "nova-2", "language": "en-AU" },
"llm": { "provider": "groq", "model": "llama-3.3-70b-versatile" },
"tts": { "provider": "elevenlabs", "model": "eleven_flash_v2_5", "voice_id": "pFZP5JQG7iQjIQuC4Bku" },
"compliance": {
"ai_disclosure": true,
"recording_consent": "all_party",
"dncr_check": true
}
}'Python — create agent
import requests
resp = requests.post(
"https://api.lyre.au/v1/agents",
headers={"Authorization": f"Bearer {LYRE_API_KEY}"},
json={
"name": "Ava — Sales",
"first_message": "Hi, this is Ava from Acme. How can I help you today?",
"system_prompt": "You are Ava, a friendly Australian sales agent...",
"stt": {"provider": "deepgram", "model": "nova-2", "language": "en-AU"},
"llm": {"provider": "groq", "model": "llama-3.3-70b-versatile"},
"tts": {"provider": "elevenlabs", "model": "eleven_flash_v2_5",
"voice_id": "pFZP5JQG7iQjIQuC4Bku"},
"compliance": {"ai_disclosure": True, "recording_consent": "all_party",
"dncr_check": True},
},
)
agent = resp.json()
print(agent["id"]) # agent_abc123Start a call (WebRTC)
Create a call session to get a LiveKit room token, then connect from the browser using the LYRE Web SDK or any LiveKit client.
curl — create a WebRTC call
curl -X POST https://api.lyre.au/v1/calls \
-H "Authorization: Bearer $LYRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "agent_abc123",
"type": "web",
"metadata": { "customer_id": "cust_456" }
}'
# Response:
# {
# "id": "call_xyz789",
# "status": "connecting",
# "room_url": "wss://lk.lyre.au",
# "token": "eyJ..."
# }Browser — connect with LiveKit
import { LiveKitRoom, useVoiceAssistant } from "@livekit/components-react";
function CallWidget({ token, roomUrl }) {
return (
<LiveKitRoom token={token} serverUrl={roomUrl} connect={true}>
<AgentView />
</LiveKitRoom>
);
}Monitor calls
View live and historical calls in the dashboard under Calls. You can also poll the API or register a webhook.
curl — list recent calls
curl https://api.lyre.au/v1/calls?limit=10 \ -H "Authorization: Bearer $LYRE_API_KEY" # Each call includes: id, agent_id, status, duration_ms, # cost, transcript_url, recording_url
curl — get call details
curl https://api.lyre.au/v1/calls/call_xyz789 \ -H "Authorization: Bearer $LYRE_API_KEY"
Set up webhooks at Settings → Webhooks to receive real-time events for call.started, call.ended, transcript.ready, and more.
Next steps
- Agent configuration — system prompts, tool calling, voice tuning
- Providers — full list of supported STT, LLM, and TTS providers
- Australian compliance — ACMA, DNCR, and recording consent requirements
- Sovereign AI — run the full stack on Australian infrastructure with SCX.ai