app
post/connect

Request

  • Base URL
    https://realtime-api.convai.com (the document declares no server; this is the origin it was published from)
  • URL
    https://realtime-api.convai.com/connect
  • Auth
    none declared

Headers

X-API-Keystring nullable
API-AUTH-TOKENstring nullable

Request body

character_idstring nullable

Single-character UUID, optionally followed by -draft, -latest, or a major.minor[.patch] version. Roster entries currently accept bare UUIDs only.

connection_type'audio' | 'video' | 'text'
llm_provider'gemini-live' | 'gemini-live-beta' | 'gemini-baml' | 'dynamic'
blendshape_provider'not_provided' | 'ovr' | 'neurosync'
state_of_mindstring nullable
narrative_template_keysobject nullable
video_track_namestring
vision_prompt_mode'auto' | 'disabled'

Controls Core-owned vision instructions and visual-input tooling for this session. 'auto' preserves legacy runtime behavior; 'disabled' omits the vision prompt and suppresses visual input while retaining scene metadata and other text context.

thinking_modeboolean
room_namestring nullable
room_session_idstring uuid nullable
room_briefstring nullable

Moderator's brief for a multi-character room; rendered into every character's static room context

group_chatboolean

Opt a multi-character room into moderated group chat. Only a room created with this flag receives server-authored room context, roster republishes and directed group-address turns; a roster room without it behaves exactly as multi-character V0 does. Set at create; a join inherits whatever the room was created with.

workspace_idstring uuid nullable

Shared Workspace whose characters fill a multi-character room created by a member with their own API key. Core authorizes every seat with a Workspace preview grant issued for that member, runs the room on the Workspace runtime credential and records the member as its actor. The member is the speaker, so end_user_id and end_user_metadata must be absent. Only valid with characters and mode='create'.

mode'create' | 'join'
spawn_agentboolean
shared_session_keystring nullable

Client-provided grouping key used to deterministically place participants into the same shared session/room.

connect_attempt_idstring nullable

Client-generated idempotency key for one logical connection attempt. Retries with the same key and payload replay the original response.

max_num_participantsinteger
end_user_idstring nullable
end_user_metadataobject nullable
default_tts_enabledboolean
default_stt_enabledboolean
disable_live_fallbackboolean
stt_providerstring nullable
debugboolean
debug_row_capinteger nullable
use_response_lifecycle_contractboolean nullable
preserve_links_in_outputboolean nullable

Example request

{
  "character_id": "00000000-0000-4000-8000-000000000001"
}

Response

Successful Response

session_idstring required

Unique session token

request_trace_idstring required

Server-side request trace ID for correlating client events, logs, telemetry, and session records for this /connect request

character_session_idstring required

Interaction session id

room_urlstring required

URL of the room to connect to

room_namestring nullable

Room name (only for LiveKit transport)

tokenstring required

Authentication token for the room

end_user_idstring nullable

The end_user_id associated with this session when provided

end_user_metadataobject nullable

Metadata associated with the end user

memory_statusstring nullable

What long-term memory will do for this session: 'disabled', 'active', or 'skipped_no_end_user' when the character has memory enabled but no end_user_id was supplied, so nothing will be remembered. Reported positively rather than left to be inferred from an absent end_user_id.

room_session_idstring uuid nullable
active_membership_idstring uuid nullable
route_epochinteger nullable
roster_epochinteger nullable
partial_dispatchboolean

Changes

    • info

      added the new optional request property ///

    • info

      added the new optional request property ///

    • info

      added the new optional request property

    • info

      added the new optional request property