POST
/
v2
/
create-web-call

Authorizations

Authorization
string
headerrequired

Authentication header containing API key (find it in dashboard). The format is "Bearer YOUR_API_KEY"

Body

application/json
agent_id
string
required

Unique id of agent used for the call. Your agent would contain the LLM Websocket url used for this call.

metadata
object

An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.

retell_llm_dynamic_variables
object

Add optional dynamic variables in key value pairs of string that injects into your Retell LLM prompt and tool description. Only applicable for Retell LLM.

Response

201 - application/json
call_type
enum<string>
required

Type of the call. Used to distinguish between web call and phone call.

Available options:
web_call
access_token
string
required

Access token to enter the web call room. This needs to be passed to your frontend to join the call.

call_id
string
required

Unique id of the call. Used to identify in LLM websocket and used to authenticate in audio websocket.

agent_id
string
required

Corresponding agent id of this call.

call_status
enum<string>
required

Status of call.

  • registered: Call id issued, starting to make a call using this id.

  • ongoing: Call connected and ongoing.

  • ended: The underlying websocket has ended for the call. Either user or agent hanged up, or call transferred.

  • error: Call encountered error.

Available options:
registered,
ongoing,
ended,
error
metadata
object

An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.

retell_llm_dynamic_variables
object

Add optional dynamic variables in key value pairs of string that injects into your Retell LLM prompt and tool description. Only applicable for Retell LLM.

opt_out_sensitive_data_storage
boolean

Whether this call opts out of sensitive data storage like transcript, recording, logging.

start_timestamp
integer

Begin timestamp (milliseconds since epoch) of the call. Available after call starts.

end_timestamp
integer

End timestamp (milliseconds since epoch) of the call. Available after call ends.

transcript
string

Transcription of the call. Available after call ends.

transcript_object
object[]

Transcript of the call in the format of a list of utterance, with timestamp. Available after call ends.

transcript_with_tool_calls
object[]

Transcript of the call weaved with tool call invocation and results. It precisely captures when (at what utterance, which word) the tool was invoked and what was the result. Available after call ends.

recording_url
string

Recording of the call. Available after call ends.

public_log_url
string

Public log of the call, containing details about all the requests and responses received in LLM WebSocket, latency tracking for each turntaking, helpful for debugging and tracing. Available after call ends.

latency
object

Latency tracking of the call, available after call ends. Not all fields here will be available, as it depends on the type of call and feature used.

disconnection_reason
enum<string>

The reason for the disconnection of the call. Read details desciption about reasons listed here at Disconnection Reason Doc.

Available options:
user_hangup,
agent_hangup,
call_transfer,
voicemail_reached,
inactivity,
machine_detected,
max_duration_reached,
concurrency_limit_reached,
no_valid_payment,
scam_detected,
error_inbound_webhook,
dial_busy,
dial_failed,
dial_no_answer,
error_llm_websocket_open,
error_llm_websocket_lost_connection,
error_llm_websocket_runtime,
error_llm_websocket_corrupt_payload,
error_frontend_corrupted_payload,
error_twilio,
error_no_audio_received,
error_asr,
error_retell,
error_unknown,
error_user_not_joined,
registered_call_timeout
call_analysis
object

Post call analysis that includes information such as sentiment, status, summary, and custom defined data to extract. Available after call ends. Subscribe to call_analyzed webhook event type to receive it once ready.