Skip to main content
callId
string<uuid>
required
clientVersion
string | null
required

The version of the client that joined this call.

created
string<date-time>
required
joined
string<date-time> | null
required
ended
string<date-time> | null
required
endReason
required

The reason the call ended.

  • unjoined - Client never joined
  • hangup - Client hung up
  • agent_hangup - Agent hung up
  • timeout - Call timed out
  • connection_error - Connection error
  • system_error - System error
Available options:
unjoined,
hangup,
agent_hangup,
timeout,
connection_error,
system_error
billedDuration
string | null
required
billingStatus
enum<string>
required
  • BILLING_STATUS_PENDING* - The call hasn't been billed yet, but will be in the future. This is the case for ongoing calls for example. (Note: Calls created before May 28, 2025 may have this status even if they were billed.)
  • BILLING_STATUS_FREE_CONSOLE* - The call was free because it was initiated on https://app.ultravox.ai.
  • BILLING_STATUS_FREE_ZERO_EFFECTIVE_DURATION* - The call was free because its effective duration was zero. (Note: There may still be a non-zero sip bill in this case.)
  • BILLING_STATUS_FREE_MINUTES* - The call was unbilled but counted against the account's free minutes. (Note: There may still be a non-zero sip bill in this case.)
  • BILLING_STATUS_FREE_SYSTEM_ERROR* - The call was free because it ended due to a system error.
  • BILLING_STATUS_FREE_OTHER* - The call is in an undocumented free billing state.
  • BILLING_STATUS_BILLED* - The call was billed. See billedDuration for the billed duration.
  • BILLING_STATUS_REFUNDED* - The call was billed but was later refunded.
  • BILLING_STATUS_UNSPECIFIED* - The call is in an unexpected billing state. Please contact support.
Available options:
BILLING_STATUS_PENDING,
BILLING_STATUS_FREE_CONSOLE,
BILLING_STATUS_FREE_ZERO_EFFECTIVE_DURATION,
BILLING_STATUS_FREE_MINUTES,
BILLING_STATUS_FREE_SYSTEM_ERROR,
BILLING_STATUS_FREE_OTHER,
BILLING_STATUS_BILLED,
BILLING_STATUS_REFUNDED,
BILLING_STATUS_UNSPECIFIED
firstSpeaker
enum<string>
required
deprecated

Who was supposed to talk first when the call started. Typically set to FIRST_SPEAKER_USER for outgoing calls and left as the default (FIRST_SPEAKER_AGENT) otherwise.

Available options:
FIRST_SPEAKER_AGENT,
FIRST_SPEAKER_USER
firstSpeakerSettings
object
required

Settings for the initial message to get the call started. Settings for the initial message to get a conversation started. Exactly one of user or agent should be set. The default is agent (unless firstSpeaker is also set, in which case the default will match that).

initialOutputMedium
enum<string>
required

The medium used initially by the agent. May later be changed by the client.

Available options:
MESSAGE_MEDIUM_VOICE,
MESSAGE_MEDIUM_TEXT
joinUrl
string | null
required
shortSummary
string | null
required

A short summary of the call.

summary
string | null
required

A summary of the call.

agent
object
required

The agent used for this call.

agentId
string | null
required

The ID of the agent used for this call.

experimentalSettings
any
required

Experimental settings for the call.

metadata
object
required

Optional metadata key-value pairs to associate with the call. All values must be strings.

initialState
object
required

The initial state of the call which is readable/writable by tools.

requestContext
any
required
sipDetails
object
required

SIP details for the call, if applicable.

inactivityMessages
object[]

Messages spoken by the agent when the user is inactive for the specified duration. Durations are cumulative, so a message m > 1 with duration 30s will be spoken 30 seconds after message m-1.

joinTimeout
string
default:30s
languageHint
string | null

BCP47 language code that may be used to guide speech recognition.

Maximum length: 16
maxDuration
string
default:3600s
medium
object

Details about a call's protocol. By default, calls occur over WebRTC using the Ultravox client SDK. Setting a different call medium will prepare the server for a call using a different protocol. At most one call medium may be set.

model
string
default:fixie-ai/ultravox
recordingEnabled
boolean
default:false
systemPrompt
string | null
temperature
number
default:0
Required range: 0 <= x <= 1
timeExceededMessage
string | null
voice
string | null
externalVoice
object

A voice not known to Ultravox Realtime that can nonetheless be used for a call. Such voices are significantly less validated than normal voices and you'll be responsible for your own TTS-related errors. Exactly one field must be set.

transcriptOptional
boolean
default:true
deprecated

Indicates whether a transcript is optional for the call.

vadSettings
object

VAD settings for the call. Call-level VAD settings.

dataConnectionConfig
object

Settings for exchanging data messages with an additional participant. Data connection enables an auxiliary websocket for streaming data messages.

callbacks
object

Callbacks configuration for the call. Configuration for call lifecycle callbacks.