{
"swagger": "2.0",
"info": {
"version": "2.0.0",
"title": "Zoom API",
"description": "The Zoom API allows developers to safely and securely access information from Zoom. You can use this API to build private services or public applications on the [Zoom App Marketplace](http://marketplace.zoom.us). To learn how to get your credentials and create private/public applications, read our [Authorization Guide](https://marketplace.zoom.us/docs/guides/authorization/credentials).\nAll endpoints are available via `https` and are located at `api.zoom.us/v2/`.\n\nFor instance you can list all users on an account via `https://api.zoom.us/v2/users/`.",
"contact": {
"email": "developersupport@zoom.us",
"name": "Zoom Developers",
"url": "https://developer.zoom.us/"
}
},
"host": "api.zoom.us",
"basePath": "/v2",
"securityDefinitions": {
"auth": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "https://zoom.us/oauth/authorize",
"tokenUrl": "https://zoom.us/oauth/token",
"scopes": {}
}
},
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/accounts": {
"get": {
"description": "List all the Sub Accounts under the Master Account.
\n\n\n
**Prerequisites:**
\n* Pro or a higher paid account with Master Account option enabled.
\n**Scope**: `account:read:admin`\n
",
"summary": "accounts",
"tags": [
"Accounts"
],
"operationId": "accounts",
"deprecated": false,
"produces": [
"application/json"
],
"parameters": [
{
"name": "page_size",
"in": "query",
"required": false,
"default": 30,
"type": "integer",
"format": "int32",
"maximum": 300.0,
"exclusiveMaximum": false,
"description": "The number of records returned within a single API call."
},
{
"name": "page_number",
"in": "query",
"required": false,
"default": 1,
"type": "integer",
"format": "int32",
"description": "The current page number of returned records."
}
],
"responses": {
"200": {
"description": "Account list returned.",
"schema": {
"$ref": "#/definitions/AccountList"
},
"headers": {}
}
}
},
"post": {
"description": "Create a Sub Account under the Master Account.
\n**Prerequisites:**
\n* Pro or a higher paid account with Master Account option enabled.
\n**Scope**: `account:write:admin`
\n ",
"summary": "accountCreate",
"tags": [
"Accounts"
],
"operationId": "accountCreate",
"deprecated": false,
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"description": "Account.",
"schema": {
"$ref": "#/definitions/body10"
}
}
],
"responses": {
"201": {
"description": "Account created.",
"schema": {
"$ref": "#/definitions/accountCreateResponse"
},
"examples": {
"application/json": {
"id": "string",
"owner_id": "string",
"owner_email": "string",
"created_at": "string"
}
},
"headers": {
"Content-Location": {
"description": "Location of the created account.",
"type": "string"
}
}
},
"400": {
"description": "**HTTP Status Code:** `400`
\n**Error Code:** `1107`
\nEmail domain is blocked.
\n**Error Code:** `1111`
\nPassword can’t use the same characters.
\nPassword can’t use continuation character such as '’abc’’,’’123’’.\n\n",
"schema": {}
},
"409": {
"description": "**HTTP Status Code:** `409`
\n**Error Code:** `1005`
\nEmail{email} has already been used.",
"schema": {}
}
}
}
},
"/accounts/{accountId}": {
"get": {
"description": "Get a Sub Account under the Master Account.
\n**Prerequisites:**\n* Pro or a higher paid account with Master Account option enabled.
\n**Scope**: `account:write:admin`
\n \n",
"summary": "account",
"tags": [
"Accounts"
],
"operationId": "account",
"deprecated": false,
"produces": [
"application/json"
],
"parameters": [
{
"name": "accountId",
"in": "path",
"required": true,
"type": "string",
"description": "The account ID."
}
],
"responses": {
"200": {
"description": "**HTTP Status Code**: `200`
\nAccount object returned.",
"schema": {
"$ref": "#/definitions/accountResponse"
},
"headers": {}
},
"404": {
"description": "**HTTP Status Code**: `404`
\n**Error Code:** `2001`
This account does not exist or does not belong to you:{subAccountId}.",
"schema": {}
}
}
},
"delete": {
"description": "Disassociate a Sub Account from the Master Account. This will leave the Sub Account intact but it will no longer be associated with the master account.
\n\n**Prerequisites:**\n* Pro or a higher paid account with Master Account option enabled.
\n**Scope**: `account:write:admin`
\n ",
"summary": "accountDisassociate",
"tags": [
"Accounts"
],
"operationId": "accountDisassociate",
"deprecated": false,
"produces": [
"application/json"
],
"parameters": [
{
"name": "accountId",
"in": "path",
"required": true,
"type": "string",
"description": "The account ID."
}
],
"responses": {
"204": {
"description": "**HTTP Status Code**: `204`
Account deleted.",
"headers": {}
},
"404": {
"description": "**HTTP Status Code**: `404`
\n**Error Code:** `2000`
Cannot disassociate a paid account.
\n**Error Code:** `2001`
This account does not exist or does not belong to you: {subAccountId}.",
"schema": {}
}
}
}
},
"/accounts/{accountId}/options": {
"patch": {
"description": "Update a Sub Account's options under the Master Account.
\n\n**Prerequisites:**\n* Pro or a higher paid account with Master Account option enabled.
\n**Scope**: `account:write:admin`
\n ",
"summary": "accountOptionsUpdate",
"tags": [
"Accounts"
],
"operationId": "accountOptionsUpdate",
"deprecated": false,
"produces": [
"application/json"
],
"parameters": [
{
"name": "accountId",
"in": "path",
"required": true,
"type": "string",
"description": "The account ID."
},
{
"name": "body",
"in": "body",
"required": true,
"description": "",
"schema": {
"$ref": "#/definitions/AccountOptions"
}
}
],
"responses": {
"200": {
"description": "**Error Code:** `200`
\nSub account has plan already, you can't change pay mode.",
"headers": {}
},
"400": {
"description": "**HTTP Status Code:** `400`
\n**Error Code:** `2100`
The collection method cannot be changed after the purchase is complete.",
"schema": {}
},
"404": {
"description": "**HTTP Status Code:** `404`
\n**Error Code:** `2001`
\nThis account does not exist or does not belong to you: {subAccountId}.",
"schema": {}
}
}
}
},
"/accounts/{accountId}/settings": {
"get": {
"description": "Get the settings of a Sub Account under a Master Account.
\nTo get the settings of a Master Account, use `me` as the value for the `accountId` path parameter.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
\n **Prerequisites**:\n * The Sub Account must be a paid account.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
Note: The force_pmi_jbh_password
field under meeting settings was deprecated on September 22, 2019. Use require_password_for_pmi_meetings
field as an alternative for the same functionality.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed\n\tOAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: This API only supports user-managed OAuth app.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
Note: The `force_pmi_jbh_password` field under meeting settings is planned to be deprecated on September 22, 2019. This field will be replaced by another field that will provide the same functionality.
API End of Life: This API will no longer be supported after April, 2020. Learn more.
API End of Life: This API will no longer be supported after April, 2020. Learn more.
Note: Starting August 18, 2019, if an account holds more than 5000 users, the response data will no longer be sorted by email.
\n\n**Scopes:** `user:read:admin`Note: If a user's status is pending, only `id` and `created_at` fields will be returned. The value of `created_at` will be the time at which the API call was made until the user activates their account.
", "summary": "user", "tags": [ "Users" ], "operationId": "user", "deprecated": false, "produces": [ "application/json" ], "parameters": [ { "name": "userId", "in": "path", "required": true, "type": "string", "description": "The user ID or email address of the user. For user-level apps, pass `me` as the value for userId." }, { "name": "login_type", "in": "query", "required": false, "enum": [ "0", "1", "99", "100", "101" ], "type": "string", "description": "`0` - Facebook.Note: We will stop supporting this API from September 30, 2019.
\nCheck if the zpk is expired. The zpk object is used to authenticate a user.Note: Starting November 17, 2019, the behavior of this API will change so that you will be able to successfully check to see if a user is a registered Zoom user only if the user is within your account. If you provide an email address of a user who is not in your account, the value of \"existed_email\" parameter will be \"false\" irrespective of whether or not the user is registered with Zoom.
\n\n**Scopes:** `user:read:admin` `user:read`\n \n", "summary": "userEmail", "tags": [ "Users" ], "operationId": "userEmail", "deprecated": false, "produces": [ "application/json" ], "parameters": [ { "name": "email", "in": "query", "required": true, "type": "string", "description": "The email address to be verified." } ], "responses": { "200": { "description": "**HTTP Status Code:** `200`