Programmatic Zoom webhook management with event subscriptions API endpoints
Building event-driven applications on the Zoom developer platform enables powerful real-time integrations,enhancing everything from workflow automation to live notifications. Managing webhook subscriptions across multiple regions and accounts can be complex, but now Zoom provides API endpoints to programmatically manage event subscriptions and better tailor them to your needs.
The challenge: managing webhooks at scale
In a multi-tenant SaaS platform that integrates with Zoom on behalf of hundreds of global customers, each tenant has different needs:
- Different event types (e.g., meetings, recordings, webinars)
- Unique webhook endpoints per customer
- Regional compliance requirements
Previously, webhook subscriptions were configured at the app level, affecting all users equally. There was no way to customize events per user or account, making granular control very challenging.
The solution: Zoom’s event subscription API endpoints
Zoom now offers API endpoints that let developers programmatically manage webhook subscriptions on a per-user or per-account basis. This offers key benefits such as:
- Granular delivery: Send specific events only to the users or accounts that need them
- Regional flexibility: Manage subscriptions differently by region or compliance requirement
- Scalability: Handle thousands of users without manual setup
API capabilities
With the event subscription endpoints, developers can:
- Create an event subscription
- Subscribe users or accounts to an event subscription
- Unsubscribe users or accounts from an event subscription
- Delete an event subscription
- Get user or account event subscription
This level of control enables reliable automation, reduces manual error, and supports high-scale integrations.
Quick start: create and subscribe to an event subscription with cURL
To authenticate API requests, use a General OAuth app type and obtain an access token via the client credentials grant type.
curl --location --request POST 'https://zoom.us/oauth/token?grant_type=client_credentials' \
--header 'Authorization: Basic <YOUR_BASE64_ENCODED_CREDENTIALS>'
The basic authorization header is your Client ID and Client Secret with a colon : in between, Base64 Encoded.
Note: The required scopes to use these event subscription API endpoints do not need to be manually selected during the app build process. They are automatically granted when using the Client Credentials Grant flow with a General OAuth app.
This returns an access_token with the required scopes to manage webhook subscriptions. Use this token as a bearer token in the authorization header of subsequent API calls.
{
"access_token": "eyJzb20TNhIT_106eEK3dquTjMyGsKZUgLdOA...",
"token_type": "bearer",
"expires_in": 3600,
"scope": "marketplace:delete:event_subscription marketplace:read:list_event_subscriptions marketplace:update:event_subscription marketplace:write:event_subscription marketplace:write:websocket_connection",
"api_url": "https://api.zoom.us"
}
To programmatically manage event subscriptions:
- Create an event subscription
curl --request POST \
--url https://api.zoom.us/v2/marketplace/app/event_subscription \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"events": ["meeting.created"],
"event_subscription_name": "Example Event Subscription",
"event_webhook_url": "https://www.example.com",
"user_ids": [
"_8KG7DeoRU2xIsDSY9ed2Q",
"90KG7DeoRU2xIsDSY9edwe"
],
"subscription_scope": "user",
"account_id": "pvg3UAgpRlyTDW-9sIpKcw"
}'
Response:
{
"event_subscription_id": "0ZAaJY4dQ52BbwI9PArBLQ"
}
- Subscribe users or accounts to event subscription
curl --request PATCH \
--url https://api.zoom.us/v2/marketplace/app/event_subscription/0ZAaJY4dQ52BbwI9PArBLQ \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"user_ids": [
"_8KG7DeoRU2xIsDSY9ed2Q",
"90KG7DeoRU2xIsDSY9edwe"
],
"account_id": "5AATFjiUS0yEnELIMzQO4g"
}'
You can also use the API to unsubscribe users or accounts from an event subscription, delete subscriptions, or get current subscriptions.
Combined with the newly enhanced get webhook logs endpoint, developers can get full visibility into:
- Delivery success/failure
- Retry attempts
- Error tracking
This makes it easier to build production-grade, event-driven integrations that are scalable and easy to debug.
Multi-tenant webhook management with Zoom is easier than ever
Zoom’s event subscription endpoints give you the tools to build dynamic, personalized, and scalable webhook integrations. Whether you're building for one customer or for multiple, these endpoints help you:
- Cut down on manual setup
- Improve regional and customer-specific flexibility
- Reduce integration errors Start integrating these endpoints into your codebase and upgrade your data management process toward more streamlined webhook management.