POST to /create-agent with voice_id, llm_websocket_url (your custom LLM endpoint), begin_message, and general_prompt to define the agent configuration
Import or provision a phone number via POST /import-phone-number (for BYO carrier) or purchase via the dashboard, then link it to the agent by specifying the agent_id
Expose a WebSocket server at the llm_websocket_url that accepts the Retell LLM protocol — receive interaction_type: response_required messages and return response_type: response with content
After a call ends, retrieve the call record via GET /get-call/{callId} to access the transcript array, call_analysis object, and recording_url
Use POST /list-calls with optional filtering by agent_id or date range for batch transcript retrieval
Configure webhook events (call_started, call_ended, call_analyzed) via the dashboard or POST /create-agent with a webhook_url to receive real-time notifications
Known gotchas
The custom LLM WebSocket must implement Retell's specific message protocol exactly — returning a non-conformant response structure causes the agent to go silent mid-call without surfacing an error to the caller
Inbound routing now requires the inbound_agents array (with weight values) rather than a single inbound_agent_id; phone numbers configured with the deprecated single-ID field stopped routing after the March 2026 cutover
call_analysis (sentiment, summary, custom fields) is computed asynchronously after call_ended; webhook payloads for call_ended do not yet contain analysis data — a separate call_analyzed event fires when it is ready
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp