How to differentiate 429 HTTP status code error incase of Daily limit and Concurrent request error for CREATE MEETING API

API Endpoint(s) and/or Zoom API Event(s)
Link the API endpoint(s) and/orZoom API Event(s) you’re working with to help give context.

https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/meetingCreate

Description
Details on your question, workflow or the problem you’re trying to solve.

I wanted to handle Exception for Create Meeting API with “Daily Limit” Error and “Concurrent Request” Error differently in my code. Since both returns status code 429 , how can I differentiate it.
As per Rate limit(Light),
https://marketplace.zoom.us/docs/api-reference/rate-limits/#limits-to-concurrent-requests
I have created more than 60 meetings per second, but still I didn’t get concurrent error. I have Business Account Type .

Error?
The full error message or issue you are running into, where applicable.

For Daily Limit, i see error message : “You have exceeded the daily rate limit (100) of Meeting Create/Update API requests permitted for this particular user. You may resume these requests at GMT 00:00:00.”
But am unable to recreate concurrent request error to know the error message.

How To Reproduce
Steps to reproduce the behavior:
1. Request URL / Headers (without credentials or sensitive info like emails, uuid, etc.) / Body
2. Authentication method or app type
3. Any errors

method: ‘POST’,
uri: https://api.zoom.us/v2/users/me/meetings,
body : {
“topic”:“POC meeting 11”,
“type”:2,
“start_time”:“2023-01-10T09:00:10Z”,
“duration”:“30”,
“settings”:{
“use_pmi”:“false”,
“default_password”:“false”
}
}
headers: {
Authorization: ‘Bearer ${this.accessToken}’
Accept:‘/
}

@anusha.g.gudupally Hope you will be fine.

What plan do you have with Zoom?

/v2/users/me/meetings (POST) have a Medium rate limit which means

- 20 req/sec with Pro Plan
- 60 req/sec with Bus+

Once you exceed that limit you will get a 429 HTTP status code in response.

To overcome that problem I described the recursive request logic with timeout here is → How to Create Zoom Meeting - (REST API) & here is How to build recursive logic with timeout?

If still have any queries please share. Thanks

Thanks Naeem for your reply.

My account is Business type.
My question was how do we differentiate ‘Daily Limit error’ and ‘concurrent request error’. Since both of them will throw 429 error code.
In my case I wanted to implement below way:
For Daily Limit error, I have to retry create meeting with different user.
For Concurrent Request error, I have to retry after 120s using retry-after header.

So to implement this, I need a way to differentiate the error type.

Can anyone post error message, if have got any concurrent error.

Welcome & Thanks.

If you have already handled :point_up_2: then you will only get the remaining daily rate limit 429 status code.

I said I have to handle such way. I have not done…
I have not got concurrent request error, even after creating 80 meetings per second. Am just seeing daily limit error only

@anusha.g.gudupally To differentiate b/w daily and concurrent limit you have two options

  1. You can place a text filter on the response.message.includes("You have exceeded the daily rate limit (100)")

:point_down:

  1. You have response header x-ratelimit-type: 'Daily-limit'

:point_down:

→ Here is the x-ratelimit-type:'QPS' [Queries Per Second (QPS )] concurrent rate limit header in the response with 429 HTTP status code

:point_down:

If still have any queries please ask. Thanks

Thanks for info.
there is no information of x-ratelimit-type:‘QPS’ in Zoom…

@anusha.g.gudupally Welcome & Thanks.

To differentiate between the “Daily Limit” error and the “Concurrent Request” error when using the Zoom Create Meeting API, you can check the response message.

When you exceed the daily limit, the response message will be: “You have exceeded the daily rate limit (100) of Meeting Create/Update API requests permitted for this particular user. You may resume these requests at GMT 00:00:00.”

When you exceed the concurrent request limit, the response message will be: “The concurrent rate limit has been exceeded for this user/app. Please try again later.”

To reproduce the “Concurrent Request” error, you can try creating more than 30 meetings per second as per the Rate limit (Light) documentation you mentioned. If you are still not able to reproduce the error, it could be because your account type allows for a higher concurrent request limit.

Regards,
Rachel Gomez