Start zoom meeting programmatically from a console app

I’m attempting to automatically start my zoom meeting from a console application. I went through several articles and performed the following:

  1. Create a server-server oauth app and got the AccountId, ClientId, ClientSecret for my meeting.
  2. Make an API request using client Id/secret to get the bearer token
  3. Make a request to read the meeting by Id using the beaer token - got the start URL and zak
  4. From a C# console app, invoke Process.Start and set FileName to "zoommtg://zoom.us/start?confno={meetingId}&zak={zak}
  5. Before running the program, I made sure I’m signed in to the Zoom Workplace on my cpmputer (always signed in), (always start zoom when computer starts), (allow users to join before the host), (allow passcode), allow OBS virtual camera.
  6. Test the meeting manually and ensure OBS integration is working.
  7. Start the console app. Meeting never starts.

Console Application code to start the meeting (never worked):

var launchUrl = $"zoommtg://zoom.us/start?confno={meetingId}&zak={zakToken}&zc=0";

                Process.Start(new ProcessStartInfo
                {
                    FileName = launchUrl,
                    UseShellExecute = true,
                });

There is no error when the code runs, but the meeting never starts.

I also attempted (and failed) to start the meeting from command line as follows:

start “” “zoommtg://zoom.us/start?confno={meetingId}&zak={zakToken}&zc=0”

I also ran this from the command line and no success:

zoom.exe --url="zoommtg://zoom.us/start?confno={meetingId}&zak={zakToken}

Please help how I can get the console app to start the meeting programmatically. What am I missing?

Thank you
J

Try using zoomus://

Additionally: Try generating a URL and launching Chrome to open it (then, obviously, close your Chrome window after a delay)

This is some JavaScript that might work. You could easily make a modified version of it in C# to get the ZAK token etc., from the “start” URL:

// Converts link like "https://zoom.us/x/MEETING_ID?pwd=PWD"
const generateZoomLauncherURL = (startURL: string) => {
  const urlObj = new URL(startUrl);
  const zakToken = urlObj.searchParams.get("zak");
  const pathSegments = urlObj.pathname.split("/");
  return `zoomus://${urlObj.host}/join?action=join&confno=${
    pathSegments[pathSegments.length - 1]
  }&zak=${zakToken}&zc=0`;
};

You’d do something like (again, JS, sorry)

const launcherUrl = generateZoomLauncherURL(startUrl);

Then run something like chrome.exe {launcherUrl}

I’m using C# to get the bearer token, then calling the ZAK endpoint so I can feed the zak token for the launch URL. No matter what I do, this launch URL “zoommtg://zoom.us/start?confno={meetingId}&zak={zakToken}&zc=0” does not want to start the meeting.

As mentioned in my post, I’m signed into the Zoom Workspace on the computer with my sign-in credentials. The C# automation code is also using my credentials (client Id and secret) to get the ZAK token. Still, the zoommtg:// command would not start the meeting programmatically. Something’s a miss, idk if its the account setup or what. I hope the developer team can assist with this issue. Thank you.

For grins and giggles, try:

zoomus://zoom.us/start?confno={meetingId}&zak={zakToken}&zc=0”

Hey @Jyoti
This is expected; meetings can not be started programmatically
Thanks for chiming in @alexm

Hi @elisa.zoom, most everyone, including Chat GPT, seem to think automation allows you to start zoom meetings programmatically. I understand if its coming from you, a zoom staff member, then my automation task is not going to succeed. Can you please recommend another approach? I’m simply looking to start a recurring zoom meeting without user intervention. Do we need to upgrade our account, etc?

Thank you.

Hey @Jyoti
No, you do not need to upgrade your account.
We do not support starting meetings programmatically, someone will need to trigger the start meeting URL to be able to launch the meeting

Hi @Jyoti

Despite this not being officially supported, I’d suggest using zoomus:// instead of zoommtg:// in your script. I am able to launch Zoom meetings that way from macOS terminal.

If launching from the command line isn’t working for you, try launching Chrome with the url (once again, replacing zoommtg with zoomus) and waiting about 10 seconds.