Apply authenticated participant moderation to a conference room
POST https://z.u1v.ru/api/v1/calls/conferences/participants/action
Apply a participant-scoped moderation action to an authenticated live
conference room for the active Zulip account.
This endpoint is intentionally narrow. It only operates on the
caller-owned live conference record already exposed through
POST /calls/recovery, and it fails closed
when the authenticated room contract does not grant management
authority.
Usage examples
The -u line implements HTTP Basic authentication.
See the Authorization header documentation for how
to get those credentials for Zulip users and bots.
curl -sSX POST https://z.u1v.ru/api/v1/calls/conferences/participants/action \
-u EMAIL_ADDRESS:API_KEY \
--data-urlencode owner_user_id=42 \
--data-urlencode room_id=room-1 \
--data-urlencode participant_user_id=17 \
--data-urlencode action=mute
Parameters
owner_user_id string required
Example: "42"
Stringified Zulip user ID that owns the authenticated live
conference record.
room_id string required
Example: "room-1"
Authenticated conference room identifier.
participant_user_id integer required
Example: 17
Zulip user ID of the participant to moderate.
action string required
Example: "mute"
Participant moderation action to apply.
Must be one of: "mute", "unmute", "remove", "grant_moderator", "revoke_moderator", "raise_hand", "lower_hand", "allow_to_speak", "revoke_allow_to_speak", "react_thumbs_up", "react_celebrate", "react_clap", "clear_reaction".
Response
Return values
Example response(s)
Changes: As of Zulip 7.0 (feature level 167), if any
parameters sent in the request are not supported by this
endpoint, a successful JSON response will include an
ignored_parameters_unsupported array.
A typical successful JSON response may look like:
{
"conference_presence": {
"appCallId": "conference-app-call-1",
"avatarUrl": null,
"conversation": {
"kind": "topic",
"streamId": 9,
"title": "General > Launch plan",
"topic": "Launch plan"
},
"displayName": "General > Launch plan",
"isResumable": true,
"mediaType": "audio",
"metadata": {
"conversation_kind": "topic",
"conversation_stream_id": "9",
"conversation_topic": "Launch plan",
"muted_user_ids": "12",
"participant_user_ids": "10,12"
},
"participantCount": 2,
"participants": [
{
"avatarUrl": null,
"displayName": "King Hamlet",
"hasVideo": true,
"isActiveSpeaker": false,
"isMuted": false,
"isScreenSharing": false,
"isSelf": true,
"isSpeaking": false,
"metadata": {},
"userId": 10
},
{
"avatarUrl": null,
"displayName": "Othello, the Moor of Venice",
"hasVideo": true,
"isActiveSpeaker": true,
"isMuted": true,
"isScreenSharing": true,
"isSelf": false,
"isSpeaking": true,
"metadata": {},
"userId": 12
}
],
"roomContract": {
"adminUserIds": [
10,
12
],
"audioTopology": "confbridge_mixed",
"canChangeJoinMuted": true,
"canChangeMessagesEnabled": true,
"canInvite": true,
"canManage": true,
"canShare": true,
"joinMuted": true,
"messagesEnabled": false,
"participantGainSemantic": "participant_global_speaker_gain",
"shareUrl": "https://chat.example/calls/room-1"
},
"roomId": "room-1"
},
"msg": "",
"result": "success"
}