Package-level declarations

Types

Link copied to clipboard
data class AcceptCallResponse(@Json(name = "duration") val duration: String)

AcceptCallResponse is the payload for accepting a call.

Link copied to clipboard
data class AggregatedStats(    @Json(name = "publisher_aggregate_stats") val publisherAggregateStats: PublisherAggregateStats? = null,     @Json(name = "turn") val turn: TURNAggregatedStats? = null)
Link copied to clipboard
data class APIError(    @Json(name = "code") val code: Int,     @Json(name = "duration") val duration: String,     @Json(name = "message") val message: String,     @Json(name = "more_info") val moreInfo: String,     @Json(name = "StatusCode") val statusCode: Int,     @Json(name = "details") val details: List<Int>,     @Json(name = "unrecoverable") val unrecoverable: Boolean? = null,     @Json(name = "exception_fields") val exceptionFields: Map<String, String>? = null)
Link copied to clipboard
data class AudioSettingsRequest(    @Json(name = "default_device") val defaultDevice: AudioSettingsRequest.DefaultDevice,     @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null,     @Json(name = "mic_default_on") val micDefaultOn: Boolean? = null,     @Json(name = "opus_dtx_enabled") val opusDtxEnabled: Boolean? = null,     @Json(name = "redundant_coding_enabled") val redundantCodingEnabled: Boolean? = null,     @Json(name = "speaker_default_on") val speakerDefaultOn: Boolean? = null,     @Json(name = "noise_cancellation") val noiseCancellation: NoiseCancellationSettings? = null)
Link copied to clipboard
data class AudioSettingsResponse(    @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean,     @Json(name = "default_device") val defaultDevice: AudioSettingsResponse.DefaultDevice,     @Json(name = "mic_default_on") val micDefaultOn: Boolean,     @Json(name = "opus_dtx_enabled") val opusDtxEnabled: Boolean,     @Json(name = "redundant_coding_enabled") val redundantCodingEnabled: Boolean,     @Json(name = "speaker_default_on") val speakerDefaultOn: Boolean,     @Json(name = "noise_cancellation") val noiseCancellation: NoiseCancellationSettings? = null)
Link copied to clipboard
data class BackstageSettingsRequest(    @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "join_ahead_time_seconds") val joinAheadTimeSeconds: Int? = null)
Link copied to clipboard
data class BackstageSettingsResponse(    @Json(name = "enabled") val enabled: Boolean,     @Json(name = "join_ahead_time_seconds") val joinAheadTimeSeconds: Int? = null)
Link copied to clipboard
data class BlockedUserEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String,     @Json(name = "blocked_by_user") val blockedByUser: UserResponse? = null) : VideoEvent, WSCallEvent

This event is sent to call participants to notify when a user is blocked on a call, clients can use this event to show a notification.

Link copied to clipboard
data class BlockUserRequest(@Json(name = "user_id") val userId: String)

BlockUserRequest is the payload for blocking a user.

Link copied to clipboard
data class BlockUserResponse(@Json(name = "duration") val duration: String)

BlockUserResponse is the payload for blocking a user.

Link copied to clipboard
data class Bound(@Json(name = "inclusive") val inclusive: Boolean, @Json(name = "value") val value: Float)
Link copied to clipboard
data class BroadcastSettingsRequest(    @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "hls") val hls: HLSSettingsRequest? = null,     @Json(name = "rtmp") val rtmp: RTMPSettingsRequest? = null)
Link copied to clipboard
data class BroadcastSettingsResponse(    @Json(name = "enabled") val enabled: Boolean,     @Json(name = "hls") val hls: HLSSettingsResponse,     @Json(name = "rtmp") val rtmp: RTMPSettingsResponse)

BroadcastSettingsResponse is the payload for broadcasting settings

Link copied to clipboard
data class CallAcceptedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a user accepts a notification to join a call.

Link copied to clipboard
data class CallClosedCaption(    @Json(name = "end_time") val endTime: OffsetDateTime,     @Json(name = "speaker_id") val speakerId: String,     @Json(name = "start_time") val startTime: OffsetDateTime,     @Json(name = "text") val text: String,     @Json(name = "user") val user: UserResponse)

CallClosedCaption represents a closed caption of a call.

Link copied to clipboard
data class CallClosedCaptionsFailedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call closed captions has failed

Link copied to clipboard
data class CallClosedCaptionsStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call closed caption has started

Link copied to clipboard
data class CallClosedCaptionsStoppedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call closed captions has stopped

Link copied to clipboard
data class CallCreatedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call is created. Clients receiving this event should check if the ringing

Link copied to clipboard
data class CallDeletedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call is deleted. Clients receiving this event should leave the call screen

Link copied to clipboard
data class CallDurationReport(@Json(name = "histogram") val histogram: List<ReportByHistogramBucket>)
Link copied to clipboard
data class CallDurationReportResponse(@Json(name = "daily") val daily: List<DailyAggregateCallDurationReportResponse>)
Link copied to clipboard
data class CallEndedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String,     @Json(name = "user") val user: UserResponse? = null) : VideoEvent, WSCallEvent

This event is sent when a call is mark as ended for all its participants. Clients receiving this event should leave the call screen

Link copied to clipboard
data class CallEvent(    @Json(name = "description") val description: String,     @Json(name = "end_timestamp") val endTimestamp: Int,     @Json(name = "internal") val internal: Boolean,     @Json(name = "kind") val kind: String,     @Json(name = "severity") val severity: Int,     @Json(name = "timestamp") val timestamp: Int,     @Json(name = "type") val type: String,     @Json(name = "category") val category: String? = null,     @Json(name = "component") val component: String? = null,     @Json(name = "issue_tags") val issueTags: List<String>? = null)
Link copied to clipboard
data class CallHLSBroadcastingFailedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has failed

Link copied to clipboard
data class CallHLSBroadcastingStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "hls_playlist_url") val hlsPlaylistUrl: String,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has started

Link copied to clipboard
data class CallHLSBroadcastingStoppedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has stopped

Link copied to clipboard
data class CallIngressResponse(@Json(name = "rtmp") val rtmp: RTMPIngress)

CallIngressResponse is the payload for ingress settings

Link copied to clipboard
data class CallLiveStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call is started. Clients receiving this event should start the call.

Link copied to clipboard
data class CallMemberAddedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when one or more members are added to a call

Link copied to clipboard
data class CallMemberRemovedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "members") val members: List<String>,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when one or more members are removed from a call

Link copied to clipboard
data class CallMemberUpdatedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when one or more members are updated

Link copied to clipboard
data class CallMemberUpdatedPermissionEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "capabilities_by_role") val capabilitiesByRole: Map<String, List<String>>,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when one or more members get its role updated

Link copied to clipboard
data class CallMissedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "notify_user") val notifyUser: Boolean,     @Json(name = "session_id") val sessionId: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent to call members who did not accept/reject/join the call to notify they missed the call

Link copied to clipboard
data class CallNotificationEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent to all call members to notify they are getting called

Link copied to clipboard
data class CallParticipantCountReport(@Json(name = "histogram") val histogram: List<ReportByHistogramBucket>)
Link copied to clipboard
data class CallParticipantResponse(    @Json(name = "joined_at") val joinedAt: OffsetDateTime,     @Json(name = "role") val role: String,     @Json(name = "user_session_id") val userSessionId: String,     @Json(name = "user") val user: UserResponse)
Link copied to clipboard
data class CallReactionEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "reaction") val reaction: ReactionResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a reaction is sent in a call, clients should use this to show the reaction in the call screen

Link copied to clipboard
data class CallRecording(    @Json(name = "end_time") val endTime: OffsetDateTime,     @Json(name = "filename") val filename: String,     @Json(name = "start_time") val startTime: OffsetDateTime,     @Json(name = "url") val url: String)

CallRecording represents a recording of a call.

Link copied to clipboard
data class CallRecordingFailedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call recording has failed

Link copied to clipboard
data class CallRecordingReadyEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "call_recording") val callRecording: CallRecording,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call recording is ready

Link copied to clipboard
data class CallRecordingStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call recording has started

Link copied to clipboard
data class CallRecordingStoppedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call recording has stopped

Link copied to clipboard
data class CallRejectedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String,     @Json(name = "reason") val reason: String? = null) : VideoEvent, WSCallEvent

This event is sent when a user rejects a notification to join a call.

Link copied to clipboard
data class CallRequest(    @Json(name = "starts_at") val startsAt: OffsetDateTime? = null,     @Json(name = "team") val team: String? = null,     @Json(name = "video") val video: Boolean? = null,     @Json(name = "members") val members: List<MemberRequest>? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null,     @Json(name = "settings_override") val settingsOverride: CallSettingsRequest? = null)

CallRequest is the payload for creating a call.

Link copied to clipboard
data class CallResponse(    @Json(name = "backstage") val backstage: Boolean,     @Json(name = "captioning") val captioning: Boolean,     @Json(name = "cid") val cid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "current_session_id") val currentSessionId: String,     @Json(name = "id") val id: String,     @Json(name = "recording") val recording: Boolean,     @Json(name = "transcribing") val transcribing: Boolean,     @Json(name = "type") val type: String,     @Json(name = "updated_at") val updatedAt: OffsetDateTime,     @Json(name = "blocked_user_ids") val blockedUserIds: List<String>,     @Json(name = "created_by") val createdBy: UserResponse,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "egress") val egress: EgressResponse,     @Json(name = "ingress") val ingress: CallIngressResponse,     @Json(name = "settings") val settings: CallSettingsResponse,     @Json(name = "ended_at") val endedAt: OffsetDateTime? = null,     @Json(name = "join_ahead_time_seconds") val joinAheadTimeSeconds: Int? = null,     @Json(name = "starts_at") val startsAt: OffsetDateTime? = null,     @Json(name = "team") val team: String? = null,     @Json(name = "session") val session: CallSessionResponse? = null,     @Json(name = "thumbnails") val thumbnails: ThumbnailResponse? = null)

Represents a call

Link copied to clipboard
data class CallRingEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "video") val video: Boolean,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "call") val call: CallResponse,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent to all call members to notify they are getting called

Link copied to clipboard
data class CallRtmpBroadcastFailedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "name") val name: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call RTMP broadcast has failed

Link copied to clipboard
data class CallRtmpBroadcastStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "name") val name: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when RTMP broadcast has started

Link copied to clipboard
data class CallRtmpBroadcastStoppedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "name") val name: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when RTMP broadcast has stopped

Link copied to clipboard
data class CallSessionEndedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call session ends

Link copied to clipboard
data class CallSessionParticipantCountsUpdatedEvent(    @Json(name = "anonymous_participant_count") val anonymousParticipantCount: Int,     @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "participants_count_by_role") val participantsCountByRole: Map<String, Int> = emptyMap(),     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when the participant counts in a call session are updated

Link copied to clipboard
data class CallSessionParticipantJoinedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "participant") val participant: CallParticipantResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a participant joins a call session

Link copied to clipboard
data class CallSessionParticipantLeftEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "duration_seconds") val durationSeconds: Int,     @Json(name = "session_id") val sessionId: String,     @Json(name = "participant") val participant: CallParticipantResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a participant leaves a call session

Link copied to clipboard
data class CallSessionResponse(    @Json(name = "anonymous_participant_count") val anonymousParticipantCount: Int,     @Json(name = "id") val id: String,     @Json(name = "participants") val participants: List<CallParticipantResponse>,     @Json(name = "accepted_by") val acceptedBy: Map<String, OffsetDateTime>,     @Json(name = "missed_by") val missedBy: Map<String, OffsetDateTime>,     @Json(name = "participants_count_by_role") val participantsCountByRole: Map<String, Int>,     @Json(name = "rejected_by") val rejectedBy: Map<String, OffsetDateTime>,     @Json(name = "ended_at") val endedAt: OffsetDateTime? = null,     @Json(name = "live_ended_at") val liveEndedAt: OffsetDateTime? = null,     @Json(name = "live_started_at") val liveStartedAt: OffsetDateTime? = null,     @Json(name = "started_at") val startedAt: OffsetDateTime? = null,     @Json(name = "timer_ends_at") val timerEndsAt: OffsetDateTime? = null)
Link copied to clipboard
data class CallSessionStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "session_id") val sessionId: String,     @Json(name = "call") val call: CallResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call session starts

Link copied to clipboard
data class CallSettingsRequest(    @Json(name = "audio") val audio: AudioSettingsRequest? = null,     @Json(name = "backstage") val backstage: BackstageSettingsRequest? = null,     @Json(name = "broadcasting") val broadcasting: BroadcastSettingsRequest? = null,     @Json(name = "geofencing") val geofencing: GeofenceSettingsRequest? = null,     @Json(name = "limits") val limits: LimitsSettingsRequest? = null,     @Json(name = "recording") val recording: RecordSettingsRequest? = null,     @Json(name = "ring") val ring: RingSettingsRequest? = null,     @Json(name = "screensharing") val screensharing: ScreensharingSettingsRequest? = null,     @Json(name = "session") val session: SessionSettingsRequest? = null,     @Json(name = "thumbnails") val thumbnails: ThumbnailsSettingsRequest? = null,     @Json(name = "transcription") val transcription: TranscriptionSettingsRequest? = null,     @Json(name = "video") val video: VideoSettingsRequest? = null)
Link copied to clipboard
data class CallSettingsResponse(    @Json(name = "audio") val audio: AudioSettingsResponse,     @Json(name = "backstage") val backstage: BackstageSettingsResponse,     @Json(name = "broadcasting") val broadcasting: BroadcastSettingsResponse,     @Json(name = "geofencing") val geofencing: GeofenceSettingsResponse,     @Json(name = "limits") val limits: LimitsSettingsResponse,     @Json(name = "recording") val recording: RecordSettingsResponse,     @Json(name = "ring") val ring: RingSettingsResponse,     @Json(name = "screensharing") val screensharing: ScreensharingSettingsResponse,     @Json(name = "session") val session: SessionSettingsResponse,     @Json(name = "thumbnails") val thumbnails: ThumbnailsSettingsResponse,     @Json(name = "transcription") val transcription: TranscriptionSettingsResponse,     @Json(name = "video") val video: VideoSettingsResponse)
Link copied to clipboard
data class CallsPerDayReport(@Json(name = "count") val count: Int)
Link copied to clipboard
data class CallsPerDayReportResponse(@Json(name = "daily") val daily: List<DailyAggregateCallsPerDayReportResponse>)
Link copied to clipboard
data class CallStateResponseFields(    @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "call") val call: CallResponse,     @Json(name = "membership") val membership: MemberResponse? = null)

CallStateResponseFields is the payload for call state response

Link copied to clipboard
data class CallStatsReportSummaryResponse(    @Json(name = "call_cid") val callCid: String,     @Json(name = "call_duration_seconds") val callDurationSeconds: Int,     @Json(name = "call_session_id") val callSessionId: String,     @Json(name = "call_status") val callStatus: String,     @Json(name = "first_stats_time") val firstStatsTime: OffsetDateTime,     @Json(name = "created_at") val createdAt: OffsetDateTime? = null,     @Json(name = "min_user_rating") val minUserRating: Int? = null,     @Json(name = "quality_score") val qualityScore: Int? = null)
Link copied to clipboard
data class CallTimeline(@Json(name = "events") val events: List<CallEvent>)
Link copied to clipboard
data class CallTranscription(    @Json(name = "end_time") val endTime: OffsetDateTime,     @Json(name = "filename") val filename: String,     @Json(name = "start_time") val startTime: OffsetDateTime,     @Json(name = "url") val url: String)

CallTranscription represents a transcription of a call.

Link copied to clipboard
data class CallTranscriptionFailedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call transcription has failed

Link copied to clipboard
data class CallTranscriptionReadyEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "call_transcription") val callTranscription: CallTranscription,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call transcription is ready

Link copied to clipboard
data class CallTranscriptionStartedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call transcription has started

Link copied to clipboard
data class CallTranscriptionStoppedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "egress_id") val egressId: String,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when call transcription has stopped

Link copied to clipboard
data class CallUpdatedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "call") val call: CallResponse,     @Json(name = "capabilities_by_role") val capabilitiesByRole: Map<String, List<String>>,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call is updated, clients should use this update the local state of the call.

Link copied to clipboard
data class CallUserMutedEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "from_user_id") val fromUserId: String,     @Json(name = "muted_user_ids") val mutedUserIds: List<String>,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a call member is muted

Link copied to clipboard
data class ClosedCaptionEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "closed_caption") val closedCaption: CallClosedCaption,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when closed captions are being sent in a call, clients should use this to show the closed captions in the call screen

Link copied to clipboard
data class CollectUserFeedbackRequest(    @Json(name = "rating") val rating: Int,     @Json(name = "sdk") val sdk: String,     @Json(name = "sdk_version") val sdkVersion: String,     @Json(name = "user_session_id") val userSessionId: String,     @Json(name = "reason") val reason: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)
Link copied to clipboard
data class CollectUserFeedbackResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class ConnectedEvent(    @Json(name = "connection_id") val connectionId: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "me") val me: OwnUserResponse,     @Json(name = "type") val type: String) : VideoEvent

This event is sent when the WS connection is established and authenticated, this event contains the full user object as it is stored on the server

Link copied to clipboard
data class ConnectionErrorEvent(    @Json(name = "connection_id") val connectionId: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "error") val error: APIError,     @Json(name = "type") val type: String) : VideoEvent

This event is sent when the WS connection fails

Link copied to clipboard
data class ConnectUserDetailsRequest(    @Json(name = "id") val id: String,     @Json(name = "image") val image: String? = null,     @Json(name = "invisible") val invisible: Boolean? = null,     @Json(name = "language") val language: String? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)
Link copied to clipboard
data class Coordinates(@Json(name = "latitude") val latitude: Float, @Json(name = "longitude") val longitude: Float)
Link copied to clipboard
data class Count(@Json(name = "approximate") val approximate: Boolean, @Json(name = "value") val value: Int)
Link copied to clipboard
data class CreateDeviceRequest(    @Json(name = "id") val id: String,     @Json(name = "push_provider") val pushProvider: CreateDeviceRequest.PushProvider,     @Json(name = "push_provider_name") val pushProviderName: String? = null,     @Json(name = "voip_token") val voipToken: Boolean? = null)

Create device request

Link copied to clipboard
data class CreateGuestRequest(@Json(name = "user") val user: UserRequest)
Link copied to clipboard
data class CreateGuestResponse(    @Json(name = "access_token") val accessToken: String,     @Json(name = "duration") val duration: String,     @Json(name = "user") val user: UserResponse)
Link copied to clipboard
data class Credentials(    @Json(name = "token") val token: String,     @Json(name = "ice_servers") val iceServers: List<ICEServer>,     @Json(name = "server") val server: SFUResponse)
Link copied to clipboard
data class CustomVideoEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

A custom event, this event is used to send custom events to other participants in the call.

Link copied to clipboard
data class DailyAggregateCallDurationReportResponse(@Json(name = "date") val date: String, @Json(name = "report") val report: CallDurationReport)
data class DailyAggregateCallParticipantCountReportResponse(    @Json(name = "date") val date: String,     @Json(name = "report") val report: CallParticipantCountReport)
Link copied to clipboard
data class DailyAggregateCallsPerDayReportResponse(@Json(name = "date") val date: String, @Json(name = "report") val report: CallsPerDayReport)
Link copied to clipboard
data class DailyAggregateQualityScoreReportResponse(    @Json(name = "date") val date: String,     @Json(name = "report") val report: QualityScoreReport)
Link copied to clipboard
data class DailyAggregateSDKUsageReportResponse(@Json(name = "date") val date: String, @Json(name = "report") val report: SDKUsageReport)
Link copied to clipboard
data class DailyAggregateUserFeedbackReportResponse(    @Json(name = "date") val date: String,     @Json(name = "report") val report: UserFeedbackReport)
Link copied to clipboard
data class DeleteCallRequest(@Json(name = "hard") val hard: Boolean? = null)

DeleteCallRequest is the payload for deleting a call.

Link copied to clipboard
data class DeleteCallResponse(    @Json(name = "duration") val duration: String,     @Json(name = "call") val call: CallResponse,     @Json(name = "task_id") val taskId: String? = null)

DeleteCallResponse is the payload for deleting a call.

Link copied to clipboard
data class DeleteRecordingResponse(@Json(name = "duration") val duration: String)

Response for DeleteRecording

Link copied to clipboard
data class DeleteTranscriptionResponse(@Json(name = "duration") val duration: String)

DeleteTranscriptionResponse is the payload for deleting a transcription.

Link copied to clipboard
data class DeviceResponse(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "id") val id: String,     @Json(name = "push_provider") val pushProvider: String,     @Json(name = "user_id") val userId: String,     @Json(name = "disabled") val disabled: Boolean? = null,     @Json(name = "disabled_reason") val disabledReason: String? = null,     @Json(name = "push_provider_name") val pushProviderName: String? = null,     @Json(name = "voip") val voip: Boolean? = null)

Response for Device

Link copied to clipboard
data class EdgeResponse(    @Json(name = "continent_code") val continentCode: String,     @Json(name = "country_iso_code") val countryIsoCode: String,     @Json(name = "green") val green: Int,     @Json(name = "id") val id: String,     @Json(name = "latency_test_url") val latencyTestUrl: String,     @Json(name = "latitude") val latitude: Float,     @Json(name = "longitude") val longitude: Float,     @Json(name = "red") val red: Int,     @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String,     @Json(name = "yellow") val yellow: Int)
Link copied to clipboard
data class EgressHLSResponse(@Json(name = "playlist_url") val playlistUrl: String, @Json(name = "status") val status: String)
Link copied to clipboard
data class EgressResponse(    @Json(name = "broadcasting") val broadcasting: Boolean,     @Json(name = "rtmps") val rtmps: List<EgressRTMPResponse>,     @Json(name = "hls") val hls: EgressHLSResponse? = null)
Link copied to clipboard
data class EgressRTMPResponse(    @Json(name = "name") val name: String,     @Json(name = "started_at") val startedAt: OffsetDateTime,     @Json(name = "stream_key") val streamKey: String? = null,     @Json(name = "stream_url") val streamUrl: String? = null)
Link copied to clipboard
data class EndCallResponse(@Json(name = "duration") val duration: String)

Response for ending a call

Link copied to clipboard
data class GeofenceSettingsRequest(@Json(name = "names") val names: List<String>? = null)
Link copied to clipboard
data class GeofenceSettingsResponse(@Json(name = "names") val names: List<String>)
Link copied to clipboard
data class GeolocationResult(    @Json(name = "accuracy_radius") val accuracyRadius: Int,     @Json(name = "city") val city: String,     @Json(name = "continent") val continent: String,     @Json(name = "continent_code") val continentCode: String,     @Json(name = "country") val country: String,     @Json(name = "country_iso_code") val countryIsoCode: String,     @Json(name = "latitude") val latitude: Float,     @Json(name = "longitude") val longitude: Float,     @Json(name = "subdivision") val subdivision: String,     @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String)
Link copied to clipboard
data class GetCallResponse(    @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "call") val call: CallResponse,     @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class GetCallStatsResponse(    @Json(name = "call_duration_seconds") val callDurationSeconds: Int,     @Json(name = "call_status") val callStatus: String,     @Json(name = "duration") val duration: String,     @Json(name = "max_freezes_duration_seconds") val maxFreezesDurationSeconds: Int,     @Json(name = "max_participants") val maxParticipants: Int,     @Json(name = "max_total_quality_limitation_duration_seconds") val maxTotalQualityLimitationDurationSeconds: Int,     @Json(name = "publishing_participants") val publishingParticipants: Int,     @Json(name = "quality_score") val qualityScore: Int,     @Json(name = "sfu_count") val sfuCount: Int,     @Json(name = "participant_report") val participantReport: List<UserStats>,     @Json(name = "sfus") val sfus: List<SFULocationResponse>,     @Json(name = "average_connection_time") val averageConnectionTime: Float? = null,     @Json(name = "aggregated") val aggregated: AggregatedStats? = null,     @Json(name = "call_timeline") val callTimeline: CallTimeline? = null,     @Json(name = "jitter") val jitter: TimeStats? = null,     @Json(name = "latency") val latency: TimeStats? = null)

Basic response information

Link copied to clipboard
data class GetEdgesResponse(@Json(name = "duration") val duration: String, @Json(name = "edges") val edges: List<EdgeResponse>)

Basic response information

Link copied to clipboard
data class GetOrCreateCallRequest(    @Json(name = "members_limit") val membersLimit: Int? = null,     @Json(name = "notify") val notify: Boolean? = null,     @Json(name = "ring") val ring: Boolean? = null,     @Json(name = "video") val video: Boolean? = null,     @Json(name = "data") val data: CallRequest? = null)
Link copied to clipboard
data class GetOrCreateCallResponse(    @Json(name = "created") val created: Boolean,     @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "call") val call: CallResponse,     @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class GoLiveRequest(    @Json(name = "recording_storage_name") val recordingStorageName: String? = null,     @Json(name = "start_closed_caption") val startClosedCaption: Boolean? = null,     @Json(name = "start_hls") val startHls: Boolean? = null,     @Json(name = "start_recording") val startRecording: Boolean? = null,     @Json(name = "start_rtmp_broadcasts") val startRtmpBroadcasts: Boolean? = null,     @Json(name = "start_transcription") val startTranscription: Boolean? = null,     @Json(name = "transcription_storage_name") val transcriptionStorageName: String? = null)
Link copied to clipboard
data class GoLiveResponse(@Json(name = "duration") val duration: String, @Json(name = "call") val call: CallResponse)

Basic response information

Link copied to clipboard
data class HealthCheckEvent(    @Json(name = "connection_id") val connectionId: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "type") val type: String,     @Json(name = "cid") val cid: String? = null,     @Json(name = "received_at") val receivedAt: OffsetDateTime? = null) : VideoEvent
Link copied to clipboard
data class HLSSettingsRequest(    @Json(name = "quality_tracks") val qualityTracks: List<String>,     @Json(name = "auto_on") val autoOn: Boolean? = null,     @Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class HLSSettingsResponse(    @Json(name = "auto_on") val autoOn: Boolean,     @Json(name = "enabled") val enabled: Boolean,     @Json(name = "quality_tracks") val qualityTracks: List<String>)

HLSSettings is the payload for HLS settings

Link copied to clipboard
data class ICEServer(    @Json(name = "password") val password: String,     @Json(name = "username") val username: String,     @Json(name = "urls") val urls: List<String>)
Link copied to clipboard
data class JoinCallRequest(    @Json(name = "location") val location: String,     @Json(name = "create") val create: Boolean? = null,     @Json(name = "members_limit") val membersLimit: Int? = null,     @Json(name = "migrating_from") val migratingFrom: String? = null,     @Json(name = "notify") val notify: Boolean? = null,     @Json(name = "ring") val ring: Boolean? = null,     @Json(name = "video") val video: Boolean? = null,     @Json(name = "data") val data: CallRequest? = null)
Link copied to clipboard
data class JoinCallResponse(    @Json(name = "created") val created: Boolean,     @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "call") val call: CallResponse,     @Json(name = "credentials") val credentials: Credentials,     @Json(name = "stats_options") val statsOptions: StatsOptions,     @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class LayoutSettingsRequest(    @Json(name = "name") val name: LayoutSettingsRequest.Name,     @Json(name = "detect_orientation") val detectOrientation: Boolean? = null,     @Json(name = "external_app_url") val externalAppUrl: String? = null,     @Json(name = "external_css_url") val externalCssUrl: String? = null,     @Json(name = "options") val options: Map<String, Any?>? = null)
Link copied to clipboard
data class LimitsSettingsRequest(    @Json(name = "max_duration_seconds") val maxDurationSeconds: Int? = null,     @Json(name = "max_participants") val maxParticipants: Int? = null)
Link copied to clipboard
data class LimitsSettingsResponse(    @Json(name = "max_duration_seconds") val maxDurationSeconds: Int? = null,     @Json(name = "max_participants") val maxParticipants: Int? = null)
Link copied to clipboard
data class ListDevicesResponse(@Json(name = "duration") val duration: String, @Json(name = "devices") val devices: List<DeviceResponse>)

List devices response

Link copied to clipboard
data class ListRecordingsResponse(@Json(name = "duration") val duration: String, @Json(name = "recordings") val recordings: List<CallRecording>)

Response for listing recordings

Link copied to clipboard
data class ListTranscriptionsResponse(    @Json(name = "duration") val duration: String,     @Json(name = "transcriptions") val transcriptions: List<CallTranscription>)
Link copied to clipboard
data class Location(    @Json(name = "continent_code") val continentCode: String,     @Json(name = "country_iso_code") val countryIsoCode: String,     @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String)
Link copied to clipboard
data class MediaPubSubHint(    @Json(name = "audio_published") val audioPublished: Boolean,     @Json(name = "audio_subscribed") val audioSubscribed: Boolean,     @Json(name = "video_published") val videoPublished: Boolean,     @Json(name = "video_subscribed") val videoSubscribed: Boolean)
Link copied to clipboard
data class MemberRequest(    @Json(name = "user_id") val userId: String,     @Json(name = "role") val role: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)

MemberRequest is the payload for adding a member to a call.

Link copied to clipboard
data class MemberResponse(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "updated_at") val updatedAt: OffsetDateTime,     @Json(name = "user_id") val userId: String,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "user") val user: UserResponse,     @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null,     @Json(name = "role") val role: String? = null)

MemberResponse is the payload for a member of a call.

Link copied to clipboard
data class MuteUsersRequest(    @Json(name = "audio") val audio: Boolean? = null,     @Json(name = "mute_all_users") val muteAllUsers: Boolean? = null,     @Json(name = "screenshare") val screenshare: Boolean? = null,     @Json(name = "screenshare_audio") val screenshareAudio: Boolean? = null,     @Json(name = "video") val video: Boolean? = null,     @Json(name = "user_ids") val userIds: List<String>? = null)
Link copied to clipboard
data class MuteUsersResponse(@Json(name = "duration") val duration: String)

MuteUsersResponse is the response payload for the mute users endpoint.

Link copied to clipboard
data class NetworkMetricsReportResponse(    @Json(name = "average_connection_time") val averageConnectionTime: Float? = null,     @Json(name = "average_jitter") val averageJitter: Float? = null,     @Json(name = "average_latency") val averageLatency: Float? = null,     @Json(name = "average_time_to_reconnect") val averageTimeToReconnect: Float? = null)
Link copied to clipboard
data class NoiseCancellationSettings(@Json(name = "mode") val mode: NoiseCancellationSettings.Mode)
Link copied to clipboard
sealed class OwnCapability

OwnCapability Enum

Link copied to clipboard
data class OwnUserResponse(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "id") val id: String,     @Json(name = "language") val language: String,     @Json(name = "role") val role: String,     @Json(name = "updated_at") val updatedAt: OffsetDateTime,     @Json(name = "devices") val devices: List<DeviceResponse>,     @Json(name = "teams") val teams: List<String>,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null,     @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null,     @Json(name = "image") val image: String? = null,     @Json(name = "last_active") val lastActive: OffsetDateTime? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null,     @Json(name = "blocked_user_ids") val blockedUserIds: List<String>? = null,     @Json(name = "push_preferences") val pushPreferences: PushPreferences? = null)
Link copied to clipboard
data class PermissionRequestEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "permissions") val permissions: List<String>,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a user requests access to a feature on a call,

Link copied to clipboard
data class PerSDKUsageReport(@Json(name = "total") val total: Int, @Json(name = "by_version") val byVersion: Map<String, Int>)
Link copied to clipboard
data class PinRequest(@Json(name = "session_id") val sessionId: String, @Json(name = "user_id") val userId: String)

PinRequest is the payload for pinning a message.

Link copied to clipboard
data class PinResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class PublishedTrackInfo(    @Json(name = "codec_mime_type") val codecMimeType: String? = null,     @Json(name = "duration_seconds") val durationSeconds: Int? = null,     @Json(name = "track_type") val trackType: String? = null)
Link copied to clipboard
data class PublisherAggregateStats(    @Json(name = "by_track_type") val byTrackType: Map<String, Count>? = null,     @Json(name = "total") val total: Count? = null)
Link copied to clipboard
data class PushPreferences(    @Json(name = "call_level") val callLevel: String? = null,     @Json(name = "chat_level") val chatLevel: String? = null,     @Json(name = "disabled_until") val disabledUntil: OffsetDateTime? = null)
Link copied to clipboard
data class QualityScoreReport(@Json(name = "histogram") val histogram: List<ReportByHistogramBucket>)
Link copied to clipboard
data class QualityScoreReportResponse(@Json(name = "daily") val daily: List<DailyAggregateQualityScoreReportResponse>)
Link copied to clipboard
data class QueryAggregateCallStatsRequest(    @Json(name = "from") val from: String? = null,     @Json(name = "to") val to: String? = null,     @Json(name = "report_types") val reportTypes: List<String>? = null)
Link copied to clipboard
data class QueryAggregateCallStatsResponse(    @Json(name = "duration") val duration: String,     @Json(name = "call_duration_report") val callDurationReport: CallDurationReportResponse? = null,     @Json(name = "call_participant_count_report") val callParticipantCountReport: CallParticipantCountReportResponse? = null,     @Json(name = "calls_per_day_report") val callsPerDayReport: CallsPerDayReportResponse? = null,     @Json(name = "network_metrics_report") val networkMetricsReport: NetworkMetricsReportResponse? = null,     @Json(name = "quality_score_report") val qualityScoreReport: QualityScoreReportResponse? = null,     @Json(name = "sdk_usage_report") val sdkUsageReport: SDKUsageReportResponse? = null,     @Json(name = "user_feedback_report") val userFeedbackReport: UserFeedbackReportResponse? = null)

Basic response information

Link copied to clipboard
data class QueryCallMembersRequest(    @Json(name = "id") val id: String,     @Json(name = "type") val type: String,     @Json(name = "limit") val limit: Int? = null,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null,     @Json(name = "sort") val sort: List<SortParamRequest>? = null,     @Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null)
Link copied to clipboard
data class QueryCallMembersResponse(    @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null)

Basic response information

Link copied to clipboard
data class QueryCallsRequest(    @Json(name = "limit") val limit: Int? = null,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null,     @Json(name = "watch") val watch: Boolean? = null,     @Json(name = "sort") val sort: List<SortParamRequest>? = null,     @Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null)
Link copied to clipboard
data class QueryCallsResponse(    @Json(name = "duration") val duration: String,     @Json(name = "calls") val calls: List<CallStateResponseFields>,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null)
Link copied to clipboard
data class QueryCallStatsRequest(    @Json(name = "limit") val limit: Int? = null,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null,     @Json(name = "sort") val sort: List<SortParamRequest>? = null,     @Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null)
Link copied to clipboard
data class QueryCallStatsResponse(    @Json(name = "duration") val duration: String,     @Json(name = "reports") val reports: List<CallStatsReportSummaryResponse>,     @Json(name = "next") val next: String? = null,     @Json(name = "prev") val prev: String? = null)

Basic response information

Link copied to clipboard
data class ReactionResponse(    @Json(name = "type") val type: String,     @Json(name = "user") val user: UserResponse,     @Json(name = "emoji_code") val emojiCode: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)
Link copied to clipboard
data class RecordSettingsRequest(    @Json(name = "mode") val mode: RecordSettingsRequest.Mode,     @Json(name = "audio_only") val audioOnly: Boolean? = null,     @Json(name = "quality") val quality: RecordSettingsRequest.Quality? = null)
Link copied to clipboard
data class RecordSettingsResponse(    @Json(name = "audio_only") val audioOnly: Boolean,     @Json(name = "mode") val mode: String,     @Json(name = "quality") val quality: String)

RecordSettings is the payload for recording settings

Link copied to clipboard
data class RejectCallRequest(@Json(name = "reason") val reason: String? = null)
Link copied to clipboard
data class RejectCallResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class ReportByHistogramBucket(    @Json(name = "category") val category: String,     @Json(name = "count") val count: Int,     @Json(name = "sum") val sum: Float,     @Json(name = "lower_bound") val lowerBound: Bound? = null,     @Json(name = "upper_bound") val upperBound: Bound? = null)
Link copied to clipboard
data class RequestPermissionRequest(@Json(name = "permissions") val permissions: List<String>)
Link copied to clipboard
data class RequestPermissionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Response(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class RingSettingsRequest(    @Json(name = "auto_cancel_timeout_ms") val autoCancelTimeoutMs: Int,     @Json(name = "incoming_call_timeout_ms") val incomingCallTimeoutMs: Int,     @Json(name = "missed_call_timeout_ms") val missedCallTimeoutMs: Int? = null)
Link copied to clipboard
data class RingSettingsResponse(    @Json(name = "auto_cancel_timeout_ms") val autoCancelTimeoutMs: Int,     @Json(name = "incoming_call_timeout_ms") val incomingCallTimeoutMs: Int,     @Json(name = "missed_call_timeout_ms") val missedCallTimeoutMs: Int)
Link copied to clipboard
data class RTMPBroadcastRequest(    @Json(name = "name") val name: String,     @Json(name = "stream_url") val streamUrl: String,     @Json(name = "quality") val quality: RTMPBroadcastRequest.Quality? = null,     @Json(name = "stream_key") val streamKey: String? = null,     @Json(name = "layout") val layout: LayoutSettingsRequest? = null)

RTMPBroadcastRequest is the payload for starting an RTMP broadcast.

Link copied to clipboard
data class RTMPIngress(@Json(name = "address") val address: String)

RTMP input settings

Link copied to clipboard
data class RTMPSettingsRequest(    @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "quality") val quality: RTMPSettingsRequest.Quality? = null)
Link copied to clipboard
data class RTMPSettingsResponse(@Json(name = "enabled") val enabled: Boolean, @Json(name = "quality") val quality: String)

RTMPSettingsResponse is the payload for RTMP settings

Link copied to clipboard
data class ScreensharingSettingsRequest(    @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null,     @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class ScreensharingSettingsResponse(    @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean,     @Json(name = "enabled") val enabled: Boolean,     @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class SDKUsageReport(@Json(name = "per_sdk_usage") val perSdkUsage: Map<String, PerSDKUsageReport>)
Link copied to clipboard
data class SDKUsageReportResponse(@Json(name = "daily") val daily: List<DailyAggregateSDKUsageReportResponse>)
Link copied to clipboard
data class SendCallEventRequest(@Json(name = "custom") val custom: Map<String, Any?>? = null)

Send a call event to the other user

Link copied to clipboard
data class SendCallEventResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class SendReactionRequest(    @Json(name = "type") val type: String,     @Json(name = "emoji_code") val emojiCode: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)
Link copied to clipboard
data class SendReactionResponse(@Json(name = "duration") val duration: String, @Json(name = "reaction") val reaction: ReactionResponse)

Basic response information

Link copied to clipboard
data class SessionSettingsRequest(@Json(name = "inactivity_timeout_seconds") val inactivityTimeoutSeconds: Int)
Link copied to clipboard
data class SessionSettingsResponse(@Json(name = "inactivity_timeout_seconds") val inactivityTimeoutSeconds: Int)
Link copied to clipboard
data class SFULocationResponse(    @Json(name = "datacenter") val datacenter: String,     @Json(name = "id") val id: String,     @Json(name = "coordinates") val coordinates: Coordinates,     @Json(name = "location") val location: Location)
Link copied to clipboard
data class SFUResponse(    @Json(name = "edge_name") val edgeName: String,     @Json(name = "url") val url: String,     @Json(name = "ws_endpoint") val wsEndpoint: String)
Link copied to clipboard
data class SortParamRequest(@Json(name = "direction") val direction: Int? = null, @Json(name = "field") val field: String? = null)
Link copied to clipboard
data class StartClosedCaptionsRequest(    @Json(name = "enable_transcription") val enableTranscription: Boolean? = null,     @Json(name = "external_storage") val externalStorage: String? = null,     @Json(name = "language") val language: String? = null)
Link copied to clipboard
data class StartClosedCaptionsResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StartHLSBroadcastingResponse(@Json(name = "duration") val duration: String, @Json(name = "playlist_url") val playlistUrl: String)

StartHLSBroadcastingResponse is the payload for starting an HLS broadcasting.

Link copied to clipboard
data class StartRecordingRequest(@Json(name = "recording_external_storage") val recordingExternalStorage: String? = null)
Link copied to clipboard
data class StartRecordingResponse(@Json(name = "duration") val duration: String)

StartRecordingResponse is the response payload for the start recording endpoint.

Link copied to clipboard
data class StartRTMPBroadcastsRequest(@Json(name = "broadcasts") val broadcasts: List<RTMPBroadcastRequest>)

StartRTMPBroadcastsRequest is the payload for starting RTMP broadcasts.

Link copied to clipboard
data class StartRTMPBroadcastsResponse(@Json(name = "duration") val duration: String)

StartRTMPBroadcastsResponse is the payload for starting an RTMP broadcast.

Link copied to clipboard
data class StartTranscriptionRequest(    @Json(name = "enable_closed_captions") val enableClosedCaptions: Boolean? = null,     @Json(name = "language") val language: String? = null,     @Json(name = "transcription_external_storage") val transcriptionExternalStorage: String? = null)
Link copied to clipboard
data class StartTranscriptionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StatsOptions(@Json(name = "reporting_interval_ms") val reportingIntervalMs: Int)
Link copied to clipboard
data class StopAllRTMPBroadcastsResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StopClosedCaptionsRequest(@Json(name = "stop_transcription") val stopTranscription: Boolean? = null)
Link copied to clipboard
data class StopClosedCaptionsResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class StopHLSBroadcastingResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class StopLiveRequest(    @Json(name = "continue_closed_caption") val continueClosedCaption: Boolean? = null,     @Json(name = "continue_hls") val continueHls: Boolean? = null,     @Json(name = "continue_recording") val continueRecording: Boolean? = null,     @Json(name = "continue_rtmp_broadcasts") val continueRtmpBroadcasts: Boolean? = null,     @Json(name = "continue_transcription") val continueTranscription: Boolean? = null)
Link copied to clipboard
data class StopLiveResponse(@Json(name = "duration") val duration: String, @Json(name = "call") val call: CallResponse)
Link copied to clipboard
data class StopRecordingResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class StopRTMPBroadcastsResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class StopTranscriptionRequest(@Json(name = "stop_closed_captions") val stopClosedCaptions: Boolean? = null)
Link copied to clipboard
data class StopTranscriptionResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class Subsession(    @Json(name = "ended_at") val endedAt: Int,     @Json(name = "joined_at") val joinedAt: Int,     @Json(name = "sfu_id") val sfuId: String,     @Json(name = "pub_sub_hint") val pubSubHint: MediaPubSubHint? = null)
Link copied to clipboard
data class TargetResolution(    @Json(name = "height") val height: Int,     @Json(name = "width") val width: Int,     @Json(name = "bitrate") val bitrate: Int? = null)
Link copied to clipboard
data class ThumbnailResponse(@Json(name = "image_url") val imageUrl: String)
Link copied to clipboard
data class ThumbnailsSettingsRequest(@Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class ThumbnailsSettingsResponse(@Json(name = "enabled") val enabled: Boolean)
Link copied to clipboard
data class TimeStats(@Json(name = "average_seconds") val averageSeconds: Float, @Json(name = "max_seconds") val maxSeconds: Float)
Link copied to clipboard
data class TranscriptionSettingsRequest(    @Json(name = "mode") val mode: TranscriptionSettingsRequest.Mode,     @Json(name = "closed_caption_mode") val closedCaptionMode: TranscriptionSettingsRequest.ClosedCaptionMode? = null,     @Json(name = "language") val language: TranscriptionSettingsRequest.Language? = null)
Link copied to clipboard
data class TranscriptionSettingsResponse(    @Json(name = "closed_caption_mode") val closedCaptionMode: TranscriptionSettingsResponse.ClosedCaptionMode,     @Json(name = "language") val language: TranscriptionSettingsResponse.Language,     @Json(name = "mode") val mode: TranscriptionSettingsResponse.Mode)
Link copied to clipboard
data class TURNAggregatedStats(@Json(name = "tcp") val tcp: Count? = null, @Json(name = "total") val total: Count? = null)
Link copied to clipboard
data class UnblockedUserEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent when a user is unblocked on a call,

Link copied to clipboard
data class UnblockUserRequest(@Json(name = "user_id") val userId: String)

UnblockUserRequest is the payload for unblocking a user.

Link copied to clipboard
data class UnblockUserResponse(@Json(name = "duration") val duration: String)

UnblockUserResponse is the payload for unblocking a user.

Link copied to clipboard
data class UnpinRequest(@Json(name = "session_id") val sessionId: String, @Json(name = "user_id") val userId: String)

UnpinRequest is the payload for unpinning a message.

Link copied to clipboard
data class UnpinResponse(@Json(name = "duration") val duration: String)

UnpinResponse is the payload for unpinning a message.

Link copied to clipboard
Link copied to clipboard
data class UpdateCallMembersRequest(    @Json(name = "remove_members") val removeMembers: List<String>? = null,     @Json(name = "update_members") val updateMembers: List<MemberRequest>? = null)

Update call members

Link copied to clipboard
data class UpdateCallMembersResponse(    @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>)

Basic response information

Link copied to clipboard
data class UpdateCallRequest(    @Json(name = "starts_at") val startsAt: OffsetDateTime? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null,     @Json(name = "settings_override") val settingsOverride: CallSettingsRequest? = null)

Request for updating a call

Link copied to clipboard
data class UpdateCallResponse(    @Json(name = "duration") val duration: String,     @Json(name = "members") val members: List<MemberResponse>,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "call") val call: CallResponse,     @Json(name = "membership") val membership: MemberResponse? = null)

Response for updating a call

Link copied to clipboard
data class UpdatedCallPermissionsEvent(    @Json(name = "call_cid") val callCid: String,     @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>,     @Json(name = "user") val user: UserResponse,     @Json(name = "type") val type: String) : VideoEvent, WSCallEvent

This event is sent to notify about permission changes for a user, clients receiving this event should update their UI accordingly

Link copied to clipboard
data class UpdateUserPermissionsRequest(    @Json(name = "user_id") val userId: String,     @Json(name = "grant_permissions") val grantPermissions: List<String>? = null,     @Json(name = "revoke_permissions") val revokePermissions: List<String>? = null)
Link copied to clipboard
data class UpdateUserPermissionsResponse(@Json(name = "duration") val duration: String)

Basic response information

Link copied to clipboard
data class UserFeedbackReport(    @Json(name = "unreported_count") val unreportedCount: Int,     @Json(name = "count_by_rating") val countByRating: Map<String, Int>)
Link copied to clipboard
data class UserFeedbackReportResponse(@Json(name = "daily") val daily: List<DailyAggregateUserFeedbackReportResponse>)
Link copied to clipboard
data class UserInfoResponse(    @Json(name = "id") val id: String,     @Json(name = "image") val image: String,     @Json(name = "name") val name: String,     @Json(name = "roles") val roles: List<String>,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap())
Link copied to clipboard
data class UserRequest(    @Json(name = "id") val id: String,     @Json(name = "image") val image: String? = null,     @Json(name = "invisible") val invisible: Boolean? = null,     @Json(name = "language") val language: String? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "custom") val custom: Map<String, Any?>? = null)

User request object

Link copied to clipboard
data class UserResponse(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "id") val id: String,     @Json(name = "language") val language: String,     @Json(name = "role") val role: String,     @Json(name = "updated_at") val updatedAt: OffsetDateTime,     @Json(name = "blocked_user_ids") val blockedUserIds: List<String>,     @Json(name = "teams") val teams: List<String>,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null,     @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null,     @Json(name = "image") val image: String? = null,     @Json(name = "last_active") val lastActive: OffsetDateTime? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null)

User response object

Link copied to clipboard
data class UserResponsePrivacyFields(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "id") val id: String,     @Json(name = "language") val language: String,     @Json(name = "role") val role: String,     @Json(name = "updated_at") val updatedAt: OffsetDateTime,     @Json(name = "blocked_user_ids") val blockedUserIds: List<String>,     @Json(name = "teams") val teams: List<String>,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null,     @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null,     @Json(name = "image") val image: String? = null,     @Json(name = "invisible") val invisible: Boolean? = null,     @Json(name = "last_active") val lastActive: OffsetDateTime? = null,     @Json(name = "name") val name: String? = null,     @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null)
Link copied to clipboard
data class UserSessionStats(    @Json(name = "freeze_duration_seconds") val freezeDurationSeconds: Int,     @Json(name = "group") val group: String,     @Json(name = "max_freeze_fraction") val maxFreezeFraction: Float,     @Json(name = "max_freezes_duration_seconds") val maxFreezesDurationSeconds: Int,     @Json(name = "min_event_ts") val minEventTs: Int,     @Json(name = "packet_loss_fraction") val packetLossFraction: Float,     @Json(name = "publisher_packet_loss_fraction") val publisherPacketLossFraction: Float,     @Json(name = "publishing_duration_seconds") val publishingDurationSeconds: Int,     @Json(name = "quality_score") val qualityScore: Float,     @Json(name = "receiving_duration_seconds") val receivingDurationSeconds: Int,     @Json(name = "session_id") val sessionId: String,     @Json(name = "total_pixels_in") val totalPixelsIn: Int,     @Json(name = "total_pixels_out") val totalPixelsOut: Int,     @Json(name = "average_connection_time") val averageConnectionTime: Float? = null,     @Json(name = "browser") val browser: String? = null,     @Json(name = "browser_version") val browserVersion: String? = null,     @Json(name = "current_ip") val currentIp: String? = null,     @Json(name = "current_sfu") val currentSfu: String? = null,     @Json(name = "device_model") val deviceModel: String? = null,     @Json(name = "device_version") val deviceVersion: String? = null,     @Json(name = "distance_to_sfu_kilometers") val distanceToSfuKilometers: Float? = null,     @Json(name = "max_fir_per_second") val maxFirPerSecond: Float? = null,     @Json(name = "max_freezes_per_second") val maxFreezesPerSecond: Float? = null,     @Json(name = "max_nack_per_second") val maxNackPerSecond: Float? = null,     @Json(name = "max_pli_per_second") val maxPliPerSecond: Float? = null,     @Json(name = "os") val os: String? = null,     @Json(name = "os_version") val osVersion: String? = null,     @Json(name = "publisher_noise_cancellation_seconds") val publisherNoiseCancellationSeconds: Float? = null,     @Json(name = "publisher_quality_limitation_fraction") val publisherQualityLimitationFraction: Float? = null,     @Json(name = "publishing_audio_codec") val publishingAudioCodec: String? = null,     @Json(name = "publishing_video_codec") val publishingVideoCodec: String? = null,     @Json(name = "receiving_audio_codec") val receivingAudioCodec: String? = null,     @Json(name = "receiving_video_codec") val receivingVideoCodec: String? = null,     @Json(name = "sdk") val sdk: String? = null,     @Json(name = "sdk_version") val sdkVersion: String? = null,     @Json(name = "subscriber_video_quality_throttled_duration_seconds") val subscriberVideoQualityThrottledDurationSeconds: Float? = null,     @Json(name = "truncated") val truncated: Boolean? = null,     @Json(name = "webrtc_version") val webrtcVersion: String? = null,     @Json(name = "published_tracks") val publishedTracks: List<PublishedTrackInfo>? = null,     @Json(name = "subsessions") val subsessions: List<Subsession>? = null,     @Json(name = "geolocation") val geolocation: GeolocationResult? = null,     @Json(name = "jitter") val jitter: TimeStats? = null,     @Json(name = "latency") val latency: TimeStats? = null,     @Json(name = "max_publishing_video_quality") val maxPublishingVideoQuality: VideoQuality? = null,     @Json(name = "max_receiving_video_quality") val maxReceivingVideoQuality: VideoQuality? = null,     @Json(name = "pub_sub_hints") val pubSubHints: MediaPubSubHint? = null,     @Json(name = "publisher_jitter") val publisherJitter: TimeStats? = null,     @Json(name = "publisher_latency") val publisherLatency: TimeStats? = null,     @Json(name = "publisher_video_quality_limitation_duration_seconds") val publisherVideoQualityLimitationDurationSeconds: Map<String, Float>? = null,     @Json(name = "subscriber_jitter") val subscriberJitter: TimeStats? = null,     @Json(name = "subscriber_latency") val subscriberLatency: TimeStats? = null,     @Json(name = "timeline") val timeline: CallTimeline? = null)
Link copied to clipboard
data class UserStats(    @Json(name = "min_event_ts") val minEventTs: Int,     @Json(name = "session_stats") val sessionStats: List<UserSessionStats>,     @Json(name = "info") val info: UserInfoResponse,     @Json(name = "rating") val rating: Int? = null)
Link copied to clipboard
data class UserUpdatedEvent(    @Json(name = "created_at") val createdAt: OffsetDateTime,     @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(),     @Json(name = "user") val user: UserResponsePrivacyFields,     @Json(name = "type") val type: String,     @Json(name = "received_at") val receivedAt: OffsetDateTime? = null) : VideoEvent

This event is sent when a user gets updated. The event contains information about the updated user.

Link copied to clipboard
data class VideoDimension(@Json(name = "height") val height: Int, @Json(name = "width") val width: Int)
Link copied to clipboard
abstract class VideoEvent
Link copied to clipboard
class VideoEventAdapter : JsonAdapter<VideoEvent>
Link copied to clipboard
data class VideoQuality(    @Json(name = "usage_type") val usageType: String? = null,     @Json(name = "resolution") val resolution: VideoDimension? = null)
Link copied to clipboard
data class VideoSettingsRequest(    @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null,     @Json(name = "camera_default_on") val cameraDefaultOn: Boolean? = null,     @Json(name = "camera_facing") val cameraFacing: VideoSettingsRequest.CameraFacing? = null,     @Json(name = "enabled") val enabled: Boolean? = null,     @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class VideoSettingsResponse(    @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean,     @Json(name = "camera_default_on") val cameraDefaultOn: Boolean,     @Json(name = "camera_facing") val cameraFacing: VideoSettingsResponse.CameraFacing,     @Json(name = "enabled") val enabled: Boolean,     @Json(name = "target_resolution") val targetResolution: TargetResolution)
Link copied to clipboard
data class WSAuthMessage(    @Json(name = "token") val token: String,     @Json(name = "user_details") val userDetails: ConnectUserDetailsRequest,     @Json(name = "products") val products: List<String>? = null)

Websocket auth message

Link copied to clipboard
data class WSAuthMessageRequest(    @Json(name = "token") val token: String,     @Json(name = "user_details") val userDetails: ConnectUserDetailsRequest) : VideoEvent
Link copied to clipboard
sealed interface WSCallEvent
Link copied to clipboard
sealed interface WSClientEvent