{"openapi":"3.0.0","info":{"title":"Marketplace","description":"The Marketplace APIs allow developers to access data related to their app and its usage in the marketplace.","termsOfService":"https://zoom.us/docs/en-us/zoom_api_license_and_tou.html","contact":{"name":"Zoom Developers","url":"https://developer.zoom.us/"},"version":"2"},"externalDocs":{"description":"Find out more about Swagger","url":"https://swagger.io"},"servers":[{"url":"https://api.zoom.us/v2"}],"paths":{"/app/notifications":{"post":{"tags":["App"],"summary":"Send app notifications","description":"Send app notifications to the Zoom Activity Center. (Note: This API endpoint only supports OAuth 2.0.)\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `app:notification:read`,`app:notification:write`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:notifications`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Sendappnotifications","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"notification_id":{"type":"string","description":"App-generated identifier.","example":"0HTc4gWHRSCef82_KlfCOQ"},"message":{"type":"object","properties":{"text":{"type":"string","description":"App notification content.","example":"hello, world!"}},"description":"Message object, including text field"},"user_id":{"type":"string","description":"The user's unique identifier.","example":"uGjCIsQsQ_KKW20xAkiHyw"}}}}}},"responses":{"202":{"description":"Success"},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `400` <br>\n Invalid parameter: message <br>\n**Error Code:** `400` <br>\n Invalid parameter: text <br>\n**Error Code:** `400` <br>\n Invalid parameter: user_id <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `403` <br>\n Authenticated user has not permitted access to the targeted resource. <br>\n**Error Code:** `403` <br>\n App does not support notification feature. <br>\n**Error Code:** `403` <br>\n Account does not support notification feature. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "},"500":{"description":"**HTTP Status Code:** `500` <br>\n Internal Server Error  \n\n **Error Code:** `500` <br>\n Notification request sending failed. <br>\n"}},"security":[{"openapi_oauth":["app:notification:read","app:notification:write","marketplace:write:notifications"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["app:notification:read","app:notification:write"],"x-granular-scopes":["marketplace:write:notifications"]}}},"/marketplace/app/custom_fields":{"get":{"tags":["App"],"summary":"Get user's custom field values","description":"Get custom field values for user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_custom_fields:read`,`marketplace_custom_fields:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:custom_fields:admin`,`marketplace:read:custom_fields`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"getCustomFieldValues","responses":{"200":{"description":"Returns app-level custom field values configured by the user. \nDoes not return any user-configured passwords.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"field_id":{"type":"string","description":"Field ID: The values of this field are used as dynamic variables","example":"city_name"},"type":{"type":"string","description":"Type of values","example":"plain_text_input","enum":["plain_text_input","radio_buttons","checkboxes","select","fields_group","datepicker"]},"value":{"type":"string","description":"User defined custom field values","example":"San Jose"}},"description":"Custom field values"}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1001` <br>\n Invalid user <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `1500` <br>\n Invalid token <br>\n"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1601` <br>\n Authorization Error <br>\n**Error Code:** `1403` <br>\n Insufficient permissions <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n app is not found <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_custom_fields:read","marketplace_custom_fields:read:admin","marketplace:read:custom_fields:admin","marketplace:read:custom_fields"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_custom_fields:read","marketplace_custom_fields:read:admin"],"x-granular-scopes":["marketplace:read:custom_fields:admin","marketplace:read:custom_fields"]}}},"/marketplace/app/event_subscription":{"get":{"tags":["App"],"summary":"Get user or account event subscription","description":"Returns event subscriptions for users or accounts.\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserEventSubscriptions","parameters":[{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"type":"number","example":30}},{"name":"next_page_token","in":"query","description":"The next page token paginates through a large set of results. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"user_id","in":"query","description":" The user ID.","required":true,"schema":{"type":"string","example":"3W35hpuuRqeuC8U8Jx8w7A"}},{"name":"subscription_scope","in":"query","description":"The app event subscription's scope.\n* `user` &mdash; The app event subscription is for specific users.\n* `account` &mdash; The app event subscription is for all users in the account.\n* `master_account` &mdash; The app event subscription is for all users in the master account.\n* `team` &mdash; The app event subscription is for a team in the account.\n* `group` &mdash; The app event subscription is for specific user groups in the account.","required":false,"schema":{"type":"string","example":"user","enum":["user","account","master_account","team","group"]}},{"name":"account_id","in":"query","description":" The account ID.","required":true,"schema":{"type":"string","example":"pvg3UAgpRlyTDW-9sIpKcw"}},{"name":"team_id","in":"query","description":"The team ID.","required":false,"schema":{"type":"string","example":"JvOmav04Qf-BALiTESBQXw"}},{"name":"user_group_id","in":"query","description":"The user group's ID.","required":false,"schema":{"type":"string","example":"VdOmav04Qf-BALiTESBQXw"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`    User's event subscriptions for application returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token paginates through a large set of results. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"eer587w4eiyfsudgf"},"page_size":{"type":"number","description":"The number of records returned with a single API call.","example":30}}},{"type":"object","properties":{"event_subscriptions":{"type":"array","items":{"type":"object","properties":{"event_subscription_id":{"type":"string","description":"The app event subscription's ID.","example":"sFrBezKES3-UdcfMPXFA0A"},"events":{"type":"array","description":"The list of the subscribed event subscriptions.","items":{"type":"string","description":"The event's name.","example":"meeting.deleted"}},"event_subscription_name":{"type":"string","description":"The app event subscription's name.","example":"Example Event Subscription"},"event_webhook_url":{"type":"string","description":"The event notification endpoint URL.","example":"https://www.example.com"},"subscription_scope":{"type":"string","description":"The app event subscription's scope.\n* `user` &mdash; The app event subscription is for specific users.\n* `account` &mdash; The app event subscription is for all users in the account.\n* `master_account` &mdash; The app event subscription is for all users in the master account.\n* `team` &mdash; The app event subscription is for a team in the account.\n* `group` &mdash; The app event subscription is for specific user groups in the account.","example":"user","enum":["user","account","master_account","team","group"]},"created_source":{"type":"string","description":"The app's created source: \n* `default` &mdash; The app event subscriptions created in build flow. \n* `openapi` &mdash; The app event subscriptions created in open API.","example":"default","enum":["default","openapi"]},"subscriber_id":{"type":"string","description":"The subscriber's ID.","example":"5AATFjiUS0yEnELIMzQO4g"},"custom_header":{"required":["custom_header_type"],"type":"object","properties":{"custom_header_type":{"type":"integer","description":"The type of custom header to use for authentication.\n* `0` - Default (no custom header)\n* `1` - Basic Authentication (requires username and password)\n* `2` - OAuth2 Token Authentication (requires client_id, client_secret, and token_url)\n* `3` - Custom Key-Value Header (requires custom_header_key and custom_header_value)","format":"int8","example":2,"enum":[0,1,2,3]},"username":{"maxLength":256,"type":"string","description":"The username for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_username"},"password":{"maxLength":256,"type":"string","description":"The password for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_password"},"client_id":{"maxLength":256,"type":"string","description":"The OAuth2 client ID. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_id"},"client_secret":{"maxLength":256,"type":"string","description":"The OAuth2 client secret. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_secret"},"token_url":{"maxLength":1000,"type":"string","description":"The OAuth2 token endpoint URL. Required when `custom_header_type` is `2` (OAuth). Must be a valid HTTPS URL.","format":"uri","example":"https://auth.example.com/oauth/token"},"scope":{"maxLength":255,"type":"string","description":"The OAuth2 scope parameter for limiting access token permissions. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"read:org write:user"},"state":{"maxLength":255,"type":"string","description":"The OAuth2 state parameter for CSRF protection and request tracking. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"request-123"},"client_authentication":{"type":"string","description":"The client authentication method for OAuth2 token requests. Only valid when `custom_header_type` is `2` (OAuth).\n* `header` - Send client credentials as Basic Auth header (default)\n* `body` - Send client credentials in request body","example":"body","default":"header","enum":["header","body"]},"custom_header_key":{"maxLength":256,"pattern":"^[a-z0-9A-Z-]+$","type":"string","description":"The custom header key name. Required when `custom_header_type` is `3` (Custom Key-Value). Can only contain letters, numbers, and hyphens. Cannot contain spaces or line feeds.","example":"x-api-key"},"custom_header_value":{"maxLength":256,"type":"string","description":"The custom header value. Required when `custom_header_type` is `3` (Custom Key-Value). Cannot contain line feeds.","example":"your_api_key_value"}},"description":"Custom header configuration for event subscription webhook. This allows you to configure authentication headers that will be sent with webhook requests."}}}}},"description":"The information about the user's event subscription."}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1500` <br>\n The subscription scope is invalid. <br>\n**Error Code:** `1500` <br>\n Team does not exist or does not belong to this account: {$teamId}. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}},"post":{"tags":["App"],"summary":"Create an event subscription","description":"Programmatically create event subscriptions for an authorized application.   \r\n\r\n**Prerequisites** \r\n- An existing, authorized application.\r\n- A valid access token obtained using the `client_credentials` authorization `grant_type`. See [documentation](/docs/api/webhooks/#step-1-request-an-access-token) for details.\r\n\r\n**Note** These endpoints use app-specific scopes that won't appear in your Marketplace build flow, but will be included in the access token payload.\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"createEventSubscription","requestBody":{"content":{"application/json":{"schema":{"required":["event_webhook_url","events","subscription_scope"],"type":"object","properties":{"events":{"type":"array","items":{"type":"string","description":"The event's name.","example":"meeting.created"}},"event_subscription_name":{"type":"string","description":"The app event subscription's name.","example":"Example Event Subscription"},"event_webhook_url":{"type":"string","description":"The event notification endpoint URL.","example":"https://www.example.com"},"user_ids":{"maxItems":10,"minItems":0,"type":"array","items":{"type":"string","description":"The user's user ID list.","example":"_8KG7DeoRU2xIsDSY9ed2Q,90KG7DeoRU2xIsDSY9edwe"}},"subscription_scope":{"type":"string","description":"The app event subscription's scope\n* `user` &mdash; The app event subscription is for specific users.\n* `account` &mdash; The app event subscription is for all users in the account. \n* `master_account` &mdash; The app event subscription is for all users in the master account.\n* `team` &mdash; The app event subscription is for team in the account, and only events from the contact center are supported.\n* `group` — The app event subscription is for specific user groups in the account.\n\n\n","example":"user","enum":["user","account","master_account","team","group"]},"account_id":{"type":"string","description":"The account's ID.","example":"pvg3UAgpRlyTDW-9sIpKcw"},"custom_header":{"required":["custom_header_type"],"type":"object","properties":{"custom_header_type":{"type":"integer","description":"The type of custom header to use for authentication.\n* `0` - Default (no custom header)\n* `1` - Basic Authentication (requires username and password)\n* `2` - OAuth2 Token Authentication (requires client_id, client_secret, and token_url)\n* `3` - Custom Key-Value Header (requires custom_header_key and custom_header_value)","format":"int8","example":0,"default":0,"enum":[0,1,2,3]},"username":{"maxLength":256,"type":"string","description":"The username for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_username"},"password":{"maxLength":256,"type":"string","description":"The password for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_password"},"client_id":{"maxLength":256,"type":"string","description":"The OAuth2 client ID. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_id"},"client_secret":{"maxLength":256,"type":"string","description":"The OAuth2 client secret. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_secret"},"token_url":{"maxLength":1000,"type":"string","description":"The OAuth2 token endpoint URL. Required when `custom_header_type` is `2` (OAuth). Must be a valid HTTPS URL.","format":"uri","example":"https://auth.example.com/oauth/token"},"scope":{"maxLength":255,"type":"string","description":"The OAuth2 scope parameter for limiting access token permissions. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"read:org write:user"},"state":{"maxLength":255,"type":"string","description":"The OAuth2 state parameter for CSRF protection and request tracking. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"request-123"},"client_authentication":{"type":"string","description":"The client authentication method for OAuth2 token requests. Only valid when `custom_header_type` is `2` (OAuth).\n* `header` - Send client credentials as Basic Auth header (default)\n* `body` - Send client credentials in request body","example":"body","default":"header","enum":["header","body"]},"custom_header_key":{"maxLength":256,"pattern":"^[a-z0-9A-Z-]+$","type":"string","description":"The custom header key name. Required when `custom_header_type` is `3` (Custom Key-Value). Can only contain letters, numbers, and hyphens. Cannot contain spaces or line feeds.","example":"x-api-key"},"custom_header_value":{"maxLength":256,"type":"string","description":"The custom header value. Required when `custom_header_type` is `3` (Custom Key-Value). Cannot contain line feeds.","example":"your_api_key_value"}},"description":"Custom header configuration for event subscription webhook. This allows you to configure authentication headers that will be sent with webhook requests."},"team_ids":{"maxItems":10,"minItems":0,"type":"array","description":"The team ID list.","items":{"type":"string","description":"The team's ID.","example":"JvOmav04Qf-BALiTESBQXw"}},"user_group_ids":{"maxItems":10,"minItems":0,"type":"array","description":"The user group ID list. ","items":{"type":"string","description":"The user group's ID.","example":"VdOmav04Qf-BALiTESBQXw"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201` user create event subscription successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"event_subscription_id":{"type":"string","description":"The app event subscription's ID.","example":"0ZAaJY4dQ52BbwI9PArBLQ"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1003` <br>\n The user {$userId} missed permission to subscribe application events: {$eventName} <br>\n**Error Code:** `1300` <br>\n The user don't authorize the app: {$userId}. <br>\n**Error Code:** `1602` <br>\n The event is not allowed for the app: {$eventName} <br>\n**Error Code:** `1500` <br>\n The events list is empty. <br>\n**Error Code:** `1500` <br>\n The event webhook url is empty. <br>\n**Error Code:** `1500 ` <br>\n The subscription scope is invalid. <br>\n**Error Code:** `1500` <br>\n The username is required. <br>\n**Error Code:** `1500` <br>\n The length of username exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n The input value can't contain line feed. <br>\n**Error Code:** `1500` <br>\n The password is required. <br>\n**Error Code:** `1500` <br>\n The length of password exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n The client id is required. <br>\n**Error Code:** `1500` <br>\n The length of client id exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The client secret is required. <br>\n**Error Code:** `1500` <br>\n The length of client secret exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The token url is required. <br>\n**Error Code:** `1500` <br>\n The length of token url exceeds the limit of 1000. <br>\n**Error Code:** `1500` <br>\n The length of scope exceeds the limit of 255. <br>\n**Error Code:** `1500` <br>\n The length of state exceeds the limit of 255. <br>\n**Error Code:** `1500` <br>\n Client authentication must be 'header' or 'body'. <br>\n**Error Code:** `1500` <br>\n The custom header key is required. <br>\n**Error Code:** `1500` <br>\n The length of header key exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The input value can't contain space. <br>\n**Error Code:** `1500` <br>\n The custom header key can only contain letters, numbers, and -. <br>\n**Error Code:** `1500` <br>\n The custom header key is reserved by Zoom. <br>\n**Error Code:** `1500` <br>\n The custom header value is required. <br>\n**Error Code:** `1500` <br>\n The length of header value exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n Team does not exist or does not belong to this account. <br>\n**Error Code:** `1500` <br>\n The size of team_ids exceed maximum. <br>\n**Error Code:** `1500` <br>\n Team does not exist or does not belong to this account: {$teamId}. <br>\n**Error Code:** `1500` <br>\n User group does not exist or does not belong to this account: {$userGroupId}. <br>\n**Error Code:** `1500` <br>\n The size of user_group_ids exceed maximum <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account: {$userId}. <br>\n**Error Code:** `1601` <br>\n App event not exists: {$eventName} <br>\n**Error Code:** `1701` <br>\n The event webhook url validate failed: {eventWebhookUrl}. <br>\n**Error Code:** `1801` <br>\n The custom header type validate failed: {customHeaderType}. <br>\n**Error Code:** `1702` <br>\n The Oauth token url validate failed: {oauthTokenUrl}. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}},"delete":{"tags":["App"],"summary":"Unsubscribe to an app event subscription","description":"Use this API endpoint to unsubscribe an event subscription. \n\n**Prerequisites** \n- An existing, authorized application.\n- A valid access token obtained using the `client_credentials` authorization `grant_type`. See [documentation](/docs/api/webhooks/#step-1-request-an-access-token) for details.\n\n**Note** These endpoints use app-specific scopes that won't appear in your Marketplace build flow, but will be included in the access token payload.\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"unSubscribeEventSubscription","parameters":[{"name":"event_subscription_id","in":"query","description":"The event subscriptions' ID.","required":true,"schema":{"type":"string","example":"sFrBezKES3-UdcfMPXFA0A"}},{"name":"user_ids","in":"query","description":"The user's ID list. The list's maximum size is 10, seperated by a comma.","required":false,"schema":{"type":"string","example":"_8KG7DeoRU2xIsDSY9ed2Q,fgKG7DeoRU2xIsDSY9esdf"}},{"name":"account_id","in":"query","description":"The account's ID.","required":true,"schema":{"type":"string","example":"pvg3UAgpRlyTDW-9sIpKcw"}},{"name":"team_ids","in":"query","description":"The team's ID list. The list's maximum size is 10, seperated by a comma.","required":false,"schema":{"type":"string","example":"JhLG7DeoRU2xIsDSY9ed2Q,fAsd7DeoRU2xIsDSY9esdf"}},{"name":"user_group_ids","in":"query","description":"The user group's ID list. The maximum size of the list is 10, separated by a comma.","required":false,"schema":{"type":"string","example":"VdOmav04Qf-BALiTESBQXw,asOmav04Qf-BALiTESBQXw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    User unsubscribed from the event subscription successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1500` <br>\n The size of team_ids exceeds the maximum. <br>\n**Error Code:** `1500` <br>\n Team does not exist or does not belong to this account: {$teamId}. <br>\n**Error Code:** `1500` <br>\n User group does not exist or does not belong to this account: {$userGroupId}. <br>\n**Error Code:** `1500` <br>\n The size of user_group_ids exceeds the maximum. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account: {$userId}. <br>\n**Error Code:** `1601` <br>\n App event subscription is invalid: {$eventSubscriptionId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}},"patch":{"tags":["App"],"summary":"Update an event subscription","description":"Update an event subscription.\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateEventSubscription","requestBody":{"content":{"application/json":{"schema":{"required":["event_subscription_id"],"type":"object","properties":{"events":{"type":"array","description":"The webhook events.","items":{"type":"string","description":"The event's name.","example":"meeting.created"}},"event_subscription_name":{"type":"string","description":"The app event subscription's name.","example":"Example Event Subscription"},"event_webhook_url":{"type":"string","description":"The event notification endpoint URL.","example":"https://www.example.com"},"custom_header":{"required":["custom_header_type"],"type":"object","properties":{"custom_header_type":{"type":"integer","description":"The type of custom header to use for authentication.\n* `0` - Default (no custom header)\n* `1` - Basic Authentication (requires username and password)\n* `2` - OAuth2 Token Authentication (requires client_id, client_secret, and token_url)\n* `3` - Custom Key-Value Header (requires custom_header_key and custom_header_value)","format":"int8","example":0,"default":0,"enum":[0,1,2,3]},"username":{"maxLength":256,"type":"string","description":"The username for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_username"},"password":{"maxLength":256,"type":"string","description":"The password for Basic Authentication. Required when `custom_header_type` is `1` (Basic Auth).","example":"my_password"},"client_id":{"maxLength":256,"type":"string","description":"The OAuth2 client ID. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_id"},"client_secret":{"maxLength":256,"type":"string","description":"The OAuth2 client secret. Required when `custom_header_type` is `2` (OAuth).","example":"your_client_secret"},"token_url":{"maxLength":1000,"type":"string","description":"The OAuth2 token endpoint URL. Required when `custom_header_type` is `2` (OAuth). Must be a valid HTTPS URL.","format":"uri","example":"https://auth.example.com/oauth/token"},"scope":{"maxLength":255,"type":"string","description":"The OAuth2 scope parameter for limiting access token permissions. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"read:org write:user"},"state":{"maxLength":255,"type":"string","description":"The OAuth2 state parameter for CSRF protection and request tracking. Optional, only valid when `custom_header_type` is `2` (OAuth).","example":"request-123"},"client_authentication":{"type":"string","description":"The client authentication method for OAuth2 token requests. Only valid when `custom_header_type` is `2` (OAuth).\n* `header` - Send client credentials as Basic Auth header (default)\n* `body` - Send client credentials in request body","example":"body","default":"header","enum":["header","body"]},"custom_header_key":{"maxLength":256,"pattern":"^[a-z0-9A-Z-]+$","type":"string","description":"The custom header key name. Required when `custom_header_type` is `3` (Custom Key-Value). Can only contain letters, numbers, and hyphens. Cannot contain spaces or line feeds.","example":"x-api-key"},"custom_header_value":{"maxLength":256,"type":"string","description":"The custom header value. Required when `custom_header_type` is `3` (Custom Key-Value). Cannot contain line feeds.","example":"your_api_key_value"}},"description":"Custom header configuration for event subscription webhook. This allows you to configure authentication headers that will be sent with webhook requests."},"event_subscription_id":{"type":"string","description":"The app event subscription's ID.","example":"0ZAaJY4dQ52BbwI9PArBLQ"}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` user update event subscription successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1602` <br>\n The event is not allowed for the app: {$eventName} <br>\n**Error Code:** `1500` <br>\n The events list is empty. <br>\n**Error Code:** `1500` <br>\n The event webhook url is empty. <br>\n**Error Code:** `1500` <br>\n The username is required. <br>\n**Error Code:** `1500` <br>\n The length of username exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n The input value can't contain line feed. <br>\n**Error Code:** `1500` <br>\n The password is required. <br>\n**Error Code:** `1500` <br>\n The length of password exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n The client id is required. <br>\n**Error Code:** `1500` <br>\n The length of client id exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The client secret is required. <br>\n**Error Code:** `1500` <br>\n The length of client secret exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The token url is required. <br>\n**Error Code:** `1500` <br>\n The length of token url exceeds the limit of 1000. <br>\n**Error Code:** `1500` <br>\n The length of scope exceeds the limit of 255. <br>\n**Error Code:** `1500` <br>\n The length of state exceeds the limit of 255. <br>\n**Error Code:** `1500` <br>\n Client authentication must be 'header' or 'body'. <br>\n**Error Code:** `1500` <br>\n The custom header key is required. <br>\n**Error Code:** `1500` <br>\n The length of header key exceeds the limit of 256. <br>\n**Error Code:** `1500` <br>\n The input value can't contain space. <br>\n**Error Code:** `1500` <br>\n The custom header key can only contain letters, numbers, and -. <br>\n**Error Code:** `1500` <br>\n The custom header key is reserved by Zoom. <br>\n**Error Code:** `1500` <br>\n The custom header value is required. <br>\n**Error Code:** `1500` <br>\n The length of header value exceeds the limit of 256 <br>\n**Error Code:** `1500` <br>\n The event subscription ID is required. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1601` <br>\n App event not exists: {$eventName} <br>\n**Error Code:** `1701` <br>\n The event webhook url validate failed: {eventWebhookUrl}. <br>\n**Error Code:** `1801` <br>\n The custom header type validate failed: {customHeaderType}. <br>\n**Error Code:** `1702` <br>\n The Oauth token url validate failed: {oauthTokenUrl}. <br>\n**Error Code:** `1601` <br>\n App event subscription is invalid: {$eventSubscriptionId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}}},"/marketplace/app/event_subscription/{eventSubscriptionId}":{"delete":{"tags":["App"],"summary":"Delete an event subscription","description":"Delete an event subscription. \n\n**Prerequisites** \n- An existing, authorized application.\n- A valid access token obtained using the client_credentials authorization grant_type. See [documentation](/docs/api/webhooks/#step-1-request-an-access-token) for details.\n\n**Note:** These endpoints use app-specific scopes that won't appear in your Marketplace build flow, but will be included in the access token payload.\n\n\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"deleteEventSubscription","parameters":[{"name":"eventSubscriptionId","in":"path","description":"The app event subscription's ID.","required":true,"schema":{"type":"string","example":"0ZAaJY4dQ52BbwI9PArBLQ"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204` delete event subscription successfully."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1601` <br>\n App event subscription is invalid: {$eventSubscriptionId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}},"patch":{"tags":["App"],"summary":"Subscribe to an event subscription","description":"Subscribe to an event subscription.  \n\n**Prerequisites** \n- An existing, authorized application.\n- A valid access token obtained using the `client_credentials` authorization `grant_type`. See [documentation](https://developers.zoom.us/docs/api/webhooks/#step-1-request-an-access-token) for details.\n\n**Note** These endpoints use app-specific scopes that won't appear in your Marketplace build flow, but will be included in the access token payload.\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"subscribeEventSubscription","parameters":[{"name":"eventSubscriptionId","in":"path","description":"The app event subscription's ID.","required":true,"schema":{"type":"string","example":"0ZAaJY4dQ52BbwI9PArBLQ"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["account_id"],"type":"object","properties":{"user_ids":{"maxItems":10,"minItems":0,"type":"array","items":{"type":"string","description":"The user ID list for the user.","example":"_8KG7DeoRU2xIsDSY9ed2Q,90KG7DeoRU2xIsDSY9edwe"}},"account_id":{"type":"string","description":"The account's ID.","example":"5AATFjiUS0yEnELIMzQO4g"},"team_ids":{"maxLength":10,"minLength":0,"maxItems":10,"minItems":0,"type":"array","description":"The team ID list.","example":"The team ID list.","items":{"type":"string","description":"The team's ID.","example":"JvOmav04Qf-BALiTESBQXw"}},"user_group_ids":{"maxItems":10,"minItems":0,"type":"array","description":"The user group ID list. ","items":{"type":"string","description":"The user group's ID.","example":"VdOmav04Qf-BALiTESBQXw"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204` user subscribe event subscription successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1003` <br>\n The user: {$userId} missed permission to subscribe event subscriptions: {$eventSubscriptionId} <br>\n**Error Code:** `1002` <br>\n The user don't authorize the app: {$userId}. <br>\n**Error Code:** `1500` <br>\n The size of team_ids exceed maximum. <br>\n**Error Code:** `1500` <br>\n Team does not exist or does not belong to this account: {$teamId}. <br>\n**Error Code:** `1500` <br>\n User group does not exist or does not belong to this account: {$userGroupId}. <br>\n**Error Code:** `1500` <br>\n The size of user_group_ids exceed maximum <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account:  {$userId} . <br>\n**Error Code:** `1601` <br>\n App event subscription is invalid: {$eventSubscriptionId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":[],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[]}}},"/marketplace/apps":{"get":{"tags":["App"],"summary":"List apps","description":"List all active and past app requests, or list all approved public and private apps. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:list_apps:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"ListApps","parameters":[{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"type","in":"query","description":"Types of app requests to query: \n* `active_requests` &mdash; All active app requests. \n* `past_requests` - All past app requests. \n* `public` - All public apps. \n* `account_created` - All apps created by this account. \n* `account_added` - All apps added by this account. \n* `approved_apps` - All approved apps by this account.\n* `restricted_apps` - All restricted apps by this account.","required":false,"schema":{"type":"string","example":"active_requests","default":"active_requests","enum":["active_requests","past_requests","public","account_created","approved_apps","restricted_apps","account_added"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nApp requests returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"w7587w4eiyfsudgf"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned with a single API call.","example":30,"default":30}}},{"type":"object","properties":{"apps":{"type":"array","description":"Information about the app's user requests.","items":{"type":"object","properties":{"app_id":{"type":"string","description":"The app's ID.","example":"nqSreNVsQ2eGzUMGnA8AHA"},"app_name":{"type":"string","description":"The app's name.","example":"Example App"},"app_type":{"type":"string","description":"The type of app: \n* `ZoomApp` &mdash; A Zoom app. \n* `ChatBotApp` &mdash; A ChatBot app. \n* `OAuthApp` &mdash; A OAuth app.\n* `GeneralApp` &mdash; A General app.","example":"ZoomApp","default":"OAuthApp","enum":["ZoomApp","ChatBotApp","OAuthApp","GeneralApp"]},"app_usage":{"type":"integer","description":"The app's usage categorization: \n* `1` &mdash; The app is under admin management. \n* `2` &mdash; Users have access to the app.","example":1,"default":1,"enum":[1,2]},"app_status":{"type":"string","description":"The app's publication status: \n* `PUBLISHED` &mdash; The app is published. \n* `UNPUBLISHED` &mdash; The app is not published.\n* `SHARABLE` &mdash; The app is sharable.\n","example":"PUBLISHED","default":"PUBLISHED","enum":["PUBLISHED","UNPUBLISHED","SHARABLE"]},"request_id":{"type":"string","description":"The app request ID.","example":"zZLSQoL6S0OB6asaZ3zAOQ"},"request_total_number":{"type":"integer","description":"The total number of app requests.","example":8},"request_pending_number":{"type":"integer","description":"The total number of pending app requests.","example":3},"request_approved_number":{"type":"integer","description":"The total number of approved app requests. This field only returns when the `type` value is `past`.","example":2},"request_declined_number":{"type":"integer","description":"The total number of declined app requests. This field only returns when the `type` value is `past`.","example":2},"latest_request_date_time":{"type":"string","description":"The latest app request's creation date and time. This field only returns when the `type` value is 'active'.","format":"date-time","example":"2021-07-21T17:32:28Z"},"reviewer_name":{"type":"string","description":"The user who reviewed the app request. This field only returns when the `type` value is `past`.","example":"Jill Chill"},"review_date_time":{"type":"string","description":"The time at which the user reviewed the app request. This field only returns when the `type` value is `past`.","format":"date-time","example":"2021-07-21T17:32:28Z"},"app_developer_type":{"type":"string","description":"The developer type of app: \n* `THIRD_PARTY` &mdash; app created by the third party. \n* `ZOOM` &mdash; app created by ZOOM. \n* `INTERNAL` &mdash; app created by your account members.","example":"THIRD_PARTY","enum":["THIRD_PARTY","ZOOM","INTERNAL"]},"app_description":{"type":"string","description":"The app's short description","example":"information about the app."},"app_icon":{"type":"string","description":"The app's icon","example":"https://marketplacecontent.zoom.us//oE98TDy1QymZ3nZs_uILrw/RxGA0jOvQU6aKxttLwQ2-A/app/B67xzmliS9-noBDwsGun1Q/KRUURXa-T6iQz7-S9bEO6A.png"},"scopes":{"type":"array","description":"Information about the app scopes.","items":{"type":"object","properties":{"scope_name":{"type":"string","description":"The scope's name.","example":"View all users' team chat messages"},"scope_description":{"type":"string","description":"The scope's description.","example":"This app will gain access to the team chat channels. Please review its privacy policy first."}}}},"app_privacy_policy_url":{"type":"string","description":"The app's privacy policy url","example":"https://www.example.com/privacy/policy"},"app_directory_url":{"type":"string","description":"The app's detail page","example":"https://marketplace.zoom.us/apps/{appId}"},"app_help_url":{"type":"string","description":"The app's support url","example":"https://www.example.com/support"},"restricted_time":{"type":"string","description":"The time when the application was resticted.","example":"2024-03-21T17:32:28Z"},"approval_info":{"type":"object","properties":{"approved_type":{"type":"string","description":"The approved type of app: * `forAllUser` &mdash; all user unber account are approved to authorize the app. * `forSpecificUser` &mdash;  specific user or group are approved to authorize or use the app.","example":"forSpecificUser","enum":["forAllUser","forSpecificUser"]},"approver_id":{"type":"string","description":"The user's ID who approved the app.","example":"1gAKvx8fSUeTg-mHgmYTRA"},"approved_time":{"type":"string","description":"The time when the application was approved.","example":"2024-03-21T14:32:28Z"},"app_approval_closed":{"type":"boolean","description":"The app approval closed : * true — The app does not require admin approval for authorization. * false — The app requires admin approval for authorization.","example":true}},"description":"app pre-approval info"}}}}}}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1505` <br>\n Internal server error, please try again. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read:admin","marketplace:read:list_apps:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read:admin"],"x-granular-scopes":["marketplace:read:list_apps:admin"]}},"post":{"tags":["App"],"summary":"Create apps","description":"Create `Server to Server OAuth`, `Meeting SDK` or `General` apps in the Zoom Marketplace. \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write`,`marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app`,`marketplace:write:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"CreateApps","requestBody":{"description":"/v2/marketplace/apps needs to pass the manifest parameter to create a General app.\n/v2/marketplace/apps/accounts/{accountld} needs to pass other parameters to create Server OAuth, Meeting SDK app.","content":{"application/json":{"schema":{"required":["app_name","app_type","company_name","contact_email","contact_name"],"type":"object","properties":{"app_type":{"type":"string","description":"The app's type: \n* `s2s_oauth` &mdash; Server to Server OAuth app. \n* `meeting_sdk` &mdash; Meeting SDK app.\n* `general`&mdash; UBF General app.","example":"s2s_oauth","enum":["s2s_oauth","meeting_sdk","general"]},"app_name":{"maxLength":50,"type":"string","description":"The app's name.","example":"My App"},"scopes":{"type":"array","description":"The scopes of the created app:\n* `s2s_oauth` &mdash; If `active` field is true, there must be at least one scope. \n* `meeting_sdk` &mdash; Will automatically include `user_zak:read` scope.","items":{"type":"string","example":"meeting:read"}},"contact_name":{"maxLength":150,"type":"string","description":"The developer's name.","example":"ZOOM"},"contact_email":{"maxLength":150,"type":"string","description":"The developer's email.","format":"email","example":"example@example.com"},"company_name":{"maxLength":150,"type":"string","description":"The company's name.","example":"ZOOM"},"active":{"type":"boolean","description":"Only valid for s2s_oauth app, whether to activate automatically: \n* `true` &mdash; Automatically activate the app after creation. It is required that at least one scope should be included in the input parameter. \n* `false` &mdash; Do not activate the app after creation.","example":false,"default":false},"publish":{"type":"boolean","description":"Only valid for meeting_sdk app, whether to publish the app to the Marketplace: \n* `true` &mdash; The app contains development credentials and production credentials. \n* `false` &mdash; The app contains only development credentials.","example":false,"default":false},"manifest":{"type":"object","description":"An app manifest object. It should meet the valid manifest schema. If the app_type equals general, you need to pass this param.\n\nManifest resources: https://developers.zoom.us/docs/build-flow/manifests/"}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nApp created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"created_at":{"type":"string","description":"Date and time this app was created.","format":"date-time","example":"2023-02-16T17:32:28Z"},"app_id":{"type":"string","description":"The app's id.","example":"Bwpq5zXvQr-4PKhtYOD23g"},"app_name":{"type":"string","description":"The app's name.","example":"My App"},"app_type":{"type":"string","description":"The app's type: \n* `s2s_oauth` &mdash; Server to Server OAuth app. \n* `meeting_sdk` &mdash; Meeting SDK app.","example":"s2s_oauth","enum":["s2s_oauth","meeting_sdk"]},"scopes":{"type":"array","description":"The app's scopes.","items":{"type":"string","example":"meeting:read"}},"production_credentials":{"type":"object","properties":{"client_id":{"type":"string","description":"The app's client id.","example":"2J5nVOGXQXCvXoRWyGQDow"},"client_secret":{"type":"string","description":"The app's client secret.","example":"BzFOrwgq1Gw6KCsyeYnmETU5e4zakGwQ"}},"description":"Only when the type is `meeting_sdk` and the `publish` field is true, there will be `production_credentials`"},"development_credentials":{"type":"object","properties":{"client_id":{"type":"string","description":"The app's client id.","example":"2J5nVOGXQXCvXoRWyGQDow"},"client_secret":{"type":"string","description":"The app's client secret.","example":"BzFOrwgq1Gw6KCsyeYnmETU5e4zakGwQ"}},"description":"Only when the type is `meeting_sdk` and the `publish` field is true, there will be `production_credentials`"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n * Validation Failed. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `201` <br>\n * Invalid access token. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1500` <br>\n * The request body is missing required fields. For more information, see the API documentation. \n* Only `Server to Server OAuth` and `Meeting SDK` apps can be created. \n* Can't get account owner info. \n* Only account's owner can use this API.\n* Can't get account info. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write","marketplace_app:write:admin","marketplace:write:app","marketplace:write:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_app:write","marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app","marketplace:write:app:admin"]}}},"/marketplace/apps/{appId}":{"get":{"tags":["App"],"summary":"Get information about an app","description":"Use this API to get app information. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read:admin`,`marketplace_app:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:app`,`marketplace:read:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getAppInfo","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nApp information returned.","content":{"application/json":{"schema":{"type":"object","properties":{"app_id":{"type":"string","description":"The app's ID.","example":"nqSreNVsQ2eGzUMGnA8AHA"},"app_name":{"type":"string","description":"The app's name.","example":"Example App"},"app_description":{"type":"string","description":"The app's description.","example":"Example App description"},"app_type":{"type":"string","description":"The type of app: \n* `ZoomApp` &mdash; A Zoom app. \n* `ChatBotApp` &mdash; A ChatBot app. \n* `OAuthApp` &mdash; A OAuth app.","example":"ZoomApp","default":"OAuthApp","enum":["ZoomApp","ChatBotApp","OAuthApp"]},"app_usage":{"type":"integer","description":"The app's usage categorization: \n* `1` &mdash; The app is under admin management. \n* `2` &mdash; Users have access to the app.","example":1,"default":1,"enum":[1,2]},"app_status":{"type":"string","description":"The app's publication status: \n* `PUBLISHED` &mdash; The app is published. \n* `UNPUBLISHED` &mdash; The app is not published.","example":"PUBLISHED","default":"PUBLISHED","enum":["PUBLISHED","UNPUBLISHED"]},"app_links":{"type":"object","properties":{"documentation_url":{"type":"string","description":"The app's documentation link.","example":"https://xxxx"},"privacy_policy_url":{"type":"string","description":"The app's privacy policy link.","example":"https://xxxx"},"support_url":{"type":"string","description":"The app's support link.","example":"https://xxxx"},"terms_of_use_url":{"type":"string","description":"The app's terms of use link.","example":"https://xxxx"}}},"app_permissions":{"type":"array","description":"The app's permissions.","items":{"type":"object","properties":{"group":{"type":"string","description":"The app's permission group.","example":"View"},"group_message":{"type":"string","description":"The app's permission group message.","example":"App can view information"},"title":{"type":"string","description":"The app's group title.","example":"Associated with you"},"permissions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The group payload's name.","example":"Devices"}}}}}}},"app_requirements":{"type":"object","properties":{"user_role":{"type":"string","description":"The user roles required to authorize or add the app: \n* `admin` &mdash; The user needs to have the ADMIN_MANAGEMENT role. \n* `user` &mdash; Every user can add this app.","example":"admin","enum":["admin","user"]},"min_client_version":{"type":"string","description":"The minimum client version required for the app.","example":"5.7.3"},"account_eligibility":{"type":"object","properties":{"account_types":{"type":"array","description":"The account types.","items":{"type":"string","description":"The account type name.","example":"Free"}},"premium_events":{"type":"array","description":"The premium events.","items":{"type":"object","properties":{"event_name":{"type":"string","description":"The premium event name.","example":"Meeting participant data"},"event":{"type":"string","description":"The premium event ID.","example":"meeting.participant_qos_summary"}}}}},"description":"Eligibility requirements for app."}},"description":"The app requirements."},"app_scopes":{"type":"array","description":"The app scopes.","items":{"type":"string","description":"The app scope.","example":"meeting:read"}}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found \n\n **Error Code:** `1401` <br>\n APP ID does not exist: {$appId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read:admin","marketplace_app:read","marketplace:read:app","marketplace:read:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read:admin","marketplace_app:read"],"x-granular-scopes":["marketplace:read:app","marketplace:read:app:admin"]}},"delete":{"tags":["App"],"summary":"Deletes an app","description":"Permanently delete an app on behalf of a user.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write`,`marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app`,`marketplace:write:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"deleteApp","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"8j92qLGYSLydMFgeCRspaw"}}],"responses":{"204":{"description":"**HTTP Status Code:** `204`    Application delete success"},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  User not have permission to delete app \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  App not found \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write","marketplace_app:write:admin","marketplace:write:app","marketplace:write:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_app:write","marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app","marketplace:write:app:admin"]}}},"/marketplace/apps/{appId}/api_call_logs":{"get":{"tags":["App"],"summary":"Get API call logs","description":"Get log of app's API calls.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:list_api_logs:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Getapicalllogs","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":100,"minimum":10,"type":"integer","example":30}},{"name":"duration","in":"query","description":"Query the date range of the call log.","required":false,"schema":{"type":"integer","example":7,"default":7,"enum":[7,14,30]}},{"name":"query","in":"query","description":"Api endpoint keywords","required":false,"schema":{"type":"string","example":"meeting"}},{"name":"method","in":"query","description":"Api http method","required":false,"schema":{"type":"string","example":"GET","enum":["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}},{"name":"status_code","in":"query","description":"Api status code to filter","required":false,"schema":{"type":"integer","example":400,"enum":[400,401,403,404,409,429,500,501,502,503,504,505,506,507,508,510,511]}}],"responses":{"200":{"description":"Api call logs result returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"The API uses the next page token to paginate through large result sets. It returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"b43YBRLJFg3V4vsSpxvGdKIGtNbxn9h9If2"},"page_size":{"type":"integer","description":"The page size of the result","example":30},"call_logs":{"type":"array","description":"The call log items","items":{"type":"object","properties":{"url_pattern":{"type":"string","description":"Url pattern of the api call","example":"https://zoom.us/v2/users/_DkLL5iMRW-p_6yhPocD4Q/assistants"},"time":{"type":"string","description":"Unixtimestamp","example":"1737704112808"},"http_status":{"type":"integer","description":"Http status of the call","example":200,"enum":[200,201,202,203,204,205,300,301,302,303,304,305,306,307,308,400,401,403,404,405,406,408,409,429,500,501,502,503,504,505,506,507,508,510,511]},"method":{"type":"string","description":"Http method","example":"GET","enum":["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]},"trace_id":{"type":"string","description":"The unique identifier for a request.","example":"v=2.0;clid=aw1;rid=ZTP_10094594754_scenario_10000000934_aw1_20250124T073509485Z"}}}}},"description":"Api call logs result"}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `301` <br>\n Next page token is not valid <br>\n**Error Code:** `300` <br>\n Page size is not valid <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  The token used has expired or is invalid \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  The token used does not have sufficient permissions to access the API \n\n "},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n App id not exist <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace:read:list_api_logs:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-granular-scopes":["marketplace:read:list_api_logs:admin"]}}},"/marketplace/apps/{appId}/deeplink":{"post":{"tags":["App"],"summary":"Generate Zoom App Deeplink","description":"Create a Zoom App Deeplink.\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app_deeplink:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"GenerateZoomAppDeeplink","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["action","target","type"],"type":"object","properties":{"type":{"type":"integer","description":"The type of deeplink. This value defaults to `1`.\n`1` - Generate a deeplink that opens Zoom App in-meeting if the meeting is in progress, if not opens Zoom App in Apps Tab.\n`2` - Generate a deeplink that refreshes Chat App Webview.","example":1,"default":1,"enum":[1,2]},"target":{"maxLength":128,"type":"string","description":"The target of the deeplink.","example":"meeting","enum":["meeting","panel","modal"]},"action":{"maxLength":9000,"type":"string","description":"The action of the deeplink, it's a user-defined string. Default length 2000, max length 9000.","example":"openPageX"}}}}}},"responses":{"201":{"description":"Return deeplink.","content":{"application/json":{"schema":{"required":["deeplink"],"type":"object","properties":{"deeplink":{"type":"string","description":"Zoom App Deeplink","example":"https://zoom.us/launch/chatapp/Zx_cSBEZUWRUMIf454A3sRpEzRp8kVmFINKvSBMok37i5bNRqtLbUxy681Qh_wVhFyW2AhyyF2LbtqSz9pFckUUupHg.wEt88YlHQpzp635x"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `300` <br>\n Invalid action. Exceeded the maximum length of the value. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `124` <br>\n Invalid access token. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n App ID does not exist: $appId. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write:admin","marketplace:write:app_deeplink:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app_deeplink:admin"]}}},"/marketplace/apps/{appId}/preApprove":{"post":{"tags":["App"],"summary":"Update app pre approval setting ","description":"This API supports modifying the pre approval configuration of the app, including turning on the setting  to the  account, to specified users, to specified user groups, and turning off the pre approval.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app_pre_approve:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"Updateapppreapprovalsetting","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"HwSqvKE3RX6fR_k_nOqi7g"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","description":"The action with which to take with the app:\n\n* approve_all — Turn on app pre-approval and set it as the account.\n* approve_user — Add users to approved list and set it as the specific user/group.\n* disapprove_user — Remove users from approved list and set it as the specific user/group.\n* approve_group — Add groups to approved list and set it as the specific user/group.\n* disapprove_group — Remove groups from approved list and set it as the specific user/group.\n* disapprove_all — Turn off app pre-approval.","example":"approve_all","default":"null","enum":["approve_all","approve_user","disapprove_user","approve_group","disapprove_group","disapprove_all"]},"user_ids":{"maxItems":20,"minItems":0,"type":"array","description":"If the action value is approve_user or disapprove_user, the user IDs to add or remove.Maximum limit of 20.","items":{"type":"string","description":"Zoom user Id","example":"xurCXOI_Ty2RRNMv648OPw"}},"group_ids":{"maxItems":20,"minItems":0,"type":"array","description":"If the action value is approve_group or disapprove_group, the group IDs to add or remove.Maximum limit of 20.","items":{"type":"string","description":"Zoom user group id","example":"JJcuSipRRS2JqYmk8mfBbA"}}}}}}},"responses":{"201":{"description":"HTTP Status Code: 201  App pre-approval updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"executed_at":{"type":"string","description":"Date and time this request was executed.","example":"2021-07-21T17:32:28Z"},"user_ids":{"maxItems":20,"minItems":0,"type":"array","description":"If the action value is approve_user or disapprove_user, the user IDs to add or remove.Maximum limit of 20.","items":{"type":"string","description":"Zoom user Id","example":"xurCXOI_Ty2RRNMv648OPw"}},"group_ids":{"maxItems":20,"minItems":0,"type":"array","description":"If the action value is approve_group or disapprove_group, the group IDs to add or remove.Maximum limit of 20.","items":{"type":"string","description":"Zoom user group id","example":"JJcuSipRRS2JqYmk8mfBbA"}}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1500` <br>\n User can not pre approve this app <br>\n**Error Code:** `1404` <br>\n application_pre_approved_status_off <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n App ID does not exist: {$appId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write:admin","marketplace:write:app_pre_approve:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-macro-scopes":["marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app_pre_approve:admin"]}}},"/marketplace/apps/{appId}/requests":{"get":{"tags":["App"],"summary":"Get an app's user requests","description":"Use this API to get an app's user requests and the status of their approval. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:app_request:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getAppUserRequests","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"status","in":"query","description":"The type of app request to query: \n* `pending` &mdash; Only pending app requests. \n* `approved` &mdash; Only approved app requests. \n* `rejected` &mdash; Only rejected app requests.","required":false,"schema":{"type":"string","example":"pending","default":"pending","enum":["pending","approved","rejected"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nApp user requests returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"w7587w4eiyfsudgf"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned with a single API call.","example":30,"default":30}}},{"type":"object","properties":{"requests":{"type":"array","description":"Information about the users who have applied for app approval.","items":{"type":"object","properties":{"request_user_id":{"type":"string","description":"The user's ID.","example":"f1sTWCMaTmOIZxLMlmHvEQ"},"request_user_name":{"type":"string","description":"The user's name.","example":"Jill Chill"},"request_user_email":{"type":"string","description":"The user's email address.","format":"email","example":"jchill@example.com"},"request_user_department":{"type":"string","description":"The user's department.","format":"email","example":"department"},"request_date_time":{"type":"string","description":"The app request's creation date and time.","format":"date-time","example":"2021-07-21T17:32:28Z"},"reason":{"type":"string","description":"The reason for the app request.","example":"I want to use this app."},"status":{"type":"string","description":"The status of the user's app request: \n* `pending` &mdash; The request is pending approval. \n* `approved` - The request is approved. \n* `rejected` - The request is rejected.","example":"pending","default":"pending","enum":["pending","approved","rejected"]}}}}}}]}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found \n\n **Error Code:** `1401` <br>\n App ID does not exist: {$appId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read:admin","marketplace:read:app_request:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read:admin"],"x-granular-scopes":["marketplace:read:app_request:admin"]}},"post":{"tags":["App"],"summary":"Add app allow requests for users","description":"Use this API to add app allow requests for all users, groups of users, or specific users. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app_request:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"AddAppAllowRequestsForUsers","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["action"],"type":"object","properties":{"action":{"type":"string","description":"The action with which to take with the app: \n* `add_all` &mdash; Add all user for the app. \n* `add_user` &mdash; Add specified user for the app. \n* `add_group` &mdash; Add specified group of user for the app.  ","example":"add_all","enum":["add_all","add_user","add_group"]},"user_ids":{"type":"array","description":"If the `action` value is `add_user`, the user IDs to add","items":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}},"group_ids":{"type":"array","description":"If the `action` value is `add_group`, the group IDs to add","items":{"type":"string","example":"t-_-d56CSWG-7BF15LLrOw"}}}}}}},"responses":{"201":{"description":"**HTTP Status Code:** `201`   \n \nApp added successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"added_at":{"type":"string","description":"Date and time this app was added.","format":"date-time","example":"2021-07-21T17:32:28Z"},"user_ids":{"type":"array","description":"If the `action` value is `add_user`, the user IDs to add.","items":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}},"group_ids":{"type":"array","description":"If the `action` value is `add_group`, the group IDs to add.","items":{"type":"string","example":"t-_-d56CSWG-7BF15LLrOw"}}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found \n\n **Error Code:** `1401` <br>\n App ID does not exist: {$appId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write:admin","marketplace:write:app_request:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-macro-scopes":["marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app_request:admin"]}},"patch":{"tags":["App"],"summary":"Update app's request status","description":"Use this API to update an app's request status or update app status. Administrators can only agree to user-level apps.\n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:update:app_request:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"updateAppRequestStatus","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["action"],"type":"object","properties":{"action":{"type":"string","description":"The app's action: \n* `approve_all` &mdash; Approve all user requests for the app. \n* `approve` &mdash; Partially approve user requests the app. \n* `decline_all` &mdash; Reject all user requests for the app, users who have been approved will also be declined and the installed apps will be disabled. \n* `decline` &mdash; Partially reject user requests for app.\n* `cancel` &mdash; Cancel partially user requests for app.\n","example":"approve_all","enum":["approve_all","approve","decline_all","decline","cancel"]},"request_user_ids":{"type":"array","description":"If the `action` value is `approve`, the user's request will be approved.\nIf the `action` value is `decline`, the user's request will be rejected.\nIf the `action` value is `cancel`, the user's request will be canceled.","items":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`   \n \nApp request status updated."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n App ID does not exist: {$appId} <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write:admin","marketplace:update:app_request:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-macro-scopes":["marketplace_app:write:admin"],"x-granular-scopes":["marketplace:update:app_request:admin"]}}},"/marketplace/apps/{appId}/rotate_client_secret":{"post":{"tags":["App"],"summary":"Rotate client secret","description":"Create or update a marketplace application's client secret rotating schedule. \nTo call this API, users need to use an OAuth token. The token's `grant_type` should be `client_credentials`. \nUsers can only change client secret rotate schedule 3 times in 15 minutes.\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:update:client_secret`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"RotateClientSecret","parameters":[{"name":"appId","in":"path","description":"Marketplace application ID.","required":true,"schema":{"type":"string","example":"9lWOKm2kT1-gAiyn1NDxJA"}}],"requestBody":{"description":"Create or update a rotate secret schedule.","content":{"application/json":{"schema":{"required":["action","revoke_old_secret_time"],"type":"object","properties":{"action":{"type":"string","description":"`new` - Create a new client secret rotate schedule.\n`update` - Update `revoke_old_secret_time` of an existing client secret rotate schedule.","example":"update","enum":["new","update"]},"revoke_old_secret_time":{"type":"string","description":"Old and new secret will both work until the old secret is revoked.\nTo revoke the old secret immediately, set this value to `now`.\nTo set a time to revoke the old secret, this value should be in UTC time format, `yyyy-MM-dd'T'HH:mm:ss'Z'`. When action = `new`, this time cannot exceed more than 30 days. When action = `update`, this time cannot exceed more than 30 days starting from the initial new request.\n","format":"date-time","example":"2025-03-14T12:34:56Z"}}}}}},"responses":{"201":{"description":"Rotate client secret successfully.","content":{"application/json":{"schema":{"oneOf":[{"required":["new_secret","revoke_old_secret_time","secret_id"],"type":"object","properties":{"secret_id":{"type":"string","description":"The secret ID of new client secret.","example":"0dSHIBbdSYWCzlE8d9DKFw"},"new_secret":{"type":"string","description":"The new client secret.","example":"hjdgsuiuyer3956294832hjfgsjxf"},"revoke_old_secret_time":{"type":"string","description":"The UTC time when the secret will be rotated. Can be 'now' or a specific time in UTC.","format":"date-time","example":"2025-03-15T12:34:56Z"}},"description":"The response when action is `new`."},{"required":["revoke_old_secret_time","secret_id"],"type":"object","properties":{"secret_id":{"type":"string","description":"The secret ID of new client secret.","example":"0dSHIBbdSYWCzlE8d9DKFw"},"revoke_old_secret_time":{"type":"string","description":"The UTC time when the secret will be rotated. The UTC time when the secret will be rotated. Can be 'now' or a specific time in UTC.","format":"date-time","example":"2025-03-15T12:34:56Z"}},"description":"The response when action is `update`."}]}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  Request validation failed. \n\n **Error Code:** `1500` <br>\n Invalid format of request param `revoke_old_secret_time`. Should be in format `yyyy-MM-dd'T'HH:mm:ss'Z'` for example `2025-03-14T12:34:56Z`. <br>\n**Error Code:** `1500` <br>\n Invalid request parameter `action`. Can be `new` or `update`. <br>\n**Error Code:** `2000` <br>\n Working on processing your request. Can only change client secret rotate schedule 3 times in 15 minutes. <br>\n**Error Code:** `1500` <br>\n Missing request parameters. <br>\n**Error Code:** `2001` <br>\n Invalid value of request param `revoke_old_secret_time`. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  Unauthorized \n\n **Error Code:** `201` <br>\n Invalid access token, does not contain scopes:[marketplace:update:client_secret]. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  Not found. \n\n **Error Code:** `1401` <br>\n App ID does not exist. <br>\n**Error Code:** `1401` <br>\n Secret ID does not exist. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace:update:client_secret"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-granular-scopes":["marketplace:update:client_secret"]}}},"/marketplace/apps/{appId}/webhook_logs":{"get":{"tags":["App"],"summary":"Get webhook logs","description":"Get users' webhook call logs and query records from the past 7 days. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read`,`marketplace_app:read:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getWebhookLogs","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"nqSreNVsQ2eGzUMGnA8AHA"}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"from","in":"query","description":"Start date in format: `yyyy-MM-dd'T'HH:mm:ss'Z'`. The &quot;from&quot; and &quot;to&quot; date range must be within 7 days.","required":false,"schema":{"type":"string","example":"2020-05-01T19:13:02Z"}},{"name":"to","in":"query","description":"End date.","required":false,"schema":{"type":"string","example":"2020-05-02T19:13:05Z"}},{"name":"event","in":"query","description":"The event name. All types of events are queried if the parameter is not passed.","required":false,"schema":{"type":"string","example":"meeting.created"}},{"name":"type","in":"query","description":"The query type: \n* `1` &mdash; Query all webhook logs. \n* `2` &mdash; Only query failed webhook logs. \n* `3` &mdash; Only query successful webhook logs.","required":false,"schema":{"type":"integer","example":1,"default":2,"enum":[1,2,3]}},{"name":"retry_num","in":"query","description":"The `retry_num` is used to filter webhook logs based on retry attempts. If not provided, all webhook logs are returned regardless of retry status.\n* `0` &mdash; Filters logs for initial deliveries (non-retry requests).\n* `1` &mdash; Filters logs for the first retry of webhook requests.\n* `2` &mdash; Filters logs for the second retry of webhook requests.\n* `3` &mdash; Filters logs for the third retry of webhook requests.","required":false,"schema":{"maximum":3,"minimum":0,"type":"integer","example":0}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nWebhook logs info returned.","content":{"application/json":{"schema":{"type":"object","properties":{"next_page_token":{"type":"string","description":"The API uses the next page token to paginate through large result sets. It returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"b43YBRLJFg3V4vsSpxvGdKIGtNbxn9h9If2"},"page_size":{"type":"integer","description":"The page size of the result","example":30},"webhook_logs":{"type":"array","description":"A list of webhook logs that match the specified query conditions.","items":{"type":"object","properties":{"event":{"type":"string","description":"The event's name.","example":"meeting.deleted"},"status":{"type":"integer","description":"The http code returned from the endpoint. If the webhook is not sent to the endpoint due to an internal error, the status is `-1`","example":429},"failed_reason_type":{"type":"integer","description":"The reason type for connection error messages: \n* `1` &mdash; read time out. \n* `2` &mdash; connection refused. \n* `3` &mdash; hystrix fallback. \n* `4` &mdash; hystrix timeout. \n* `5` &mdash; async error. \n* `6` &mdash; DNS forbidden. \n* `7` &mdash; remote error. \n* `8` &mdash; in delegate white list. \n* `9` &mdash; cert error. \n* `10` &mdash; need instant retry. \n* `11` &mdash; host name verify failed. \n* `12` &mdash; TLS verify failed. \n* `13` &mdash; DNS resolve time out. \n* `14` &mdash; no client. \n* `15` &mdash; resource not found. \n* `16` &mdash; too many requests.","example":1,"enum":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]},"user_id":{"type":"string","description":"The user's unique id.","example":"IYHrdpjrS3ubOf7rPkkg8w"},"endpoint":{"type":"string","description":"The webhook callback url.","example":"https://example.com"},"subscription_id":{"type":"string","description":"The subscription's unique id.","example":"9qwt8mkBEW2O6fPuxBpXpA"},"request_headers":{"type":"string","description":"The request header.","example":"N/A"},"request_body":{"type":"string","description":"The request body","example":"{\"event\":\"meeting.created\",\"payload\":{\"account_id\":\"oFPqQAp3Q0u3yLXXrWuQuy\",\"event_ts\":1663654515392}"},"response_headers":{"type":"string","description":"The response headers.","example":"{\\\"Server\\\":\\\"nginx\\\",\\\"Content-Type\\\":\\\"text/html; charset=UTF-8\\\"}"},"response_body":{"type":"string","description":"The response body.","example":"Timeout connecting to server."},"date_time":{"type":"string","description":"The recorded time of the log.","example":"2022-09-09T08:11:387Z"},"trace_id":{"type":"string","description":"A distributed tracing identifier used in this webhook request context, commonly used for troubleshooting. When multiple webhook events are triggered within the same context, they may share the same `trace_id`.","example":"WEB_5f1752ba04e4ffeccde2f2a923c106f9"},"request_id":{"type":"string","description":"The unique identifier for a webhook request, which remains unchanged across retry attempts.","example":"e8ca3e3c_0196_4dc8_9f9e_81217d9000e6"},"retry_num":{"type":"integer","description":"The number of retry attempts for this webhook request. A value of 0 signifies that the request is the initial send and not a retry.","example":0,"enum":[0,1,2,3]}}}}},"description":"The Webhook call logs."}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  \n\n **Error Code:** `1506` <br>\n The 'retry_num' value must be an integer within the range of 0 to 3. <br>\n"},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `201` <br>\n You do not have permission to access the targeted resource. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1401` <br>\n APP ID does not exist: {$appId}. <br>\n**Error Code:** `1501` <br>\n The 'to' date must be after the 'from' date. <br>\n**Error Code:** `1502` <br>\n The date range must be within the last seven days. <br>\n**Error Code:** `1503` <br>\n The dates must follow the format: `yyyy-MM-dd'T'HH:mm:ss'Z'`. <br>\n**Error Code:** `1504` <br>\n The 'from' date must be before the current date(UTC). <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read","marketplace_app:read:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read","marketplace_app:read:admin"]}}},"/marketplace/monetization/entitlements":{"get":{"tags":["App"],"summary":"Get app user entitlements","description":"Get the app user's entitlements information.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_entitlement:read:admin`,`marketplace_entitlement:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:list_user_entitlements`,`marketplace:read:list_user_entitlements:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"getAppUserEntitlementRequests","parameters":[{"name":"user_id","in":"query","description":"The user ID of the user who's requesting entitlement information.","required":false,"schema":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nEntitlement information returned.","content":{"application/json":{"schema":{"type":"array","items":{"title":"root","type":"object","properties":{"id":{"type":"string","description":"The entitlement ID.","example":"123e4567-e89b-12d3-a456-426655440000"},"plan_name":{"type":"string","description":"The name of the plan of the user with entitlements.","example":"PRO"},"plan_id":{"type":"string","description":"The UUID of the plan name.","example":"f3318144-b66c-4c1e-a987-ebc224e2b706"}}}}}}},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  \n\n **Error Code:** `1505` <br>\n Missing app permissions. Make sure marketplace_entitlement:read:admin scope is assigned. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1002` <br>\n No entitlements assigned to the user for the app. <br>\n**Error Code:** `1402` <br>\n app is not monetized <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_entitlement:read:admin","marketplace_entitlement:read","marketplace:read:list_user_entitlements","marketplace:read:list_user_entitlements:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["Marketplace:Edit"],"x-macro-scopes":["marketplace_entitlement:read:admin","marketplace_entitlement:read"],"x-granular-scopes":["marketplace:read:list_user_entitlements","marketplace:read:list_user_entitlements:admin"]}}},"/marketplace/users/{userId}/apps":{"get":{"tags":["App"],"summary":"Get a user's app requests","description":"Use this API to get all of a user's app requests. \n\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read:admin`,`marketplace_app:read`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:list_user_app_requests:admin`,`marketplace:read:list_user_app_requests`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserAppRequests","parameters":[{"name":"userId","in":"path","description":"The user's ID.","required":true,"schema":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}},{"name":"page_size","in":"query","description":"The number of records returned within a single API call.","required":false,"schema":{"maximum":300,"type":"integer","example":30,"default":30}},{"name":"next_page_token","in":"query","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","required":false,"schema":{"type":"string","example":"R4aF9Oj0fVM2hhezJTEmSKaBSkfesDwGy42"}},{"name":"type","in":"query","description":"The type of app request to query: \n* `active_requests` &mdash; All active app requests. \n* `past_requests` - All past app requests.","required":false,"schema":{"type":"string","example":"active_requests","default":"active_requests","enum":["active_requests","past_requests"]}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser app requests returned.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"next_page_token":{"type":"string","description":"The next page token is used to paginate through large result sets. The API returns a next page token whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.","example":"w7587w4eiyfsudgf"},"page_size":{"maximum":300,"type":"integer","description":"The number of records returned with a single API call.","example":30,"default":30}}},{"type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"app_id":{"type":"string","description":"The app's ID.","example":"nqSreNVsQ2eGzUMGnA8AHA"},"app_name":{"type":"string","description":"The app's name.","example":"Example App"},"app_type":{"type":"string","description":"The type of app: \n* `ZoomApp` &mdash; A Zoom app. \n* `ChatBotApp` &mdash; A ChatBot app. \n* `OAuthApp` &mdash; A OAuth app.","example":"ZoomApp","default":"OAuthApp","enum":["ZoomApp","ChatBotApp","OAuthApp"]},"app_usage":{"type":"integer","description":"The app's usage categorization: \n* `1` &mdash; The app is under admin management. \n* `2` &mdash; Users have access to the app.","example":1,"default":1,"enum":[1,2]},"app_status":{"type":"string","description":"The app's publication status: \n* `PUBLISHED` &mdash; The app is published. \n* `UNPUBLISHED` &mdash; The app is not published.","example":"PUBLISHED","default":"PUBLISHED","enum":["PUBLISHED","UNPUBLISHED"]},"request_id":{"type":"string","description":"The app request ID.","example":"zZLSQoL6S0OB6asaZ3zAOQ"},"request_date_time":{"type":"string","description":"The app request's creation date and time. This field only returns when the `type` value is 'active'.","format":"date-time","example":"2021-07-21T17:32:28Z"},"request_status":{"type":"string","description":"The status of the user's app request: \n* `pending` &mdash; The request is pending approval. \n* `approved` - The request is approved. \n* `rejected` - The request is rejected.","example":"pending","default":"pending","enum":["pending","approved","rejected"]}}}}},"description":"Information about the user's app request status."}]}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read:admin","marketplace_app:read","marketplace:read:list_user_app_requests:admin","marketplace:read:list_user_app_requests"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read:admin","marketplace_app:read"],"x-granular-scopes":["marketplace:read:list_user_app_requests:admin","marketplace:read:list_user_app_requests"]}}},"/marketplace/users/{userId}/apps/{appId}/subscription":{"patch":{"tags":["App"],"summary":"Enable or disable user app subscription","description":"Enable or disable a user's app subscription.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `LIGHT`","operationId":"Enable/Disableuserappsubscription","parameters":[{"name":"appId","in":"path","description":"Application ID.","required":true,"schema":{"type":"string","example":"cb4lGCrFS8Kp-Nns7uLl1Q"}},{"name":"userId","in":"path","description":"User ID.","required":true,"schema":{"type":"string","example":"-V4lGCrFS8Kp-Nns7ud224"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["action"],"type":"object","properties":{"action":{"type":"string","description":"Enable or disable a user's app subscription.","example":"enable","enum":["enable","disable"]}}}}}},"responses":{"204":{"description":"**HTTP Status Code:** `204`    App subscription status updated."},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1001` <br>\n User does not exist or does not belong to this account. <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write:admin","marketplace:write:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-macro-scopes":["marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app:admin"]}}},"/marketplace/users/{userId}/entitlements":{"get":{"tags":["App"],"summary":"Get a user's entitlements","description":"Get a user's entitlements.  \n\n**Prerequisites** \n- An existing, authorized application.\n- A valid access token obtained using the client_credentials authorization grant_type. See [documentation](/docs/api/webhooks/#step-1-request-an-access-token) for details.\n\n**Note** These endpoints use app-specific scopes that won't appear in your Marketplace build flow, but will be included in the access token payload.\n\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_entitlement:read`,`marketplace_entitlement:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:list_user_entitlements`,`marketplace:read:list_user_entitlements:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getUserEntitlementRequests","parameters":[{"name":"userId","in":"path","description":"The user's user ID or email address. For user-level apps, pass the `me` value.","required":true,"schema":{"type":"string","example":"f1sTWCMaTmOIZxLMlmHvEQ"}}],"responses":{"200":{"description":"**HTTP Status Code:** `200`   \n \nUser entitlements returned.","content":{"application/json":{"schema":{"type":"object","properties":{"entitlements":{"type":"array","description":"The entitlements.","items":{"type":"object","properties":{"entitlement_id":{"type":"integer","description":"The entitlement ID.","format":"int64","example":1}}}}}}}}},"401":{"description":"**HTTP Status Code:** `401` <br>\n Unauthorized  \n\n **Error Code:** `201` <br>\n This API only supports OAuth2 for authorization. <br>\nUnauthenticated users are not permitted access to the targeted resource. <br>\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  \n\n **Error Code:** `1002` <br>\n No entitlements assigned to the user for the app <br>\n"},"409":{"description":"**HTTP Status Code:** `409` <br>\n Conflict  \n\n **Error Code:** `1402` <br>\n App is not monetized <br>\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_entitlement:read","marketplace_entitlement:read:admin","marketplace:read:list_user_entitlements","marketplace:read:list_user_entitlements:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Edit"],"x-macro-scopes":["marketplace_entitlement:read","marketplace_entitlement:read:admin"],"x-granular-scopes":["marketplace:read:list_user_entitlements","marketplace:read:list_user_entitlements:admin"]}}},"/zoomapp/deeplink":{"post":{"tags":["Apps"],"summary":"Generate an app deeplink","description":"Create an app deeplink. \n\n \n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `app:deeplink:write`,`app:deeplink:write:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `Medium`","operationId":"generateAppDeeplink","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"integer","description":"The type of deeplink. \n* `1` &mdash; Generate a deeplink that opens Zoom App in-meeting if the meeting is in progress, if not opens Zoom App in Apps Tab. \\n* `2` &mdash;  Generate a deeplink that refreshes Chat App Webview. \n\n This value defaults to `1`.","example":1,"enum":[1,2]},"user_id":{"type":"string","description":"The 'userId' property of the app deeplink. This field only applies to account level OAuth token.","example":"D40dy5L7SJiSTayIvRV9Lw"},"action":{"maxLength":256,"type":"string","description":"The action of the deeplink, it's a user-defined string.","example":"openPageX"}}}}}},"responses":{"200":{"description":"**Status Code:** `200`","content":{"application/json":{"schema":{"type":"object","properties":{"deeplink":{"type":"string","description":"The app deeplink.","example":"https://zoom.us/launch/chatapp/Zx_cSBEZUWRUMIf454A3sRpEzRp8kVmFINKvSBMok37i5bNRqtLbUxy681Qh_wVhFyW2AhyyF2LbtqSz9pFckUUupHg.wEt88YlHQpzp635x"}}}}}},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request\n\n**Error Code:** `124` <br>\nInvalid access token.\n\n**Error Code:** `300` <br>\nInvalid action. The maximum length of the value is 256.\n\n"},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found\n\n**Error Code:** `1001` <br>\nUser does not exist: $userId.\n\n"},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["app:deeplink:write","app:deeplink:write:admin"],"openapi_authorization":[]}],"x-extensions":{"x-macro-scopes":["app:deeplink:write","app:deeplink:write:admin"]}}},"/marketplace/apps/manifest/validate":{"post":{"tags":["Manifest"],"summary":"Validate an app manifest","description":"Validates an app manifest.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read`,`marketplace_app:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:app`,`marketplace:read:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"validatingManifest","requestBody":{"content":{"application/json":{"schema":{"required":["manifest"],"type":"object","properties":{"manifest":{"type":"object","description":"The manifest to be validated. It's validated according to the manifest schema"},"app_id":{"type":"string","description":"The ID of the app whose configuration you want to validate. ","example":"Zvga6CFZTn6XwMUVbdxCZg"}},"description":"root"}}}},"responses":{"200":{"description":"The typical success response.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Whether the check is successful.","example":false},"error":{"type":"string","description":"This field returns an rrror code.","example":"invalid_manifest"},"errors":{"type":"array","description":"The error list.","items":{"required":["message","setting"],"type":"object","properties":{"message":{"type":"string","description":"The error message.","example":"Event Subscription requires either Request URL or Socket Mode Enabled"},"setting":{"type":"string","description":"Indicator to error field.","example":"/settings/event_subscriptions"}},"description":"The error item."}}}}}}},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read","marketplace_app:read:admin","marketplace:read:app","marketplace:read:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":["MarketPlace:Read"],"x-macro-scopes":["marketplace_app:read","marketplace_app:read:admin"],"x-granular-scopes":["marketplace:read:app","marketplace:read:app:admin"]}}},"/marketplace/apps/{appId}/manifest":{"get":{"tags":["Manifest"],"summary":"Export an app manifest from an existing app","description":"Exports an app's manifest file.\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:read`,`marketplace_app:read:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:read:app`,`marketplace:read:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `MEDIUM`","operationId":"getAppManifest","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"8j92qLGYSLydMFgeCRspaw"}}],"responses":{"200":{"description":"Get app's manifest","content":{"application/json":{"schema":{"type":"object","properties":{"manifest":{"type":"object","properties":{},"description":"The manifest data of the app."}}}}}},"404":{"description":"**HTTP Status Code:** `404` <br>\n Not Found  App not exists \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:read","marketplace_app:read:admin","marketplace:read:app","marketplace:read:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_app:read","marketplace_app:read:admin"],"x-granular-scopes":["marketplace:read:app","marketplace:read:app:admin"]}},"put":{"tags":["Manifest"],"summary":"Update an app by manifest","description":"Updates an app from an app manifest\n\n**[Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace_app:write`,`marketplace_app:write:admin`\n\n**[Granular Scopes](https://developers.zoom.us/docs/integrations/oauth-scopes-overview/):** `marketplace:write:app`,`marketplace:write:app:admin`\n\n**[Rate Limit Label](https://marketplace.zoom.us/docs/api-reference/rate-limits#rate-limits):** `HEAVY`","operationId":"updateAppByManifest","parameters":[{"name":"appId","in":"path","description":"The app's ID.","required":true,"schema":{"type":"string","example":"8j92qLGYSLydMFgeCRspaw"}}],"requestBody":{"content":{"application/json":{"schema":{"required":["manifest"],"type":"object","properties":{"manifest":{"type":"object","description":"An app manifest object. It should meet valid manifest schema. This API replaces the entire previous configuration. As a result, the manifest needs to contain all modified and unmodified fields."}},"description":"The root."}}}},"responses":{"204":{"description":"Update app successfully."},"400":{"description":"**HTTP Status Code:** `400` <br>\n Bad Request  The app manifest format is invalid \n\n "},"403":{"description":"**HTTP Status Code:** `403` <br>\n Forbidden  The current user does not have permission to edit this app. \n\n "},"429":{"description":"**HTTP Status Code:** `429` <br>\n Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/). \n\n "}},"security":[{"openapi_oauth":["marketplace_app:write","marketplace_app:write:admin","marketplace:write:app","marketplace:write:app:admin"],"openapi_authorization":[]}],"x-extensions":{"x-permissions":[],"x-macro-scopes":["marketplace_app:write","marketplace_app:write:admin"],"x-granular-scopes":["marketplace:write:app","marketplace:write:app:admin"]}}}},"components":{"securitySchemes":{"openapi_authorization":{"type":"apiKey","name":"Authorization","in":"header"},"openapi_oauth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/","tokenUrl":"","refreshUrl":"","scopes":{"app:notification:read":"app:notification:read","app:notification:write":"app:notification:write","marketplace:write:notifications":"marketplace:write:notifications","marketplace_custom_fields:read":"marketplace_custom_fields:read","marketplace_custom_fields:read:admin":"marketplace_custom_fields:read:admin","marketplace:read:custom_fields:admin":"marketplace:read:custom_fields:admin","marketplace:read:custom_fields":"marketplace:read:custom_fields","marketplace_app:write":"marketplace_app:write","marketplace_app:write:admin":"marketplace_app:write:admin","marketplace:write:app":"marketplace:write:app","marketplace:write:app:admin":"marketplace:write:app:admin","marketplace_app:read:admin":"marketplace_app:read:admin","marketplace:read:list_apps:admin":"marketplace:read:list_apps:admin","marketplace_app:read":"marketplace_app:read","marketplace:read:app":"marketplace:read:app","marketplace:read:app:admin":"marketplace:read:app:admin","marketplace:read:list_api_logs:admin":"marketplace:read:list_api_logs:admin","marketplace:write:app_deeplink:admin":"marketplace:write:app_deeplink:admin","marketplace:write:app_pre_approve:admin":"marketplace:write:app_pre_approve:admin","marketplace:read:app_request:admin":"marketplace:read:app_request:admin","marketplace:write:app_request:admin":"marketplace:write:app_request:admin","marketplace:update:app_request:admin":"marketplace:update:app_request:admin","marketplace:update:client_secret":"marketplace:update:client_secret","marketplace_entitlement:read:admin":"marketplace_entitlement:read:admin","marketplace_entitlement:read":"marketplace_entitlement:read","marketplace:read:list_user_entitlements":"marketplace:read:list_user_entitlements","marketplace:read:list_user_entitlements:admin":"marketplace:read:list_user_entitlements:admin","marketplace:read:list_user_app_requests:admin":"marketplace:read:list_user_app_requests:admin","marketplace:read:list_user_app_requests":"marketplace:read:list_user_app_requests","app:deeplink:write":"app:deeplink:write","app:deeplink:write:admin":"app:deeplink:write:admin"}}}}}}}