Creating/Hosting concurrent meetings through API (Server-to-Server App)

Currently, I’m using Server-to-Server App’s Credentials (Account ID, Client ID and Client Secret) to get my Bearer access token and to connect to Zoom API:

// Server-to-Server App's Credentials
const accountId = 'asLtmaTbqk...';
const clientId = 'oE_OzyRAWK...';
const clientSecret = '2a0GjdyXtZ5Va0...';

 async createZoomMeeting(subject: string, startTime: Date) {
  const authData = `${clientId}:${clientSecret}`;

  // First, I get my access_token through my Server-to-Server App
  const access_token = await axios.post<ZoomServerTokenResponse>(
   `https://zoom.us/oauth/token?grant_type=account_credentials&account_id=${accountId}`,
   undefined,
   {
    headers: {
     Authorization: `Basic ${base64Encode(authData)}`,
    },
   },
  );

  // And then using that access_token I'm creating a meeting through Zoom's API
  const response = await axios.post<CreateZoomMeetingResponse.Root>(
   'https://api.zoom.us/v2/users/me/meetings/',
   createZoomMeetingRequest(startTime, subject),
   {
    headers: {
     Authorization: `Bearer ${access_token }`,
    },
   },
  );
  return response.data;
 }
}

And this works fine, as long as a user that created this Server-to-Server app hosts one meeting at a time. But, when I want to host 2 or more meetings concurrently (at the same time), I can’t, and that is Zoom’s restriction and I’m fully aware of it.

But, today I bought a Pro account subscription and created 9 Basic users (with no licensed plan) under this Pro account.

‎
What I want to achieve:
I would like to create a code that will somehow iterate through those users’ credentials (or their App credentials), check if a user currently has a meeting running as a host, if it has, skip to next user, and if it doesn’t - create and host a meeting.

My questions are:

  1. Can those multiple Basic users somehow use the same one Server-to-Server app to get their Bearer access_token to access Zoom’s API and create a meeting? (This post from 2022. denies that if I understood it correctly, but maybe something changed since 2022.)
  2. If first question’s answer is no, should I then create a Server-to-Server App on every of those 9 accounts and generate the Bearer access token through these apps? Or maybe there’s a better way to achieve this?
  3. What’s the best way to check if a user already has a hosting meeting running at the moment? (I’m thinking about Event Subscriptions (Webhooks) maybe?)

‎
If any of you achieved similar behaviour like this, please let me know in comments or link me a post/s that will help me achieve this.

Hi @PhasedConnect_dev
Thanks for reaching out to us!
I am happy to help here!

To answer your questions:

Can those multiple Basic users somehow use the same one Server-to-Server app to get their Bearer access_token to access Zoom’s API and create a meeting? (This post 1 from 2022. denies that if I understood it correctly, but maybe something changed since 2022.)
Yes, you can use the same S2S app to get an access token and create a meeting for each user.

You could check the User presence status using the Get a user presence status endpoint

Or you could also set up a webhook event that will let you know whenever the users presence status changes