List Active Voice Sessions
Get all currently active voice sessions across phone, web, and WhatsApp voice channels. Returns real-time status, participants, and room details for the supervisor dashboard.
query Parameters
qFree-text search. Matches phone number (participant or business address) and agent display name (case-insensitive substring).
agent_idFilter by agent UUID.
statusFilter by VoiceSession status (e.g. ringing, in_progress, active). Must be one of the LIVE_CALL_STATUSES.
channelFilter by channel (phone | web | whatsapp_voice).
directionFilter by direction (inbound | outbound).
campaign_idFilter by outbound campaign UUID.
List Active Voice Sessions › Responses
Successful Response
successtotal_activetimestampListen to Voice Session
Join an active voice session in listen-only mode. You can hear all participants but cannot speak; your presence is hidden.
path Parameters
call_idThe voice session to listen to.
Listen to Voice Session › Responses
Successful Response
successmodecall_idtokensupervisor_identitytimestampWhisper to Agent
Join an active voice session in whisper mode. You can hear all participants and send text coaching to the agent. The customer cannot hear you. Your presence is hidden.
path Parameters
call_idThe voice session to whisper to.
Whisper to Agent › Responses
Successful Response
successmodecall_idtokensupervisor_identitytimestampBarge Into Voice Session
Join an active voice session in barge mode. You can hear and speak to all participants and your presence is visible. Use this to take over or intervene in a call.
path Parameters
call_idThe voice session to barge into.
Barge Into Voice Session › Responses
Successful Response
successmodecall_idtokensupervisor_identitytimestampList Voice Sessions
List voice sessions across phone (SIP), web (WebRTC), and
WhatsApp voice channels. Filter by channel + direction (two-axis taxonomy),
agent, status, date range, and duration.
Quick Examples
Code
Code
query Parameters
channelFilter by channel: phone | web | whatsapp_voice
directionFilter by direction: inbound | outbound
campaign_idFilter by outbound campaign ID
statusFilter by status
createdAtGtFilter records created after this datetime (ISO 8601). Example: 2024-01-01T00:00:00Z
createdAtLtFilter records created before this datetime (ISO 8601). Example: 2024-12-31T23:59:59Z
createdAtGeFilter records created on or after this datetime (ISO 8601). Example: 2024-01-01T00:00:00Z
createdAtLeFilter records created on or before this datetime (ISO 8601). Example: 2024-12-31T23:59:59Z
date_presetQuick date filter: today | yesterday | this_week | last_week | this_month | last_month | last_7_days | last_30_days
sortOrderSort order: ASC (oldest first) or DESC (newest first). Defaults to DESC.
Sort order for list endpoints
durationGtFilter sessions longer than this (seconds)
durationLtFilter sessions shorter than this (seconds)
agentIdAnyFilter by agent IDs (comma-separated)
statusAnyFilter by multiple statuses (comma-separated)
skipNumber of records to skip for pagination. Defaults to 0.
limitList Voice Sessions › Responses
Successful Response
Pagination metadata in API responses.
Get Voice Session
path Parameters
session_idThe unique identifier of the voice session.
query Parameters
includeInclude extras: 'full' | 'transcript' | 'analytics'
Get Voice Session › Responses
Successful Response
idchannelstatuscreated_atupdated_atanalysis_statusretry_countduration_secondsconversation_turn_countsentiment_trendtopics_discussedkeywords_extractedtopicsaction_itemsDelete Voice Session
Delete voice-session data (GDPR right to erasure).
path Parameters
session_idThe voice session to delete.
query Parameters
delete_recordingWhether to delete the associated recording.
delete_transcriptWhether to delete transcript + analytics.
Delete Voice Session › Responses
Voice session deleted
Update Voice Session
Partial update of a voice session. Only call_metadata is mutable — the dict is JSONB-merged into the existing column (existing keys preserved, collisions overwritten, new keys added). Used by operators to attach CRM IDs, ticket numbers, or post-call notes after a call ends.
path Parameters
session_idThe voice session to update.
Update Voice Session › Request Body
Keys to merge into the existing call_metadata JSONB column.
Update Voice Session › Responses
Successful Response
idchannelstatuscreated_atupdated_atanalysis_statusretry_countduration_secondsconversation_turn_countsentiment_trendtopics_discussedkeywords_extractedtopicsaction_itemsVoice Analytics Dashboard
query Parameters
start_dateYYYY-MM-DD
end_dateYYYY-MM-DD
agent_idcampaign_idchannelphone | web | whatsapp_voice
directioninbound | outbound
intervalcampaign_attributed_onlyWhen true, narrow every metric to sessions where campaign_id IS NOT NULL. Used by the Outbound > Analytics tab so the dashboard reflects campaign activity rather than total org voice traffic. Mutually compatible with campaign_id (specific campaign always wins).
Voice Analytics Dashboard › Responses
Successful Response
start_dateStart date YYYY-MM-DD
end_dateEnd date YYYY-MM-DD
Primary KPI metrics
Named time range if applicable
Call volume over time
Activity heatmap data
Call outcome breakdown
By hour of day
By day of week
Per-agent performance
Per-campaign performance
Average latency metrics
Initiate Outbound Voice Call
Initiate a single outbound voice call to a phone number using an AI agent.
Prerequisites
- Agent with valid configuration
- Phone number with outbound trunk configured
- Dynamic variables if agent template uses
{{variable}}placeholders
Example
Code
Initiate Outbound Voice Call › Request Body
agent_idto_numberDestination phone number (E.164 format, e.g., +15551234567)
number_idPhone number ID to use for caller ID
Override caller ID number (E.164). Defaults to number_id's DID.
Caller ID display name (max 50 chars).
Dynamic variables injected into agent prompts via {{var}} syntax.
Per-call deep-merged agent config overrides.
force_dnc_overrideWhen true AND the org has DNC protection_enabled=False, allows the call to proceed even if the destination is on the DNC directory. Requires force_dnc_override_reason. Opt-IN orgs cannot override.
Free-text justification for the DNC override (logged to dnc_check_log for audit). Required when force_dnc_override=True.
Initiate Outbound Voice Call › Responses
Successful Response
successto_numberagent_idStart Web Call
Start a browser-based WebRTC voice session with an agent. Returns a token and server_url — pass these to the Neuratel Web SDK to open the audio connection in the browser. No phone number required.
path Parameters
agent_idAgent ID
Start Web Call › Request Body
Optional session name override
Display name for the caller
Dynamic {{variables}} to inject for this call
Start Web Call › Responses
Successful Response
successWhether the session was successfully created
session_idUnique identifier for this call session
participant_tokenJWT access token for the participant
tokenJWT access token (alias of participant_token for backward compat)
server_urlWebSocket URL of the realtime media server
participant_identityYour participant identity in this session
expires_inToken expiry in seconds from now
