429 - Too Many requests error

I am calling the Zoom API to remove a user account and I get a 429 in response. This happens when only about 4 calls have been made prior to getting this error. 100 calls have been made in the past 2 hours.

{StatusCode: 429, ReasonPhrase: ‘’, Version: 1.1, Content:

JWT

DELETE api.zoom.us/v2/users/stevewash@churchservicemail.org

Steps to reproduce the behavior:

  1. Create a user account via the API
  2. Update the settings on the account via API.
  3. Remove the user account. Some of the time this works. If this works then
  4. Repeat steps 1-3 and then we get the 429 error.

Hi @stevewash,

Are you making these calls all around the same time? In addition to our rate limits outlined here, if you make too many requests in a short period of time, you can run into a 429 error as well. Can you try spacing out your requests a bit and see if that helps?

Let me know—thanks!
Will

HI Will,

How much time should I give between calls? I have run this in the debugger as well and have given several seconds between calls.

Here are the calls that I make and the time. This is from the call log on the marketplace site.

Thanks, Steve

Hey @stevewash,

I’m not seeing anything attached here. Can you share the call times again?

Thanks,
Will

Here is the entire set of calls that we make until we get the error.

03:06:29 PM Apr 20, 2021 429 Delete users/
03:06:20 PM Apr 20, 2021 204 Patch users//settings
03:06:20 PM Apr 20, 2021 204 Patch users/
03:06:19 PM Apr 20, 2021 200 Get users/
03:06:15 PM Apr 20, 2021 201 Post users
03:06:15 PM Apr 20, 2021 404 Get users/
03:05:23 PM Apr 20, 2021 204 Delete users/
03:05:05 PM Apr 20, 2021 204 Patch users//settings
03:05:04 PM Apr 20, 2021 204 Patch users/
03:05:04 PM Apr 20, 2021 200 Get users/
03:04:58 PM Apr 20, 2021 201 Post users
03:04:57 PM Apr 20, 2021 404 Get users/

Hi @stevewash,

Thanks for sharing these details. Based on the timeline of events logged here, it does seem possible that this is a result of too many requests within a short amount of time. How are you running these requests? Manually or via a script?

Are you performing other actions on your account under different endpoints as well? Keep in mind that your API rate limit/quota is shared across endpoints—so if you’re calling other Medium category endpoints in addition to Update User Settings, etc., these will all count towards your rate limits.

Let me know if this might be the case—thanks,
Will

There are no other services running. This is being run from code.

Hi @stevewash,

Thanks for confirming—are you still running into these 429 errors? Did adding additional space in between your calls (perhaps an additional few seconds) have an effect?

Thanks,
Will

I am still running into the 429 errors. Sometimes I have to wait up to 10 minutes before I can call the delete call again before it will work. That seems much too long of a wait.

Thanks, Steve

Hi @stevewash,

Thank you for confirming—I agree that doesn’t sound right. Can you please share your most recent examples with me at developersupport@zoom.us? Please include the timestamps, and the full request URLs. We will further investigate this for you.

Thanks,
Will

We’re also running into unexpected 429 errors being returned from the Zoom API. This is happening when we send multiple (~3) concurrent requests to /users/me/recordings and only began happening about a week ago.

Hey @morgs.dovetail,

What method are you using when you call the API (GET, POST, PATCH, DELETE)? Please share the full response that you’re seeing with the 429 error as well as any relevant headers. I’ll use that to debug the issue.

You can also find our guide on concurrent requests to be useful:

Thanks,
Max

02:19:07 PM Apr 29, 2021 404 BASE_URL/users/[REDACTED]@gmail.com

{

“endpoint”: “BASE_URL/users/[REDACTED]@gmail.com”,

“response_headers”: [

“Set-Cookie: zm_aid=”"; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly"

],

“date_time”: “2021-04-29 14:19:07”,

"method": “GET”,

“request_body”: “N/A”,

“response”: {

“code”: 1001,

“message”: “User does not exist: [REDACTED]@gmail.com.”

},

“request_headers”: [

“authorization: ******”,

“connection: close”

],

“request_params”: [

],

“http_status”: “404”

}

I am unable to post the entire set of calls because I get blocked. It says I am limited to 2 urls in the post.

Hey @stevewash,

Thank you for providing more information. It looks like the user in question is on their own account and hasn’t used the Zoom Marketplace before. This would indicate that they aren’t under the same credentials as the ones used to make this request.

I’ll note that the Get a User API will only return users that were created under the same account as the credentials. If you’re using JWT or an unpublished OAuth app, this means that the users will need to be created under your account.

Let me know if that helps.

Thanks,
Max