POST
Create Realtime Client Secret

Authorizations

Authorization
string
header
required

Your EESI API key, sk-eesi-....

Body

application/json

A session fixed now and opened later by a client that holds no key.

The OpenAI shape (session, expires_after) plus two EESI fields: eesi_context, the live-state blocks the session starts with, as eesi.context.update would set them; and eesi_lock, what the client may not change.

session
Session · object
required

A session.update body: instructions, audio, tools, ...

expires_after
ClientSecretExpiry · object | null
eesi_context
Eesi Context · object | null

Live-state blocks by key, with the limits of eesi.context.update.

eesi_control
ClientSecretControl · object | null

Open a server control channel with the session: your server joins at /v1/realtime/control/{id}, sees its events and acts in it.

eesi_lock

What the client may not change: instructions, tools, voice, turn_detection, context, conversation, or all. Defaults to instructions and tools.

Available options:
instructions,
tools,
voice,
turn_detection,
context,
conversation
eesi_limits
ClientSecretLimits · object | null

A maximum call length and a silence hang-up, beyond the client.

eesi_webhook
ClientSecretWebhook · object | null

Post each reply and the session's end to your server, signed.

eesi_metadata
Eesi Metadata · object | null

Your own tags (at most 16), echoed in every webhook.

eesi_data
ClientSecretData · object | null

Keep the session out of training, or out of storage.

Response

Successful Response

The credential and the session it opens.

value
string
required
expires_at
integer
required
session
Session · object
required
eesi_lock
string[]
required
eesi_control
Eesi Control · object | null
eesi_limits
Eesi Limits · object | null
eesi_webhook
Eesi Webhook · object | null
eesi_metadata
Eesi Metadata · object | null
eesi_data
Eesi Data · object | null