Raise "Daily meeting create and update requests" rate limit for some accounts

We are a coaching company, and we teach classes to our customers on how to be coaches. We teach these classes over zoom and we typically teach several hundred classes per semester. We create the classes in a few large batches before the semester starts and then later on assign teaching coaches to the classes.

Currently for zoom, there is a rate limit of 100 create and update meeting requests per day, per user account. Before, we used to create the classes number a master account, and then later reassign the zoom meeting to the coach once the coach was decided. However, this caused us problems during the assignment, because we would often need to reassign more than 100 coaches in a single day and/or we would try to create more than 100 zoom meetings for classes in a single day.

Our alternative solution was to only create the zoom meeting after the the coach had been decided. However, this solution has several problems with it:

  • We don’t know the zoom number until later in the process, after the coach has been decided. A few of our students like to know the zoom url far in advance of the start of the class, before we’ve actually assigned the coach.
  • Just due to the way that zoom API permissions work, if we have to reassign a class to a new coach, the permission setting is incredibly cumbersome, as there are (it seems) 4 users involved:
  1. The account that holds the API key (that we are using to call the API).
  2. The current host that we are changing from
  3. The target host that we are changing to
  4. A fourth user account called “assistant” that seems poorly documented in the API. In the meetings API, it is called “assistant_id”. But this is the account that the meeting was created under initially, by my testing. The API describes it as “The ID of the user who scheduled this meeting on behalf of the host.”, but that does not seem strictly true – instead it seems to be whoever created the meeting initially.

So, if we switch a class from Coach 1 to Coach 2, and then later assign it from Coach 2 to Coach 3, we have to be mindful of not only the current host and the new host, but also the host that the meeting was originally created under.

To do this setting, we essentially need to make all of the above 4 users are marked as assistants for eachother, which means that we need to first query for the assitant_id, and then make around 12 API calls to set each of the 4 users as assistants to the other 3. Then, we make our call to update our meeting. Then finally, we make another set of around 8 API calls to reset the permissions back to the way they were.

It works, but it is slow, cumbersome, and the resulting code is very confusing (thankfully we don’t change our teaching coaches too often). It also means that we can’t determine the zoom URL until after we’ve decided on the teaching coach.

What would be ideal, would be if there was a way for at least certain types of accounts (for example, we have enterprise accounts) to have the rate limit as a settable option from the admin panel – for example, to allow administrative users to create or update more than 100 meetings in a given day. Or, if that wasn’t an option, if we could apply to zoom to raise the rate limit for a particular user account, that would also work. For example, AWS has a limit on email sending from EC2 servers, but you are allowed to appeal to them to raise the limit for a particular server. It would be great if zoom had such an appeal process.