Skip to content
Primary navigation

Sessions

Create session
Deprecated
POST/realtime/sessions
ModelsExpand Collapse
SessionCreateResponse object { id, audio, expires_at, 10 more }

A Realtime session configuration object.

id: optional string

Unique identifier for the session that looks like sess_1234567890abcdef.

audio: optional object { input, output }

Configuration for input and output audio for the session.

input: optional object { format, noise_reduction, transcription, turn_detection }
format: optional RealtimeAudioFormats

The PCM audio format. Only a 24kHz sample rate is supported.

noise_reduction: optional object { type }

Configuration for input audio noise reduction.

type: optional NoiseReductionType

Type of noise reduction. near_field is for close-talking microphones such as headphones, far_field is for far-field microphones such as laptop or conference room microphones.

transcription: optional AudioTranscription { language, model, prompt }

Configuration for input audio transcription.

turn_detection: optional object { prefix_padding_ms, silence_duration_ms, threshold, type }

Configuration for turn detection.

prefix_padding_ms: optional number
silence_duration_ms: optional number
threshold: optional number
type: optional string

Type of turn detection, only server_vad is currently supported.

output: optional object { format, speed, voice }
format: optional RealtimeAudioFormats

The PCM audio format. Only a 24kHz sample rate is supported.

speed: optional number
voice: optional string or "alloy" or "ash" or "ballad" or 7 more
One of the following:
string
"alloy" or "ash" or "ballad" or 7 more
One of the following:
"alloy"
"ash"
"ballad"
"coral"
"echo"
"sage"
"shimmer"
"verse"
"marin"
"cedar"
expires_at: optional number

Expiration timestamp for the session, in seconds since epoch.

include: optional array of "item.input_audio_transcription.logprobs"

Additional fields to include in server outputs.

  • item.input_audio_transcription.logprobs: Include logprobs for input audio transcription.
instructions: optional string

The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. “be extremely succinct”, “act friendly”, “here are examples of good responses”) and on audio behavior (e.g. “talk quickly”, “inject emotion into your voice”, “laugh frequently”). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.

Note that the server sets default instructions which will be used if this field is not set and are visible in the session.created event at the start of the session.

max_output_tokens: optional number or "inf"

Maximum number of output tokens for a single assistant response, inclusive of tool calls. Provide an integer between 1 and 4096 to limit output tokens, or inf for the maximum available tokens for a given model. Defaults to inf.

One of the following:
number
"inf"
model: optional string

The Realtime model used for this session.

object: optional string

The object type. Always realtime.session.

output_modalities: optional array of "text" or "audio"

The set of modalities the model can respond with. To disable audio, set this to [“text”].

One of the following:
"text"
"audio"
tool_choice: optional string

How the model chooses tools. Options are auto, none, required, or specify a function.

tools: optional array of RealtimeFunctionTool { description, name, parameters, type }

Tools (functions) available to the model.

description: optional string

The description of the function, including guidance on when and how to call it, and guidance about what to tell the user when calling (if anything).

name: optional string

The name of the function.

parameters: optional unknown

Parameters of the function in JSON Schema.

type: optional "function"

The type of the tool, i.e. function.

tracing: optional "auto" or object { group_id, metadata, workflow_name }

Configuration options for tracing. Set to null to disable tracing. Once tracing is enabled for a session, the configuration cannot be modified.

auto will create a trace for the session with default values for the workflow name, group id, and metadata.

One of the following:
"auto"

Default tracing mode for the session.

TracingConfiguration object { group_id, metadata, workflow_name }

Granular configuration for tracing.

group_id: optional string

The group id to attach to this trace to enable filtering and grouping in the traces dashboard.

metadata: optional unknown

The arbitrary metadata to attach to this trace to enable filtering in the traces dashboard.

workflow_name: optional string

The name of the workflow to attach to this trace. This is used to name the trace in the traces dashboard.

turn_detection: optional object { prefix_padding_ms, silence_duration_ms, threshold, type }

Configuration for turn detection. Can be set to null to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech.

prefix_padding_ms: optional number

Amount of audio to include before the VAD detected speech (in milliseconds). Defaults to 300ms.

silence_duration_ms: optional number

Duration of silence to detect speech stop (in milliseconds). Defaults to 500ms. With shorter values the model will respond more quickly, but may jump in on short pauses from the user.

threshold: optional number

Activation threshold for VAD (0.0 to 1.0), this defaults to 0.5. A higher threshold will require louder audio to activate the model, and thus might perform better in noisy environments.

type: optional string

Type of turn detection, only server_vad is currently supported.