Python starter
Python 3.9+, standard library only.
JavaScript starter
Node 18+, no dependencies.
Step 1: Clone
Step 2: Add your key
Paste your API key into.env:
.env
Step 3: Publish the starter agent
Step 4: Talk to it
http://localhost:3000 in Chrome or Edge and start talking.
Put it on a phone number
Twilio passes calls to AssemblyAI over SIP, so there’s no media server or webhook to run. Buy a Twilio number, then add your credentials and a trunk domain you invent:.env
Next steps
Get the recording and transcript of a call
Get the recording and transcript of a call
Every call is stored as a session. List them, newest first:Fetch one by Download each artifact straight from its
id to get its artifacts: pre-signed download URLs for the audio recording (OGG/Opus), the timeline (the conversation as JSON, each turn pairing user_transcript with agent_text), and recording metadata:url with no Authorization header. The URLs expire after a short TTL, so store the session id and re-fetch for fresh links. See Recordings & transcripts for pagination, the full timeline schema, and parsing code.Write your own agent
Write your own agent
Every file in Copy the closest file to start your own (
agents/ is the request body for POST /v1/agents, sent unchanged. The starter agent is four fields:agents/minimal.jsonc
cp agents/http-tools.jsonc agents/my-agent.jsonc). Every field is commented. Publish again and both the browser tab and the phone number pick up the change on the next call.Publish one of the other agents
Publish one of the other agents
Nine agents ship with each starter. Set
AGENT= to pick one:Give an agent your API keys
Give an agent your API keys
Values written as
${VAR} in an agent file are substituted at publish time from .env, or from agents/<name>.env for credentials only one agent uses. Both are gitignored, so the JSON is safe to commit.Put the browser app online
Put the browser app online
Deploy the Python or JavaScript starter to Render. It prompts for
ASSEMBLYAI_API_KEY and nothing else.Anyone with the URL can start sessions billed to that key.1. Create
Create a reusable agent with one REST call, then update, list, and delete it.
2. Configure
Shape how it sounds and behaves: prompt, voice, greeting, audio, turn detection, keyterms, tools.
3. Deploy
Connect by
agent_id over the API, from a browser, or to a phone number with Twilio.- Add tools: server-side HTTP tools and client-side function tools
- Connect your own LLM: point the agent at an OpenAI-compatible model
- Manage agents (REST): every endpoint, field, and validation rule
- Browser integration: mint tokens and build your own client
- Phone agents over SIP: the phone step above in full, including a Twilio CLI path
- Bluejay simulations: run simulated callers against your agent and score the results
- Events reference: every WebSocket event with full payloads
- Build with AI coding tools: point Claude Code, Cursor, or v0 at these docs
- Troubleshooting: symptom-to-fix table and support logging