Introduction
Using Zoom APIs
Pagination
Error Definitions
Rate Limits
Testing Zoom APIs with Postman
Accounts
Archiving
Billing
Chat Channels
Chat Channels (Account-level)
Chat Messages
Chatbot Messages
Contacts
Cloud Recording
Dashboards
Devices
Groups
IM Chat
IM Groups
Meetings
PAC
Reports
Roles
Rooms
Rooms Account
Rooms Location
SIP Phone
TrackingField
TSP
Users
Webinars
Rooms Devices
SIP Connected Audio
Deprecated API Endpoints
Phone
Phone Auto Receptionists
Phone Blocked List
Phone Call Queues
Phone Devices
Phone Reports
Phone Shared Line Groups
Phone Site
Common Area Phones
Phone Dashboard
Archiving Events
Account Events
App Events
Billing Events
Chat Message Events
Chat Channel Events
Chatbot Events
Meeting Events
Phone Events
Recording Events
TSP Events
User Events
Webinar Events
Zoom Room Events
Deprecated API Endpoints

Rate limits

Rate limits define the maximum number of requests which can be made by a single account in a given period of time. When a limit is exceeded, an API request will fail with an HTTP 429 status code returned.

Rate limits are applied at the account level, and are shared by users for all apps installed on the account.

Rate limits are applied based on your account plan, with increased limits available for all Business, Enterprise, Education, and Partner accounts.

APIs are grouped by Request Type, with unique rate limits for each. A “Rate Limit Label” is available on the API Reference for each endpoint.

Some APIs may have special rate limits at a the user-level (but not many do). The main example of this is the Meetings API, outlined below.

Some APIs have limits on concurrent operations performed on a single resource, for example: simultaneous updates to a single user’s settings.

Note: Zoom Phone APIs have unique rate limits applied as outlined below.

Rate limits by account type

Rate limits are applied based on the account plan: Pro, and Business+ (Business, Education, Enterprise & Partners). The following table outlines limits applied to APIs by type for each account plan.

Pro Accounts Business+
Light APIs
Create, read, update, and delete a single resource, e.g. Get A User.
30 req. / second 80 req. / second
Medium APIs
Create, read, and update multiple resources at once, and Chat APIs, e.g. List Group Members, Send a Chat Message.
20 req. / second 60 req. / second
Heavy APIs
Report APIs and most Dashboard APIs, e.g. Get Meeting Detail Report.
10 req. / second

Daily limit of 30,000 requests/day shared by heavy & resource-intensive APIs.
40 req. / second

Daily limit of 60,000 requests/day shared by heavy & resource-intensive APIs.
Resource-intensive APIs
Dashboard APIs with the following endpoints:
GET /v2/metrics/meetings
GET /v2/metrics/webinars
GET /v2/metrics/zoomrooms
GET /v2/metrics/im
10 req. / min.

Daily limit of 30,000 requests/day shared by heavy & resource-intensive APIs.
20 req. / min.

Daily limit of 60,000 requests/day shared by heavy & resource-intensive APIs.

Daily meeting create/update requests

A single user may only use up to 100 requests per day (UTC) to create, update, or delete meetings. This 24-hour period resets at 00:00 UTC, not the user or account’s local timezone.

This rate limit is tracked at the User ID and applies to all Meeting IDs they host; however, it is not shared across an account.

Example 1: User sends 100 requests to create a meeting. On the 101st request to create, update, or delete a meeting within 24 hours, a 429 rate limit error would be returned. At 00:00 UTC, the user may resume creating/updating meetings.

Example 2: User sends 50 POST requests to create meetings. The user then sends PATCH requests to update all 50 meetings. The user then attempts to delete all 50 meetings but may not. Any request after the first 100 will return a 429 rate limit error until 00:00 UTC.

Zoom Phone APIs

Zoom Phone APIs are also rate limited by request type and applied based on the account plan.

Pro Accounts Business+ *
Light APIs
Create, read, update, and delete a single Phone resource, e.g. Create a Call Queue.
20 req. / second 40 req. / second
Medium APIs
Create, read, and update multiple resources at once, e.g. List Phone Numbers
10 req. / second 20 req. / second
Heavy APIs
Get User's Call Logs and Get Account's Call Logs APIs.
5 req. / second

Daily limit of 30,000 requests/day shared by heavy & resource-intensive APIs.
10 req. / second

Daily limit of 30,000 requests/day shared by heavy & resource-intensive APIs.

Limits to concurrent requests

If concurrent requests are being made on a single resource e.g. concurrent GET/POST/PATCH/PUT/DELETE requests to a single user ID, the request may fail with a 429 HTTP status code and error message.

These concurrent rate limit errors will occur in very rare cases, such as when your app makes multiple requests in a short period of time to disassociate a user from your account. In this scenario, you would receive an error message like:

Too many concurrent requests. A request to disassociate this user has already been made.

Best practices for handling errors

The best practice to handle rate limits is to handle “429 Too Many Requests” status codes and build in retry mechanisms for failed requests and to reduce the frequency of requests.

For APIs which have daily rate limits, a Retry-After header will be sent with the response indicating when you will be able to make the next request. The table below lists errors you may encounter:

Limit Type HTTP Status Error Message
Per second limit 429 You have reached the maximum per-second rate limit for this API. Try again later.

Example response header:

X-RateLimit-Category: Light
X-RateLimit-Type: QPS
Daily limit 429 You have reached the maximum daily rate limit for this API. Refer to the response header for details on when you can make another request.

Example Response Header:

X-RateLimit-Category: Heavy
X-RateLimit-Type: Daily-limit
X-RateLimit-Limit: 30000
X-RateLimit-Remaining: 0
Retry-After: 2020-05-31T00:00:00Z

Cache responses wherever possible instead of frequently making the same request. We also highly recommend you use Webhooks to subscribe to data change events instead of polling for changes. For example, instead of polling for a user’s meetings, you could use webhooks to subscribe to events for new, updated, and deleted meetings. Learn more from the Webhook Reference.

The Zoom API uses rate limits to ensure API request traffic can be handled efficiently. We may alter these limits if required.