Official Zoom Desktop client API for dedicated mute/unmute button

I am exploring creating a dedicated mute (and call status) button (on a custom keyboard) similar to the interface on my headset cable (green light if in zoom call, red light if on mute, button to toggle mute). The mute status of the headset syncs with the app which is a relatively new feature.

I am hoping to be able to interact with the official Zoom Desktop Cilent. I see a bunch of “automation” centric solutions involving window and control scraping, but am looking for an API exposed by the Zoom Desktop application. The “sync” of the mute button on the headset implies there may be.

I have seen a few questions about accessing Mute/Unmute, but they tend to focus on webhook or REST APIs. I am aware if zoommtg:// protocol, but seems that is one way with a focus on starting/joining meetings.

There was a reference to but I was unable to find an equivalent in the MacOS SDK. I will admit, I have not done much in xcode before.

Additional context
Referred to this forum from Desktop client API for dedicated mute/unmute button

Hi @chaseadam.meta,

Thanks for the post. Unfortunately, the official Zoom desktop client does not support external interaction like the way you are mentioning.

Thank you.

Just to clarify, the SDK supports mute and unmute actions, but no ability to get current mute status, correct? Is it possible to register a listener to be notified when mute status changes?

The use case here is to externalize control of the zoom call to a hardware device like the Elgato Stream Deck. The Zoom client usability suffers greatly in a remote work setup where users must operate Citrix or other remote desktop. Constantly hunting down the client when you are using Citrix or similar remote desktop application just adds friction to the process. Being able to control the mute status is obviously useful but trusting the current status indicated in the hardware requires the ability to obtain it.


Hi @bobrich,

Thanks for the reply. If you would like to get the mute status, you can leverage the following callback:

 * @brief Notification of user's audio status changes. 
 * @param userAudioStatusArray An array contains ZoomSDKUserAudioStauts elements of each user's audio status.
- (void)onUserAudioStatusChange:(NSArray*)userAudioStatusArray;

Hope this helps. Thank you.

Awesome!!! Thank you Carson!

1 Like

It’s really great to see that there are still people who are very passionate about their job and want to improve everything.

1 Like

Thank you for mentioning this! @severund.

This post was flagged by the community and is temporarily hidden.