POST
/
api
/
calls

Authorizations

X-API-Key
string
headerrequired

API key

Query Parameters

priorCallId
string

The UUID of a prior call. When specified, the new call will use the same properites as the prior call unless overriden in this request's body. The new call will also use the prior call's message history as its own initial_messages. (It's illegal to also set initial_messages in the body.)

Body

application/json

A request to start a call.

systemPrompt
string

The system prompt provided to the model during generations.

temperature
number

The model temperature, between 0 and 1. Defaults to 0.

model
string

The model used for generations. Defaults to fixie-ai/ultravox.

voice
string

The ID (or name if unique) of the voice the agent should use for this call.

languageHint
string

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

initialMessages
object[]

The conversation history to start from for this call.

joinTimeout
string

A timeout for joining the call. Defaults to 30 seconds.

maxDuration
string

The maximum duration of the call. Defaults to 1 hour.

timeExceededMessage
string

What the agent should say immediately before hanging up if the call's time limit is reached.

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.

selectedTools
object[]

The tools available to the agent for (the first stage of) this call.

medium
object

The medium used for this call.

initiator
enum<string>

Who was responsible for staring this call. Typically set to agent for outgoing calls and left as the default (user) otherwise. DEPRECATED: Use first_speaker instead. Will be removed in November 2024.

Available options:
INITIATOR_UNSPECIFIED,
INITIATOR_USER,
INITIATOR_AGENT
recordingEnabled
boolean

Whether the call should be recorded.

firstSpeaker
enum<string>

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

Available options:
FIRST_SPEAKER_UNSPECIFIED,
FIRST_SPEAKER_AGENT,
FIRST_SPEAKER_USER
transcriptOptional
boolean

Indicates whether a transcript is optional for the call.

initialOutputMedium
enum<string>

The medium to use for the call initially. May be altered by the client later. Defaults to voice.

Available options:
MESSAGE_MEDIUM_UNSPECIFIED,
MESSAGE_MEDIUM_VOICE,
MESSAGE_MEDIUM_TEXT
vadSettings
object

VAD settings for the call.

Response

201 - application/json
callId
string
required
clientVersion
string | null
required

The version of the client that joined this call.

created
string
required
ended
string | null
required
endReason
required

The reason the call ended.

  • unjoined - Client never joined
  • hangup - Client hung up
  • timeout - Call timed out
  • connection_error - Connection error
Available options:
unjoined,
hangup,
timeout,
connection_error
firstSpeaker
enum<string>
required

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
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
errorCount
integer
default: 0required

The number of errors in this call.

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
transcriptOptional
boolean
default: true

Indicates whether a transcript is optional for the call.

vadSettings
object

VAD settings for the call.