Whiteboard
- OpenAPI Version:
3.1.1 - API Version:
2
The Zoom Whiteboard APIs allow you to manage your Zoom Whiteboard. For example, collaborative persistent whiteboard that allows participants to share and collaborate on a virtual whiteboard in real time The Zoom Whiteboard REST API for Zoom Whiteboard allows developers to interact with various Zoom features, including Zoom Whiteboard. Developers can create and manage whiteboards programmatically using these APIs.
Servers
- URL:
https://api.zoom.us/v2
Operations
List whiteboards sessions
- Method:
GET - Path:
/whiteboards/sessions - Tags: Archiving
Creates a list of archived sessions under current account.
Scopes: whiteboard_content:read,whiteboard_content:read:admin
Granular Scopes: whiteboard:read:list_sessions,whiteboard:read:list_sessions:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 The returned archived sessions list.
Content-Type: application/json
-
from(required)string, format:date-time— The queried start date. -
next_page_token(required)string— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. Note: If you use `next_page_token` as a parameter, your other request parameters should be changeless to make sure that the large result set is what you want. For example, if your to parameter is for a future time, Zoom resets this value to the current time and returns this value in the response body, along with the `next_page_token` value. Use these same to and `next_page_token` values in requests for the remaining results set; otherwise you will get an invalid token error. -
page_size(required)integer, default:30— The number of records returned per page in a single API call. -
to(required)string, format:date-time— The queried end date. -
sessionsarray— The whiteboard archived sessions list.Items:
-
end_timestring, format:date-time— The session's end time. It should be `end_time < to` -
expire_timestring, format:date-time— The session's expire time. -
idstring— The session's unique ID. -
regulated_participantsarray— The session participant under this account.Items:
-
emailstring— The email of participant. `nullable` If the participant is not part of the session's account, this returns an empty string value. -
join_whiteboard_timestring, format:date-time— The user join the whiteboard time. -
leave_whiteboard_timestring, format:date-time— The user leave the whiteboard time. -
user_idstring— The unique ID of participant user in this session. -
user_namestring— The name of participant user in this session.
-
-
start_timestring, format:date-time— The session's start time. It should be `from < start_time` -
whiteboard_idstring— The ID of whiteboard. -
whiteboard_namestring— The name of whiteboard.
-
-
total_recordsinteger— The total number of returned sessions records.
Example:
{
"from": "2021-03-12T02:12:27Z",
"to": "2021-03-12T02:12:27Z",
"page_size": 30,
"next_page_token": "IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2",
"sessions": [
{
"id": "a2f19f96-9294-4f51-8134-6f0eea108eb2",
"start_time": "2021-03-11T05:41:36Z",
"end_time": "2021-03-11T05:41:36Z",
"whiteboard_id": "HY8-AC_HSou4SXY1S-OmOg",
"whiteboard_name": "example_whiteboard_name",
"expire_time": "2021-03-26T06:41:36Z",
"regulated_participants": [
{
"user_id": "wf3h7uo1dk0v53bl",
"user_name": "Jack",
"join_whiteboard_time": "2021-03-26T06:41:36Z",
"leave_whiteboard_time": "2021-03-26T07:41:36Z",
"email": "user@example.com"
}
]
}
],
"total_records": 20
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid parameter. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Download Whiteboards activity file
- Method:
GET - Path:
/whiteboards/sessions/activity/download/{path} - Tags: Archiving
Use this API to download the Whiteboard archival file. For obtaining the download URL, please consult the List whiteboard sessions activities documentation. Scroll down under field on schema to documentation URL string.
Scopes: whiteboard_content:read,whiteboard_content:read:admin
Granular Scopes: whiteboard:read:archived_file,whiteboard:read:archived_file:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Returns a file stream.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid path. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34000` <br> The resource not found. The file does not exist or the file has expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List whiteboard sessions activities
- Method:
GET - Path:
/whiteboards/sessions/{seesionId} - Tags: Archiving
Lists a session's activity information.
Scopes: whiteboard_content:read,whiteboard_content:read:admin
Granular Scopes: whiteboard:read:session,whiteboard:read:session:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 The session activity information.
Content-Type: application/json
-
page_size(required)integer— The number of records returned within a single API call. -
total_records(required)number— The total number of returned activities records. -
activitiesarray— The activity list of a session.Items:
-
collaborator_idstring— The participant's unique ID. `not nullable` -
collaborator_namestring— The participant's display name. -
contentstring— The text content generated by the activity. -
create_timestring, format:date-time— The activity create time. -
download_urlstring— The URL to download the the archive file. OAuth apps If a user has authorized and installed your OAuth app that contains `whiteboard:read:archived_file` or `whiteboard:read:archived_file:admin` scopes, use the user's [OAuth access token](https://developers.zoom.us/docs/integrations/oauth/) to download the file. More details refer [Download Whiteboards activity file](https://developers.zoom.us/docs/api/rest/reference/whiteboard/methods/#operation/Downloadwhiteboardsactivityfile) For example: `https://{{base-domain}}/whiteboards/sesssions/activity/download/xxx--header 'Authorization: Bearer {{OAuth-access-token}}'` -
emailstring— The email of participant. `nullable` If the participant is not part of the session's account, this returns an empty string value. -
idstring— The unique ID of an activity. -
object_idsarray— The IDs of the whiteboard object associated with this activity.Items:
string— The object ID in the whiteboard. -
typestring— The operation description. -
user_idstring— The ID of user. `nullable` If the participant is **not** part of the session's account, this returns an empty string value.
-
-
end_timestring, format:date-time— The session's end time. -
expire_timestring, format:date-time— The session's expire time. -
next_page_tokenstring— The next page token paginates through a large set of results. A next page token returns whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes. **Note**: if you use `next_page_token` as a parameter, your other request parameters should be changeless to make sure that the large result set is what you want. For example, if your to parameter is for a future time, Zoom resets this value to the current time and returns this value in the response body, along with the `next_page_token` value. Use these same to and `next_page_token` values in requests for the remaining results set; otherwise you will get an invalid token error. -
session_idstring— The unique ID of current session. -
start_timestring, format:date-time— The session's start time. -
whiteboard_idstring— The ID of the Zoom Whiteboard. -
whiteboard_namestring— The name of Zoom Whiteboard.
Example:
{
"page_size": 30,
"next_page_token": "IAfJX3jsOLW7w3dokmFl84zOa0MAVGyMEB2",
"session_id": "a2f19f96-9294-4f51-8134-6f0eea108eb2",
"whiteboard_id": "HY8-AC_HSou4SXY1S-OmOg",
"whiteboard_name": "example_whiteboard_name",
"start_time": "2021-03-11T05:41:36Z",
"end_time": "2021-03-11T06:41:36Z",
"expire_time": "2021-03-26T06:41:36Z",
"activities": [
{
"id": "cc63bce7-cb59-c1dc-fadd-2be734ad1d55",
"type": "add object",
"download_url": "https://example.com/whiteboards/sessions/activity/download/Qg75t7xZBtEbAkjdlgbfdngBBBB",
"create_time": "2021-03-11T05:41:36Z",
"user_id": "wf3h7uo1dk0v53bl",
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"email": "user@example.com",
"content": "This is a activity content demo",
"object_ids": [
"wfx4g6s1dk0v53bl"
]
}
],
"total_records": 30
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34000` <br> The session not exist or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List classification labels
- Method:
GET - Path:
/whiteboards/classification_labels - Tags: Classification Labels
Retrieves all classification labels for the account.
Note: Each account can have a maximum of 30 classification labels. The whiteboard_count field is only returned when using admin scopes.
Scopes: whiteboard_classification_labels:read:admin,whiteboard_classification_labels:read
Granular Scopes: whiteboard:read:list_classification_labels:admin,whiteboard:read:list_classification_labels
Rate Limit Label: LIGHT
Responses
Status: 200 Classification labels retrieved successfully.
Content-Type: application/json
-
labelsarray— List of classification labels.Items:
-
classification_idstring— The unique identifier of the classification label to apply. -
colorstring— The hex color code for the label -
create_timestring, format:date-time— The timestamp when the label was created -
descriptionstring— A description of the classification label -
guideline_urlstring— URL to the classification guidelines document -
is_defaultboolean— Whether this is the default label for new whiteboards -
modify_timestring, format:date-time— The timestamp when the label was last modified -
namestring— The display name of the classification label -
sensitivity_levelinteger— The sensitivity rank of the label. -
whiteboard_countinteger— The number of whiteboards using this classification label (only returned when using admin scopes).
-
-
total_recordsinteger— The total number of classification labels.
Example:
{
"labels": [
{
"classification_id": "abc123xyz",
"name": "Confidential",
"description": "For internal use only",
"color": "#FF5733",
"sensitivity_level": 5,
"guideline_url": "https://example.com/guidelines",
"is_default": false,
"create_time": "2026-01-29T10:30:00Z",
"modify_time": "2026-01-29T10:30:00Z",
"whiteboard_count": 15
}
],
"total_records": 5
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34004` <br> Feature not enabled. Data classification feature is not enabled for this account. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a classification label
- Method:
POST - Path:
/whiteboards/classification_labels - Tags: Classification Labels
Creates a new classification label for the account. The label is immediately available for use.
Note: Each account can have a maximum of 30 classification labels.
Scopes: whiteboard_classification_labels:write:admin
Granular Scopes: whiteboard:write:classification_labels:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
color(required)string— The hex color code for the label. -
name(required)string— The display name of the classification label. -
sensitivity_level(required)integer— The sensitivity rank of the label. -
descriptionstring— A description of the classification label. -
guideline_urlstring, format:uri— URL to the classification guidelines document. -
is_defaultboolean, default:false— Whether this is the default label for new whiteboards.
Example:
{
"name": "Confidential",
"description": "For internal use only",
"color": "#FF5733",
"sensitivity_level": 5,
"guideline_url": "https://example.com/guidelines",
"is_default": false
}
Responses
Status: 201 Classification label created successfully.
Content-Type: application/json
-
classification_id(required)string— The unique identifier of the classification label to apply. -
color(required)string— The hex color code for the label. -
name(required)string— The display name of the classification label. -
sensitivity_level(required)integer— The sensitivity rank of the label. -
create_timestring, format:date-time— The timestamp when the label was created. -
descriptionstring— A description of the classification label. -
guideline_urlstring— URL to the classification guidelines document. -
is_defaultboolean— Whether this is the default label for new whiteboards. -
modify_timestring, format:date-time— The timestamp when the label was last modified.
Example:
{
"classification_id": "abc123xyz",
"name": "Confidential",
"description": "For internal use only",
"color": "#FF5733",
"sensitivity_level": 5,
"guideline_url": "https://example.com/guidelines",
"is_default": false,
"create_time": "2026-01-29T10:30:00Z",
"modify_time": "2026-01-29T10:30:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid field {field_name}, reason: {reason}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34003` <br> Insufficient permissions to manage classification labels. Requires whiteboard management permissions. <br> **Error Code:** `34004` <br> Data classification feature is not enabled for this account. <br>
Status: 409 **HTTP Status Code:** `409` <br> Conflict **Error Code:** `34006` <br> Maximum label limit (30) reached for this account. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get classification label
- Method:
GET - Path:
/whiteboards/classification_labels/{classificationId} - Tags: Classification Labels
Retrieves detailed information about a specific classification label.
Scopes: whiteboard_classification_labels:read:admin
Granular Scopes: whiteboard:read:classification_labels:admin
Rate Limit Label: LIGHT
Responses
Status: 200 Classification label retrieved successfully.
Content-Type: application/json
-
classification_idstring— The unique identifier of the classification label -
colorstring— The hex color code for the label -
create_timestring, format:date-time— The timestamp when the label was created -
descriptionstring— A description of the classification label -
guideline_urlstring— URL to the classification guidelines document -
is_defaultboolean— Whether this is the default label for new whiteboards -
modify_timestring, format:date-time— The timestamp when the label was last modified -
namestring— The display name of the classification label -
sensitivity_levelinteger— The sensitivity rank of the label.
Example:
{
"classification_id": "abc123xyz",
"name": "Confidential",
"description": "For internal use only",
"color": "#FF5733",
"sensitivity_level": 5,
"guideline_url": "https://example.com/guidelines",
"is_default": false,
"create_time": "2026-01-29T10:30:00Z",
"modify_time": "2026-01-29T10:30:00Z"
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34004` <br> Feature not enabled. Data classification feature is not enabled for this account. <br> **Error Code:** `34003` <br> Insufficient permissions. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34005` <br> Label not found . <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Delete classification label
- Method:
DELETE - Path:
/whiteboards/classification_labels/{classificationId} - Tags: Classification Labels
Deletes an existing classification label. This action cannot be undone.
Scopes: whiteboard_classification_labels:write:admin
Granular Scopes: whiteboard:delete:classification_labels:admin
Rate Limit Label: LIGHT
Responses
Status: 204 Classification label deleted successfully. No content returned.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34003` <br> You are no permission to delete this label. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34002` <br> Invalid field labelId, reason: Label not found. <br>
Update a classification label
- Method:
PATCH - Path:
/whiteboards/classification_labels/{classificationId} - Tags: Classification Labels
Updates an existing classification label. Only the fields provided in the request body will be updated.
Scopes: whiteboard_classification_labels:write:admin
Granular Scopes: whiteboard:update:classification_labels:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
colorstring— Hex color code for the label (e.g., #FF0000 for red). -
descriptionstring— A description of what this classification label represents. -
guideline_urlstring, format:uri— HTTPS URL linking to classification guidelines or policies. -
is_defaultboolean— Whether this label should be automatically applied to new whiteboards. Only one label can be the default. -
namestring— The display name of the classification label. -
sensitivity_levelinteger— The sensitivity rank of the label.
Example:
{
"name": "Highly Confidential",
"description": "Documents requiring maximum security measures",
"color": "#FF0000",
"sensitivity_level": 5,
"guideline_url": "https://company.example.com/policies/highly-confidential",
"is_default": false
}
Responses
Status: 204 Classification label updated successfully. Changes are saved as a draft.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid field {field_name}, reason: {reason}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34004` <br> Feature not enabled. Data classification feature is not enabled for this account. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34005` <br> Classification label not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Apply classification to whiteboard
- Method:
PUT - Path:
/whiteboards/{whiteboardId}/classification - Tags: Classification Labels
Applies or updates a classification label on a whiteboard. Each whiteboard can only have one classification label at a time. If the whiteboard already has a label, it will be replaced.
Scopes: whiteboard:write:admin,whiteboard:write
Granular Scopes: whiteboard:update:whiteboard_classification,whiteboard:update:whiteboard_classification:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
classification_id(required)string— The unique identifier of the classification label to apply.
Example:
{
"classification_id": "abc123xyz"
}
Responses
Status: 204 Classification applied successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid field {field_name}, reason: {reason}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34003` <br> Insufficient permissions to manage classification labels. Requires whiteboard management permissions. <br> **Error Code:** `34004` <br> Data classification feature is not enabled for this account. <br> **Error Code:** `34008` <br> No permission to access this classification label . <br> **Error Code:** `34009` <br> No permission to access this whiteboard. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34005` <br> Classification label not found. <br> **Error Code:** `34007` <br> Whiteboard not found. <br>
Remove classification from whiteboard
- Method:
DELETE - Path:
/whiteboards/{whiteboardId}/classification - Tags: Classification Labels
Removes the classification label from a whiteboard.
Scopes: whiteboard:write,whiteboard:write:admin
Granular Scopes: whiteboard:delete:whiteboard_classification,whiteboard:delete:whiteboard_classification:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 204 Classification removed successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid field {field_name}, reason: {reason} <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `34003` <br> Insufficient permissions to manage classification labels. Requires whiteboard management permissions. <br> **Error Code:** `34004` <br> Data classification feature is not enabled for this account. <br> **Error Code:** `34009` <br> No permission to access this whiteboard. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34007` <br> Whiteboard not found. <br>
Get collaborators of a whiteboard
- Method:
GET - Path:
/whiteboards/{whiteboardId}/collaborator - Tags: Collaborator
Returns a list of a whiteboard collaborators.
Scopes: whiteboard_collaborator:read:admin,whiteboard_collaborator:read
Granular Scopes: whiteboard:read:list_collaborators:admin,whiteboard:read:list_collaborators
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Whiteboard collaborators returned.
Content-Type: application/json
Array of:
-
avatarstring— The collaborator profile picture. -
channel_idstring— `nullable` Team chat channel ID. This response only returns if the `collaborator_type` is `2`. If the `collaborator_type` is **not** `2`, this returns null value. -
collaborator_idstring— `not nullable` The collaborator's unique ID. -
collaborator_namestring— The collaborator's display name. -
collaborator_typeinteger, possible values:0, 1, 2— The collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER * `2` - CHANNEL -
emailstring— `nullable` Email. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value. -
roleinteger, possible values:0, 1, 2, 3, 4— The collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.
- Max items:
1000
Example:
[
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"channel_id": "cabc1234567defghijkl01234",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 0,
"collaborator_type": 0,
"email": "user@example.com"
}
]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this document. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Share a whiteboard to new users or team chat channels.
- Method:
POST - Path:
/whiteboards/{whiteboardId}/collaborator - Tags: Collaborator
Add collaborators to a whiteboard.
Scopes: whiteboard_collaborator:write:admin,whiteboard_collaborator:write
Granular Scopes: whiteboard:write:collaborator:admin,whiteboard:write:collaborator
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
collaboratorsarray— Array of collaborator objects to be added to the whiteboard.Items:
-
channel_idstring— **Channel ID** The unique identifier of the channel you want to share the whiteboard with. This field is **required** when sharing a whiteboard via a channel. It **must be left empty** when sharing with an individual user by email. **Note**: channel_id and email cannot be set at the same time. -
emailstring— **User Email Address** The email address of the user you want to share the whiteboard with. This field is **required** when sharing a whiteboard with an individual user. It **must be left empty** when sharing via a channel. **Note**: email and channel_id cannot be set at the same time. -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. When assigning a new `OWNER` or `CO_OWNER`, the specified user must belong to the same account as the original `OWNER`. If a new owner is designated for a whiteboard, the original owner will automatically be demoted to `CO_OWNER`. Role Enum Values: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER
-
-
invite_messagestring— The custom message to include with the whiteboard invitation. -
skip_notificationsboolean— **Default is false (notifications will be sent)**. If set to `true`, collaborators and owners will not receive direct messages or emails when the whiteboard is shared.
Example:
{
"skip_notifications": false,
"invite_message": "I'm glad to invite you to join this whiteboard.",
"collaborators": [
{
"email": "user@example.com.",
"channel_id": "cabc1234567defghijkl01234",
"role": 1
}
]
}
Responses
Status: 201 **HTTP Status Code:** `201` Whiteboard added collaborators returned.
Content-Type: application/json
Array of:
-
avatarstring— Collaborator profile picture. -
channel_idstring— `nullable` Team chat channel ID. This response only returns if the `collaborator_type` is `2`. If the `collaborator_type` is **not** `2`, this returns null value. -
collaborator_idstring— The collaborator's unique identifier. This field is not nullable. -
collaborator_namestring— The collaborator's display name. -
collaborator_typeinteger, possible values:0, 1, 2— Collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER * `2` - CHANNEL -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.
- Max items:
100
Example:
[
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"channel_id": "cabc1234567defghijkl01234",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 0,
"collaborator_type": 0
}
]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Update whiteboard collaborators
- Method:
PATCH - Path:
/whiteboards/{whiteboardId}/collaborator - Tags: Collaborator
Use this API to update whiteboard collaborators.
Scopes: whiteboard_collaborator:write:admin,whiteboard_collaborator:write
Granular Scopes: whiteboard:update:collaborator:admin,whiteboard:update:collaborator
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
collaboratorsarray— An array of collaborator objects.Items:
-
collaborator_idstring— The collaborator's unique ID `not nullable` . -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. When assigning a new `OWNER` or `CO_OWNER`, the specified user must belong to the same account as the original `OWNER`. If a new owner is designated for a whiteboard, the original owner will automatically be demoted to `CO_OWNER`. Role Enum Values: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER
-
Example:
{
"collaborators": [
{
"collaborator_id": "x4g6hy789k0o878k",
"role": 0
}
]
}
Responses
Status: 204 **HTTP Status Code**: `204` Whiteboard collaborators updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid collaboratorId {collaboratorId}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this document. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34000` <br> The resource {whiteboardId} not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Remove the collaborator from a whiteboard
- Method:
DELETE - Path:
/whiteboards/{whiteboardId}/collaborator/{collaboratorId} - Tags: Collaborator
Removes a collaborator from a whiteboard.
Scopes: whiteboard_collaborator:write:admin,whiteboard_collaborator:write
Granular Scopes: whiteboard:delete:collaborator:admin,whiteboard:delete:collaborator
Rate Limit Label: MEDIUM
Responses
Status: 204 **HTTP Status Code**: `204` Whiteboard collaborators deleted successfully.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this document. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34002` <br> Resource not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List all whiteboards
- Method:
GET - Path:
/whiteboards - Tags: Document
Use this API to list whiteboards of current user (Required Scopes: whiteboard:read) or list all whiteboards under the account (Required Scopes: whiteboard:read:admin).
Note: user_id can intake Zoom user ID or email which only applies when scope = whiteboard:read:admin. Otherwise, the user_id can only intake me.
Scopes: whiteboard:read:admin,whiteboard:read
Granular Scopes: whiteboard:read:list_whiteboards:admin,whiteboard:read:list_whiteboards
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Whiteboard list returned.
Content-Type: application/json
All of:
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token is returned when the available results exceed the current page size. The expiration period for this token is 15 minutes. -
page_sizeinteger— The number of records returned per page in a single API call. -
total_recordsinteger— The total number of records found. -
whiteboardsarray— The information about the whiteboard list.Items:
All of:
-
advanced_share_settingobject— Whiteboard advanced share setting.-
can_shareboolean— Indicate whether users can share at or below their permission level or not. `true`: Users can share at or below their permission level. `false`: Users cannot share at or below their permission level. -
external_can_shareboolean— Indicate whether external user can share the whiteboard to others or not. `true`: External user can share the whiteboard to others. `false`:External user cannot share the whiteboard to others. -
share_to_externalboolean— Indicate whether internal users can share with external users or not. `true`: Internal users can share with external users. `false`: Internal users cannot share with external users.
-
-
created_by_display_namestring— The creator display name of the whiteboard. -
created_datestring, format:date-time— Whiteboard create date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z" -
lockedboolean, default:false— Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked -
modified_datestring, format:date-time— Whiteboard update date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z" -
non_cloudboolean, default:false— Indicates whether the whiteboard is allowed to be saved to cloud or not. `true`: The whiteboard is a saved to cloud. `false`: The whiteboard isn't saved to cloud -
project_idstring— qiMWddmtRxqwSFrK22lJPg -
readonlyboolean, default:false— Indicates whether the whiteboard is editable or not. If a whiteboard is locked, this field will set `true`. `true`: The whiteboard is editable. `false`: The whiteboard is readonly -
share_link_settingobject— The access level, access type of current whiteboard share link.-
share_roleinteger, possible values:2, 3, 4— The access level of whiteboard share link. This field need to used with `share_scope`. If `share_scope` set `0` - `Restricted`, this field is null. If `share_scope` set `1` - `Same account` or `2` - `Anyone`, this filed can be `2` - `Editor`, `3` - `Commenter` or `4` - `Viewer`. * Enum: * `2` - `Editor` * `3` - `Commenter` * `4` - Viewer -
share_scopeinteger, possible values:0, 1, 2, 3, default:0— The access type of whiteboard share link. * Enum: * `0` - `Restricted`, Only people added can open with this link * `1` - `Same account` * `2` - Anyone * `3` - SAME_ACCOUNT_EXTERNAL_AUTH
-
-
trashedboolean, default:false— Indicates whether the whiteboard is moved to trash or not. `true`: The whiteboard is moved to trash. `false`: The whiteboard isn't moved to trash -
whiteboard_idstring— Whiteboard ID -
whiteboard_namestring, default:"Untitled"— Whiteboard name
-
Example:
{
"whiteboards": [
{
"whiteboard_id": "48Z4ppMfQJWONeVWFCcVzA",
"whiteboard_name": "Q3 Plan",
"locked": false,
"trashed": false,
"readonly": false,
"non_cloud": false,
"created_date": "2022-03-25T07:29:29Z",
"modified_date": "2022-03-25T07:29:29Z",
"share_link_setting": {
"share_scope": 0,
"share_role": 2
},
"advanced_share_setting": {
"can_share": true,
"share_to_external": true,
"external_can_share": true
},
"project_id": "The Project ID",
"created_by_display_name": "Jack"
}
],
"next_page_token": "qUEQqB1V0HVhJmwKFQrGOD",
"page_size": 10,
"total_records": 2
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Create a new whiteboard
- Method:
POST - Path:
/whiteboards - Tags: Document
Creates a new whiteboard for a user.
Scopes: whiteboard:write
Granular Scopes: whiteboard:write:whiteboard
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
namestring, default:"Untitled"— The whiteboard name.
Example:
{
"name": "Q3 Plan"
}
Responses
Status: 201 **HTTP Status Code:** `201` Whiteboard created successfully.
Content-Type: application/json
-
advanced_share_settingobject— Whiteboard advanced share setting.-
can_shareboolean— Indicate whether users can share at or below their permission level or not. `true`: Users can share at or below their permission level. `false`: Users cannot share at or below their permission level. -
external_can_shareboolean— Indicate whether external user can share the whiteboard to others or not. `true`: External user can share the whiteboard to others. `false`:External user cannot share the whiteboard to others. -
share_to_externalboolean— Indicate whether internal users can share with external users or not. `true`: Internal users can share with external users. `false`: Internal users cannot share with external users.
-
-
created_datestring, format:date-time— The whiteboard create date-time in UTC/GMT. Example: "`2020-03-31T12:02:00Z`" -
lockedboolean, default:false— Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked. -
modified_datestring, format:date-time— The whiteboard update date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z" -
non_cloudboolean, default:false— Indicates whether the whiteboard is allowed to be saved to cloud or not. `true`: The whiteboard is a saved to cloud. `false`: The whiteboard was not saved to cloud. -
readonlyboolean, default:false— Indicates whether the whiteboard is editable or not. If a whiteboard is locked, this field will set `true`. `true`: The whiteboard is editable. `false`: The whiteboard is read only. -
share_link_settingobject— The access level, access type of current whiteboard share link.-
share_roleinteger, possible values:2, 3, 4— The access level of whiteboard share link. This field need to used with `share_scope`. If `share_scope` set `0` - `Restricted`, this field is null. If `share_scope` set `1` - `Same account` or `2` - `Anyone`, this filed can be `2` - `Editor`, `3` - `Commenter` or `4` - `Viewer`. * Enum: * `2` - `Editor` * `3` - `Commenter` * `4` - Viewer -
share_scopeinteger, possible values:0, 1, 2, 3, default:0— The access type of whiteboard share link. * Enum: * `0` - `Restricted`, Only people added can open with this link * `1` - `Same account` * `2` - Anyone * `3` - SAME_ACCOUNT_EXTERNAL_AUTH
-
-
trashedboolean, default:false— Indicates whether the whiteboard is moved to trash or not. `true`: The whiteboard is moved to trash. `false`: The whiteboard was not moved to trash. -
whiteboard_idstring— The whiteboard ID. -
whiteboard_namestring, default:"Untitled"— The whiteboard name.
Example:
{
"whiteboard_id": "48Z4ppMfQJWONeVWFCcVzA",
"whiteboard_name": "Q3 Plan",
"locked": false,
"trashed": false,
"readonly": false,
"non_cloud": false,
"created_date": "2022-03-25T07:29:29Z",
"modified_date": "2022-03-25T07:29:29Z",
"share_link_setting": {
"share_scope": 0,
"share_role": 2
},
"advanced_share_setting": {
"can_share": true,
"share_to_external": true,
"external_can_share": true
}
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get a whiteboard
- Method:
GET - Path:
/whiteboards/{whiteboardId} - Tags: Document
Returns a whiteboard's information.
Scopes: whiteboard:read:admin,whiteboard:read
Granular Scopes: whiteboard:read:whiteboard:admin,whiteboard:read:whiteboard
Rate Limit Label: MEDIUM
Responses
Status: 200 **HTTP Status Code:** `200` Whiteboard object returned.
Content-Type: application/json
-
advanced_share_settingobject— The whiteboard advanced share setting.-
can_shareboolean— Indicate whether users can share at or below their permission level or not. `true`: Users can share at or below their permission level. `false`: Users cannot share at or below their permission level. -
external_can_shareboolean— Indicate whether external user can share the whiteboard to others or not. `true`: External user can share the whiteboard to others. `false`:External user cannot share the whiteboard to others. -
share_to_externalboolean— Indicate whether internal users can share with external users or not. `true`: Internal users can share with external users. `false`: Internal users cannot share with external users.
-
-
classification_labelobject | null— The classification label applied to this whiteboard. Null if no classification is applied.-
colorstring— The hex color code for the label. -
descriptionstring— A description of the classification label. -
guideline_urlstring— URL to the classification guidelines document. -
idstring— The unique identifier of the classification label. -
namestring— The display name of the classification label. -
sensitivity_levelinteger— The sensitivity rank of the label.
-
-
created_by_display_namestring— The creator display name of the whiteboard. -
created_datestring, format:date-time— The whiteboard creation date and time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
embedded_content_typesarray— The embedded content type list.Items:
integer, format:int32, possible values:0, 1, 2, default:0— The type of embeded content in whiteboard. it's an enum contains `0`, `1`, `2`. The description of the enums: - **0** - **IMAGE**. - **1** - **DOCUMENT**, this would include PDFs, PPTX, DOCX, GOOGLE DOCS, SHEETS and SLIDES. - **2** - **CARD**, this would include Jira, Asana and Azure DevOps. -
lockedboolean, default:false— Indicates whether the whiteboard is locked or not. `true`- The whiteboard is locked. `false` - The whiteboard is unlocked. -
modified_by_display_namestring— The latest modify user display name of the whiteboard. -
modified_datestring, format:date-time— The whiteboard update date and time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
non_cloudboolean, default:false— Indicates whether the whiteboard is allowed to be saved to cloud or not. `true` - The whiteboard is a saved to cloud. `false` - The whiteboard isn't saved to cloud. -
preview_linkstring— The whiteboard preview link. This link's validity period is `2 hours`, and the maximum number of downloads is `99 times`. Only those who have the `whiteboard:read:whiteboard` scope or are collaborators of the whiteboard will see this field returned. -
project_idstring— The Project ID -
readonlyboolean, default:false— Indicates whether the whiteboard is editable or not. If a whiteboard is locked, this field will be set to `true`. `true` - The whiteboard is editable. `false` - The whiteboard is read only. -
share_linkstring— The whiteboard share link. -
share_link_settingobject— The access level, access type of current whiteboard share link.-
share_roleinteger, possible values:2, 3, 4— The access level of whiteboard share link. This field need to used with `share_scope`. If `share_scope` set `0` - `Restricted`. This field is null. If `share_scope` set `1` - `Same account` or `2` - `Anyone`, this field can be `2` - `Editor`, `3` - `Commenter` or `4` - `Viewer`. * Enum: * `2` - `Editor` * `3` - `Commenter` * `4` - Viewer -
share_scopeinteger, possible values:0, 1, 2, 3, default:0— The access type of whiteboard sharing link. * Enum: * `0` - `Restricted`. Only people added can open with this link. * `1` - `Same account` * `2` - Anyone * `3` - `SAME_ACCOUNT_EXTERNAL_AUTH`
-
-
trashedboolean, default:false— Indicates whether the whiteboard is moved to trash or not. `true` - The whiteboard is moved to trash. `false` - The whiteboard isn't moved to trash. -
whiteboard_idstring— The whiteboard ID. -
whiteboard_namestring, default:"Untitled"— The whiteboard name.
Example:
{
"whiteboard_id": "48Z4ppMfQJWONeVWFCcVzA",
"whiteboard_name": "Q3 Plan",
"locked": false,
"trashed": false,
"readonly": false,
"non_cloud": false,
"created_date": "2022-03-25T07:29:29Z",
"modified_date": "2022-03-25T07:29:29Z",
"share_link_setting": {
"share_scope": 0,
"share_role": 2
},
"advanced_share_setting": {
"can_share": true,
"share_to_external": true,
"external_can_share": true
},
"share_link": "https://zoom.us/wb/doc/T-E0zR9NQWSDuvXd-Crt9A",
"preview_link": "https://a01file.zoom.us/file/xxxxx/attach/preview/192x108?jwt=xxx",
"created_by_display_name": "Tom",
"modified_by_display_name": "Jack",
"embedded_content_types": [
0
],
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"classification_label": {
"id": "abc123xyz",
"name": "Confidential",
"description": "For internal use only",
"color": "#FF5733",
"sensitivity_level": 5,
"guideline_url": "https://example.com/guidelines"
}
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111800` <br> Permission is needed to access this document. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Update whiteboard basic information
- Method:
PUT - Path:
/whiteboards/{whiteboardId} - Tags: Document
Use this API to rename a whiteboard, update whiteboard status (locked or unlocked).
Scopes: whiteboard:write:admin
Granular Scopes: whiteboard:update:whiteboard:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
lockedboolean, default:false— Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked. -
namestring, default:"Untitled"— The whiteboard name.
Example:
{
"name": "Q3 Plan",
"locked": false
}
Responses
Status: 204 **HTTP Status Code**: `204` Whiteboard updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111800` <br> Permission is needed to access this document. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Delete a whiteboard
- Method:
DELETE - Path:
/whiteboards/{whiteboardId} - Tags: Document
Deletes a whiteboard.
Scopes: whiteboard:write:admin,whiteboard:write
Granular Scopes: whiteboard:delete:whiteboard:admin,whiteboard:delete:whiteboard
Rate Limit Label: MEDIUM
Responses
Status: 204 **HTTP Status Code**: `204` Whiteboard Deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this document. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Create whiteboard export
- Method:
POST - Path:
/whiteboards/export - Tags: Export
Generates the export for the provided whiteboards. This process will generate a PDF of whiteboard projects along with an audit log, bundling them into a ZIP file.
Scopes: whiteboard_export:write:admin,whiteboard_export:write
Granular Scopes: whiteboard:write:export,whiteboard:write:export:admin
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
whiteboard_ids(required)array— The list of whiteboard IDs. The list size must be **less than** 50, if more than 50, the API will **intercept** the first 50 IDs.Items:
string— The ID of the whiteboard.
Example:
{
"whiteboard_ids": [
"HY8-AC_HSou4SXY1S-OmOg"
]
}
Responses
Status: 200 **HTTP Status Code:** `200` Successfully sent a request to generate whiteboard export
Content-Type: application/json
-
task_id(required)string— The unique identifier of the generated file, which expires is **30 days**. Use this task_id to query the progress of file generation (For more details, please refer to:[**Get whiteboard export generation status**](https://developers.zoom.us/docs/zoom-whiteboard/apis/#operation/Getwhiteboardexportdatagenerationstatus). Once the file is ready, you can download it using the user's OAuth token. For example: `https://{base_domain}/v2/whiteboards/export/task/{taskId} --header 'Authorization: Bearer {{OAuth-access-token}}` .
Example:
{
"task_id": "f7f3cdd37bf74550afe7cdf79128a574"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this document. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34002` <br> The whiteboard {whiteboard_id} not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Download whiteboard export
- Method:
GET - Path:
/whiteboards/export/task/{taskId} - Tags: Export
Use this API to download the whiteboard export.
Scopes: whiteboard_content:read:admin,whiteboard_content:read
Granular Scopes: whiteboard:read:export,whiteboard:read:export:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Returns a file stream, with the file type of ZIP.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34002` <br> The task {task_id} not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get whiteboard export generation status
- Method:
GET - Path:
/whiteboards/export/task/{taskId}/status - Tags: Export
Use this API to query the status of the whiteboard export generation. Before using this API, confirm that you have invoked the interface for generating the whiteboard file Create whiteboard export and obtained the task_id.
Scopes: whiteboard_content:read:admin,whiteboard_content:read
Granular Scopes: whiteboard:read:export,whiteboard:read:export:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Whiteboard export generation status.
Content-Type: application/json
-
status(required)string, possible values:"processing", "successed", "failed"— Whiteboard export generation status. * Enum: * `processing` - Generating whiteboard export * `successed` - Whiteboard export generated successfully(as long as one is successful, it counts as a success) * `failed` - Whiteboard export generation failed -
total(required)integer— Total number of whiteboards requiring export generation. -
failedarray— List of failed whiteboard IDs.Items:
string— The whiteboard ID. -
processedarray— List of processed whiteboard IDs.Items:
string— The whiteboard ID. -
processingarray— List of whiteboards being processed.Items:
string— The whiteboard ID.
Example:
{
"processed": [
"48Z4ppMfQJWONeVWFCcVzA"
],
"status": "processing",
"total": 3,
"failed": [
"UyKtcVj5REWMFT2qd-4qfg"
],
"processing": [
"r2Qr1q4hSxu03MG3hk03uA"
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34002` <br> The task {task_id} not found. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Upload file for whiteboard import
- Method:
POST - Path:
/whiteboards/files - Tags: File
Uploads a file to whiteboard. Notes:
- Base URL:
https://fileapi.zoom.us/v2. - Rate limit: 20 requests per second per user or 2000 requests per second per IP address.
- The caller must support HTTP 30x redirects.
- The caller must retain the Authorization header when redirected to a different hostname.
- Supported file formats:
.pdf,.vsdx. - For an account-level OAuth app, this API can only be used on behalf of a user who is assigned with a role with Edit permission for Whiteboard Management.
Scopes: whiteboard_file:write:admin,whiteboard_file:write
Granular Scopes: whiteboard:write:file,whiteboard:write:file:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: multipart/form-data
-
file(required)string— The upload file is in binary format. You can only send a maximum of 100 MB.
Example:
{
"file": "Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVaclVqQTFSMVV5TVRSVk1rcElaSHBHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMHhORmxWTUhoWGJrNVlZbFZhY2xWcVFURlNNVlY1VFZSU1ZrMXJjRWxhU0hCSFZqRmFSbUl6WkZkaGExcG9WakJhVDJOdFJraGhSazVzWWxob1dGWnRNSGhPUm14V1RVaG9XR0pyTlZsWmJGWmhZMVphZEdSSFJrNVNiRm93V2xWYVQxWlhTbFpqUldSYVRVWmFNMVpxU2t0V1ZrcFpXa1p3VjFKV2NIbFdWRUpoVkRKT2MyTkZhR3BTYkVwVVZteG9RMWRzV1hoWGJFNVRUV3hHTlZWdGRHdGhiRXAwVld4c1dtSkdXbWhaTW5oWFl6RldjbHBHWkdsU2JrSmFWMnhXWVZReFdsaFRiRnBZVmtWd1YxbHJXa3RUUmxweFUydGFiRlpzV2xwWGExcDNZa2RGZWxGcmJGaFhTRUpJVmtSS1UxWXhXblZWYldoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxOSFVuTlZha0p6VGtaVmVXUkhkRmhTTUhCSlZsZDRjMWR0U2tkWGJXaGFUVlp3YUZwRlpGTlRSa3B5VGxaT2FWSnRPVE5XTW5oWFlqSkZlRmRZWkU1V1ZscFVXVlJHZDFZeGJISlhhM1JVVW14d2VGVnRNVWRWTWtwV1lrUmFXR0V4Y0hKWlZXUkdaVWRPU0U5V1pHaGhNSEJ2Vm10U1MxUXlVa2RUYmtwb1VqSm9WRmxZY0ZkbGJHUllaVWM1YVUxWFVraFdNalZUVkd4a1NGVnNXbFZXYkhCSVZGUkdVMVp0UmtoUFYyaHBVbGhDTmxkVVFtRmpNV1IwVTJ0a1dHSlhhR0ZVVmxwM1lVWndSbHBHVGxSU2EzQjVWR3hhVDJGV1NuUlBWRTVYVFc1b1dGbHFTa1psUm1SWldrVTFWMVpzY0ZWWFZsSkhaREZaZUdKSVNsaGhNMUpWVlcxNGQyVkdWblJOVldSV1RXdHdWMWxyVW1GWFIwVjRZMGhLV2xaWFVrZGFWV1JQVTBVNVYxcEhhR2hOU0VKMlZtMTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRWTVZwMFVtdG9VRlp0YUZSVVZXaERUbFphU0dWSFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZucFdkbFl3V25KbFJtUnlXa1prVjJFelFqWldhMlI2VFZaWmQwMVdXbWxsYTFwWVdXeG9RMVJHVW5KWGJFcHNVbTFTZWxsVldsTmhWa3AxVVd4d1YySllVbGhhUkVaYVpVZEtTVk5zYUdoTk1VcFdWbGN4TkdReVZrZFdibEpPVmxkU1YxUlhkSGRXTVd4eVZXMUdXRkl3VmpSWk1HaExWMnhhV0ZWclpHRldWMUpRVlRCVk5WWXhjRWhoUjJoT1UwVktNbFp0TVRCVk1VMTRWVmhzVm1FeVVsVlpiWFIzWWpGV2NWTnRPVmRTYlhoYVdUQmFhMkpIU2toVmJHeGhWbGROTVZsV1ZYaFhSbFp5WVVaa1RtRnNXbFZXYTJRMFlURk9SMVp1VGxoaVJscFlXV3RvUTFOV1drZFZhMlJXVFZad01GVnRkRzlWUmxsNVlVaENWbUpIYUVSVWJYaHJWbFpHZEZKdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp1Y0Zka2JGbDNWMjVLYkZKdFVubFhhMXByVmpKRmVsRnFXbGRoTWxJMlZGWmFhMUl4VG5OWGJYQlRWak5vV1ZkWGVHOVJNVkpIVlc1S1dHSkZjSE5WYlRGVFpXeHNWbGRzVG1oU1ZFWjZWVEkxYjFZeFdqWlJhbEpWWVRKU1NGVnFSbUZYVm5CSVlVWk9WMVpHV2xkV2JHTjRUa2RSZVZaclpGZGliRXBQVm14a1UxWXhVbGhrU0dSWFRWZDRlVlpYTVVkWFJrbDNWbXBTV2sxSGFFeFdNbmhoVjBaV2NscEhSbGRXTVVwUlZsUkNWazVXV1hoalJXaG9VakpvVDFVd1ZrdE5iRnAwVFZSQ1ZrMVZNVFJXVm1oelZtMUZlVlZzVmxwaVdGSXpXV3BHVjJOV1RuUlBWbVJUWWxob1lWZFVRbUZoTWtwSVUydG9WbUpIZUdoV2JHUk9UVlpzVjFaWWFGaFNiRnA1V1ZWYWExUnRSbk5YYkZaWFlUSlJNRlpFUms5VFJrcHlXa1pLYVZKdVFuZFdiWFJYVm0xUmVGZHVVbXBTVjFKWFZGWmFkMDFHVm5Sa1J6bFdVbXh3TUZsVldsTldWbHBZWVVWU1ZXSkdjR2hWTUdSWFUwWktkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFSV2hVWWtkb2IxVnFRbUZXYkZwMVkwWmthMkpHYkROV01qVkxZa1pLZEZWdWJGaGhNWEJ5Vm1wS1JtVnNSbkZYYkdSb1RXeEpNbFpHV21GaE1VbDRWRzVPV0dKWVFsUldhazV2VjFaa1dHVkhPVkpOVmtwSVZsYzFTMWRIU2taalNFNVdZbFJHVkZwWGVITldiR1J6Vkcxb1UxWkZXalpXVkVreFlqRlplRmRxV2xOV1JVcG9WV3RXWVdOc1ZuRlRhM1JVVm14S01GbFZXazloUjFaelYyeEdWMkV4Y0doWFZtUlNaVlphY2xwR1pGaFNNMmg1VmxkMFYxTXhaRWRWYkdSWVltMVNjMVp0TVRCTk1WbDVUbGQwV0ZKcmJETldiWEJUVjJzeFIxTnNRbGRoYTNCSVdUSjRhMk50VmtkYVIyaG9UVEJLVWxac1VrZGhNVTE0VTFob2FsSlhVbWhWYlhNeFYwWlpkMVpyZEU1aVJuQXdWRlpTUTFack1WWk5WRkpYVm0xb2VsWnNXbXRUUjFaSFYyeHdWMUpXYjNwWFYzQkhWakpPVjFWdVNsVmlSMUpVV1d4b2IxbFdaRlZSYlVab1RWZFNTRll5TlU5aGJFcDBaVWRHVlZaV2NGZFVWbHB6VmpGYVdXRkhjR2xXV0VKSFZteGtOR0V4VW5SU2JrNVlZa1phV0ZsVVNsSk5SbXhWVW1zNVUwMVdjREZXUjNodllWWktjMk5HYkZoV00xSjJWVlJHYTFZeFpISmhSM1JUVFVad1dWZFhlR0ZaVms1WFZtNVNhMUo2YkZkVmJYaHpUbFpzVm1GRlRsZGlWWEJKV1ZWV1UxWlhTbGxoU0VwWFlrWndTRnBGV2t0a1IwNUdUbFprVGxaWGQzcFdiWGhUVXpBeFNGSllhR0ZTVjJoVldXdGtiMkl4Vm5GUmJVWlhZa1p3TVZrd1dtdGhNa3BIWWtST1YwMXFWa3haYTFwTFpFWldkV0pHYUdoTldFSjVWbTF3UzFKdFZuTlNia1pZWWtkU2IxUlhlRXBOYkZwSFYyMUdXR0pXUmpOVVZscHJWMGRLV0dWSVRscFdSVm96VmpGYWExZEhWa2hQVmtwT1ZsUkZNRlpzWkRSaE1XeFhVMnhrYWxORk5WZFpiRkpIVmtaWmVXVkhkR3BpUm5CV1ZXMTRhMVJzV25WUmFscFlWa1ZLYUZacVJtdFNNV1JaWTBaYWFXRXpRbGxXYlhSWFdWZFdjMWR1UmxOaVIxSnhWRlprVTJWc2JGWmFTRTVYVFZad01WVlhlRWRXTWtWNFkwZG9XRlp0VWxOYVZscGhZMnh3UjFwR2FGTk5NbWcxVm14a01GWXhUWGhhUldSV1lrZFNXVmx0TVZOak1WcDBUVlJDVGsxV2JEVlViR1F3VjBaS2NtSkVUbGRpV0VKVVZqSnplRk5IUmtabFJtUk9ZbTFvYjFacVFtRldNazV6WTBWb1UySkhVbGhVVmxaM1ZXeGFjMXBJWkZSTlZURTBWVEZvYzFVeVJYbGhSemxXWWtaS1dGWXdXbk5rUjFKR1pFVTFhVkp1UVhkV1JscFRVVEZhY2sxV1drNVdSa3BZVm01d1YxWkdXbkZUYTFwc1ZteGFNVlZ0ZUdGaFZrbDRVbGhrVjJKVVJUQlpla3BPWlVkT1JtRkdRbGRpVmtwVlYxZDBWMlF4WkhOWGEyaHNVak5DVUZadGVITk9SbGw1VGxVNWFHSkZjRmxaVlZwelZqSkZlRlpZYUdGU00yaDZWbXBHWVZkWFJrZGhSazVwVW0wNU5GWXhVa05aVjBWNFZXNU9XRmRIZUc5VmExWjNWMFpTVjFkdVpHaFNiRmt5VlcxMGQySkdTbk5UYWtaWFlsaG9URmxXV2t0ak1rNUhZa1prVTJKRmNFbFdXSEJDVFZkTmVGcElTbWhTTTJoVVZGVmFkMkZHV25SalJXUlVUVlZzTkZaWE5VOVhSMHBXVjJ4a1ZtSllhRE5VVlZwaFYwVTFWbFJzWkU1aE0wSktWMVpXVjFVeFduSk5WbVJxVWpKb1lWUldXbmRWUm10NFYyeGthazFYVW5sVWJGcHJWR3hhV0dRemNGZGlXR2hVVlhwQmVGTkdTbGxoUjBaVFZqSm9WbGRYZEd0aU1rbDRWbTVHVW1KVldsaFphMXAzVFZacmQxZHRkR2hOYTNCSVdXdFNUMVl3TVhGV2EzaGFZVEZ3VEZwRldsZGtWMHBIWVVkb1RsZEZTalZXYlRGM1V6RktkRlp1VGxOaWExcFpXV3RrVTJJeFVsaGxSWEJPWWtad1NGWXlNVWRYUjBwWFVtcE9WVlpzY0hKV01HUkxWMGRXU1ZSc2NGZFNWbTk2Vm1wR1lXRXhaRWhXYTJoUVZtdHdUMVp0ZEhkVFZscHpXWHBHVkUxWFVrbFZNblJoWVd4T1JrNVdaRnBpUmtwSVZtdGFkMWRIVmtsVWJHUnBVakZLTmxaclkzaGlNVmw1VWxod1VsZEhhRmhXYlRGT1pVWnNjVkpzY0d4U2JWSmFXVEJrYjFaR1NsbFJiR3hYWWxoU1dGZFdaRmRqTVdSMVVteE9hVkl4U25oV1JscHJWVEpXYzJKR1dtRlRSVFZZVkZaYWQwMVdWbGhsUldSWFRXdFdORmt3Wkc5WFJscDBWV3hPWVZac2NHaFpNbmgzVWpGd1IyRkdUazVOYldjeFZtMTRhMDFHV1hoVVdHaGhVbGRTVjFsclpGTlhWbXgwVFZaT2FrMVdjREJVVmxKRFZHc3hWMkpFVmxWaVIxRjNWakJhUzJOdFNrVlViR1JwVjBWS1ZWWnFTbnBsUms1SVVtdGFiRkp0VWs5WmJURnZZakZhY1ZGdFJsZE5helY2V1RCV2IxVXlTa2hWYkdoVlZteGFNMVpYZUdGak1YQkpXa1pTVGxaVVJUQldWRVp2WXpGVmVWSlliR2hTZW14WFdXdGFTMWRHV1hkWGJrNXJVakZLUjFwRlZURmhWa3AxVVZoa1YxSnNjRlJWVkVaaFkyc3hWMWRyTlZkU2EzQlpWbTB3ZUdJeVZuTlhiazVZWWxoU1ZWVnFSbUZUUmxsNVpVaGtWMDFWY0ZoWmFrNTNWMFphYzFkdGFGZGhhM0JRVm1wR1UyUldWbk5SYkdScFZtdHdWbFl4WkRCV01sRjRXa2hPV0dFeWFITlZhazVEVlVaYWRHVklUazlTYkd3MVZHeFZOV0ZIU2taalJteGFWbFp3ZWxacVNrWmxSbHBaWVVkR1UwMHlhRFpXYlhCSFdWWmtXRkpyYUdwU01uaFlWakJXUzFOR1duUmxSM1JQVWpCV05GWlhOVTlYUm1SSVpVYzVWbUV4V2pOV01GcHpWMGRTUm1SSGNHbFNiR3Q1VmxjeE1FMUhSblJTYWxwWFlrZG9XVmxVUm5kaFJteFhWMnQwYWsxck5VaFphMXB2VmpBd2VXRkhPVmRXZWtJMFZsY3hWMUl4Y0VsV2JGcHBWMFZLVlZadGNFZFRNV1JIVjJ0a1dHSlZXbkpVVlZKSFUwWmFkRTVXVG1oTlZXOHlXV3RhYTFadFNsbGhSRTVWVmxad2VsWnRlR3RqTVZKeldrWmthVk5GU21GV01WcFhWakZWZUZkc2FGUmhNbEp4VldwS2IxWXhVbFphUms1WVVteFdNMVl5ZERCaE1VbDNUbFZrVldKR2NISldSM2hoVjBkUmVtTkdaR2xYUjJoVlZsaHdRbVZHVGtkVWJHeHBVbXMxYjFSWGVFdFdiR1JZVFZod1RsWnNjRmhaYTJoTFdWWktObUpHYUZwaE1YQXpXbGQ0V21WVk5WaGtSbFpvWld0YVdWZFVRbTlqTVZsM1RWaEdVMkV5YUdGV2FrNXZZVVpyZVdONlJsaFdNSEJJV1ZWa2IxUnNaRVpUYkVwWFRWWndhRmRXV2s1bFZsSjFWV3hXYUUxV2NGcFhWM1JyVlRKT1IxWnVSbEpXUlVwUFZXMHhVMWRzYTNkV2JYUlhUV3R3V0ZWdGNFOVdWbHB6VjI1d1dsWldjRXhaTW5NeFYwVTVWMk5IYUU1aVYyaEdWbTF3UjFsWFJYaFhXR2hxVWxaYVUxbHNhRk5qUmxwMFpFWndUbEpzY0hoVk1uQlRWakF4VjFacVZsWk5ibEp5V1ZkNFQxSnJOVmRhUm5CcFVtdHdTVlp0ZEdGVk1WbDRXa2hPV0dKWWFGaFVWVkpTWlZaYVdFMVVVbWxOVmxZMVZXeG9kMVZ0U2xaWGJHaFhZbFJHVDFwVlduTmpWa3B6WTBkNFUySldTbUZYVkVKcllqRmFSMU5zYkZKaVIxSlpWbTE0UzFSR1dsVlNhemxUVFZad01WVnRlRTloVmxwWFkwWndWMkpVUVhoVlZFWlBWakpLUjFkc2FHaGxiWGhaVmtaYVlXUXhUa2RYV0d4c1VqTlNXRlJYZEhkVFZscElZMFpPVjFZd1ZqVldWM2hQV1ZaYWMyTkhhRnBOYm1nelZXcEdkMUl5UmtkVWF6Vk9ZbGRqZUZadE1UUmhNbEY0VWxob2FWSnRhRlpaVkVwVFYwWnNkR1ZGZEdwTlZsWXpWMnRhVDJGck1WaGxTR3hYVFdwV1VGWkVSbUZrVmtaeldrWndWMVl4UmpOV2FrSmhVekpPZEZOclZsVmlSMUp3VmpCV1MxWldXbkZUYm5Cc1VtdHNORlpITlU5VmJVcElWV3M1V2xZelVtaFZNRnByWXpGa2RGSnNaRTVoZWxZMlYxUkNWMkl4VlhsVGEyaFdZWHBzVmxadWNFZGtiRlY1WlVad2JGSnNXbmxaTUdRMFZUSkdObEpVUWxkV1JWcDJXV3BLUjJNeFRuTmhSMmhVVWxWd1dGZFhlRk5TTWxKelYyNUtXR0pWV25GVVYzUmhVakZhU0dWR1RsVmlSbkF4VlZab2ExWXhTbk5qUmxKV1ZrVmFhRmt5YzNoV01XUnlUbFprVTJFelFscFdNV1F3WVRKSmVWVnVUbGhYUjFKWldXeG9VMVpXVm5GUmJVWlVVbTE0ZVZZeU5XdGhSbHAwVld0c1dsWlhUVEZXYWtwTFZsWktWVkZzY0d4aE0wSlJWMWh3UzFReFNuUlNhMlJTWWtkU1QxUlZWbmRXYkZsNFdrUkNhVTFWVmpOVWJGWnJWMGRLY21OSFJsVldSWEJVVmxWYVlXUkhWa2xVYXpsVFlrZDNNVlpIZUZaT1YwWklVMnRhYWxKdGVHRldiRnAzWld4YWNWTnJXbXhTYkhCYVdWVmtSMVV3TUhsaFJGcFhZbGhDU0ZkV1dtdFhSa3B5V2tkb1UyRjZWbmRXVnpBeFVXc3hWMWRZYUZoaVIxSmhWbXBDVjA1R1dsaE9WazVXVFd0d2VWUnNXbk5YYlVWNFkwZG9WMDFHY0hwV2JGcFBZekZPY2s1V1RtbFdhM0JhVm0xd1MwMUZNVWhTYmtwT1ZtMVNWVmxYZEdGWFJsWjFZMFZrYTJKR2NGWlZNblF3VlRBeGNrNVZhRnBoTVhCeVZsUktTMUp0VGtaTlZtaFhUVEJLU1ZaclVrZFhiVlpIWTBWc1ZHSlhhRlJVVkVwdlZsWmFSMVp0Um10TmExcElWakkxVTFSc1RraGhSbVJWVm14YWVsUnJXbUZYUlRWV1QxWm9VMDFJUWxoV2FrbzBZVEZhZEZOc2JHaFNSVFZXVm14YWQyVnNXblJsUjNScVRWWktlbGRyV210aFZrNUdVMnh3VjAxV1NrUlpWRVpLWlVaa2MxcEdhR2xoZWxaNFZsZHdTMkl4YkZkalJtaHJVakJhVDFSV1dtRmxiRmw1WlVkMGFFMVZiRE5VYkZaclZsZEtSMk5JU2xkU00yaG9WakJrVW1WdFRrZGFSMnhZVWpKb1ZsWnNhSGRSYlZaSFZHdGtWR0pIZUc5VmFrSmhWa1phY1ZOdE9WZGlSMUpaV2tWa01HRlZNWEppUkZKWFlsUldTRlpYTVV0V2JHUnpZVVp3YUUxWVFYcFdSbFpoWkRGYWRGSnJhR3RTYkZwdldsZDBZVmRXWkZWUmJUbHFUVlpzTTFSV2FFZFZNa1Y1WVVkR1YyRnJOWFpaVlZweVpWVXhWazlXVGxkaE1XOTNWbGN4TkZReFdYZE5WbHBZVjBoQ1dGbHNVa2ROTVZZMlVtczFiRlpzU2pGV1IzaFhZVmRGZWxGdVdsZFdla0kwVmxSR1lWSXhWbk5XYkZKcFZrZDRkMVpHV21Ga01sWlhWMnhvYTFKRlNsZFVWVkpIVjBac2NsVnNUbGROVlc4eVZtMTRiMVl5U2xWU2EzaFdZbGhvVUZsNlNrZFNNV1IwWWtaT2FFMHdTbUZXYlRGM1VqRnNWMkpHWkZSWFIyaHdWV3RhZDFaR2JITmFSRkpWVFZad2VGVnRkREJXUmxwMFZXeHNZVkpYVWtoV2FrRjRWakZrZFdOR2FHaE5WbkF5VjFaV1lWTXlUWGhVYms1WVlrZFNjRlpyVm1GV1ZscDBaRWRHYTAxWFVrbFdiWFJ6VmxkS1NGVnVRbFpoYTFwTVZHMTRZV05zYTNwaFIyeE9WbXhaTUZacVNqQlpWbVJJVW01T2FsSnRhRmhaVkVaaFpWWndWbGR1VG1wV2EzQjZXVEJrTkZVeVNsZFRiVVpZVmtWS2FGZFdaRWRXTVU1WllrZG9VMkpyU2xsWFYzaFRVbXN4UjJORlZsTmlhelZZVkZkek1WTkdXWGxsUnpsb1ZtMVNTRlV5TlhOV01rcFZVbGhrWVZKRmNGaFpla1pyWkZaV2NrNVdhRk5XUmxwYVZtdGFZVll5VFhkT1dFNXBVbXh3VjFsclpGTlhSbEpXVld0a1dGWnNjRmhaVldRd1YwWktjMk5FUWxkV00yaFFWMVphWVdNeVRraGhSbkJPWW0xbmVsWlhjRWRrTVU1SVUydG9hVkpyTlZsVmJGWnlaVVphZEUxVVVtaE5SRVpJVmpGb2IxWldaRWhsUmxaWFRVZFNkbGt3V2xka1JURlZWVzF3VjJKR2NEWldNblJoVkRKR2NrMVdaR3BTUlVwb1ZteGFXbVF4YkhKYVJYUlRUV3MxUmxWWGVGZFdNVnB5WTBac1YyRnJTbWhWTWpGU1pWWlNjbGR0YUZOaWEwcFFWbGN3TVZFd01YTlhia1pVWW01Q2MxVnRjekZUVmxaMFpFZEdhVkpyY0RCV1YzTTFWMjFLVlZKdVdscGhhMXBvV1RGYVIyUkdTbk5hUlRWb1pXeFpNbFl4VWtOV01rbDRWbGhzVkdFeWFGZFpXSEJ6Vm14YWRXTkZaR3RpUmxZMVdsVmFkMkpHU25OWGJteGFUVWRSTUZaVVNrZE9iRXBWVVd4a1YxSldjREpYVjNCTFVqSk5lRlJ1VG1oU2JIQndWbXBLYjFkR1pGaGxSemxWWWxaYVNGWXhhR3RYUjBwSlVXNUtWVlpzY0ROYVZscDNVbXhhVlZKdGFGZGhNMEY0VmxaYWIyRXhaRWRYYTFwVVlrZG9ZVlpyVm1GamJHdzJVbTEwV0ZadVFraFhhMlJ2WVZaS1dWRnNjRmROVjFGM1dWUktTbVZXVm5WVWJHaFlVakZLV2xkWGVHOVZNVnBYVm01R1VtSlZXbFZWYlhoelRsWndWbUZIZEdoU2JIQXdWbGQwYzFkc1dsaFVWRVpYWVd0d1RGWnNXa3RXVmtaelkwZDRhRTB3U2xKV01XaDNVakpSZUZSc1pGVmliRXB5Vlcxek1WUXhVbFpXYm1SWFlrWnNORmRyVWtOWGJGbDRVbXBPVldKR1duSldNR1JMVTBkR1JrOVdaR2hOVm5CTlZtdFNSMVl5VWtoV2EyeFZZWHBzVkZsclpETk5WbHBJWlVaYVQxWXdXa2xWTW5SaFlXeEtkR1ZIUmxkaVJuQXpXa2Q0WVdOV1RuSmFSM0JvWld4YVdWWnNaRFJoTVZWNFYyNVdVbUZzY0ZoWmJHaHZZVVpXY1ZKdGRGaFNhM0I1VjJ0YVYyRldTWGhUYmxwWFVteEtSRlV5YzNoak1XUjFWVzEwVTAweFNsRldWekI0VGtaa1IxZHVUbWhUUlRWWVZXcENWMDVHYTNkWGJrNVhUVVJHU1ZsVlZsTldNREZIWTBkb1dtVnJXbkphUmxwM1VqRlNjazVXWkdoTlYzUXpWbTB4ZDFNd01VZFZXR2hZWW14S1ZWbFVSbmRXVm14eVYyNWtWMkpHY0hwV01uUnJWR3N4VjFkcmFGWmlSa3A2VmxaYVYxWlZNVVZoZWpBOQ=="
}
Responses
Status: 201 File successfully uploaded.
Content-Type: application/json
-
file_idstring— The file's unique ID.
Example:
{
"file_id": "xBvggqyjQUal6TecwMlYwE"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `124` <br> Invalid access token. <br> **Error Code:** `300` <br> Invalid File type. Exceed max file size: ${maxSize} megabytes. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Download Imported Whiteboard File
- Method:
GET - Path:
/whiteboards/{whiteboardId}/files/{fileId} - Tags: File
Download files imported into the whiteboard, including images, PDFs, DOCX, and other supported formats.
Scopes: whiteboard_file:read,whiteboard_file:read:admin
Granular Scopes: whiteboard:read:file,whiteboard:read:file:admin
Rate Limit Label: LIGHT
Responses
Status: 200 Returns a file stream.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a new whiteboard by import
- Method:
POST - Path:
/whiteboards/import - Tags: Import
Creates a new whiteboard for a user by converting Miro, Mural, or Visio files.
Scopes: whiteboard_import:write,whiteboard_import:write:admin
Granular Scopes: whiteboard:write:import,whiteboard:write:import:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
file_id(required)string— The ID of the file to convert to a whiteboard. Use the **Upload File for Whiteboard Import** API (POST `/whiteboards/files`) to upload the file and get the `file_id`. Supported file types: - **Visio**: `.vsdx` - **Miro** and **Mural**: `.pdf` Maximum file size: **100 MB**. Ensure the file is valid, within the size limit, and in one of the supported formats. -
type(required)number— The import file original type. Enum: * `1` - Miro * `2` - Visio * `3` - Mural -
collaboratorsarray— Users or team chat channels to add to a whiteboard.Items:
-
channel_idstring— The team chat `channel ID` to share with. -
emailstring, format:email— The `user email` address to share with. -
rolestring, possible values:"0", "1", "2", "3", "4"— Collaborator role type. Enum: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER
-
-
owner_emailstring, format:email— The owner email. This field is only available if you have the `whiteboard:write:import:admin` scope. Otherwise, it will automatically be set to `null` and the document owner will **default to the user who imported the file**. -
project_idstring— qiMWddmtRxqwSFrK22lJPg -
skip_notificationsboolean— **Default is false (notifications will be sent)**. If set to `true`, collaborators and owners will not receive direct messages or emails when the whiteboard is imported. -
whiteboard_namestring— The name of the whiteboard created by import.
Example:
{
"file_id": "xBvggqyjQUal6TecwMlYwE",
"type": 1,
"whiteboard_name": "Q1 plan",
"skip_notifications": false,
"owner_email": "example@zoom.us",
"collaborators": [
{
"email": "user@example.com",
"role": "2",
"channel_id": "cabc1234567defghijkl01234"
}
],
"project_id": "The Project ID"
}
Responses
Status: 201 The imported file is being converted into a whiteboard.
Content-Type: application/json
-
task_idstring— Use this ID to check the import status via the [Get Whiteboard Import Status](https://developers.zoom.us/docs/api/whiteboard/#tag/import/GET/whiteboards/import/task/{taskId}/status) endpoint (GET `/whiteboards/import/{taskId}/status`). The unique ID for your import.
Example:
{
"task_id": "ce31de9e5a5f440bab9d60c144fd76b7"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid file type. <br> **Error Code:** `38003` <br> File size exceed limit. <br> **Error Code:** `38004` <br> Conversion settings are not enabled. Please contact your account administrator to allow users to import and convert boards and diagrams from other applications into editable whiteboards via the whiteboard account settings. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Get whiteboard import status
- Method:
GET - Path:
/whiteboards/import/{taskId}/status - Tags: Import
Use this API to query the status of new whiteboard by import. Before using this API, confirm that you have invoked the interface for import file to create new whiteboard Create a new whiteboard by import and obtained the task_id.
Scopes: whiteboard_import:read,whiteboard_import:read:admin
Granular Scopes: whiteboard:read:import:admin,whiteboard:read:import
Rate Limit Label: LIGHT
Responses
Status: 200 Get whiteboards import result.
Content-Type: application/json
-
doc_namestring— The whiteboard name `nullable`. This value is returned only when the `status` is `succeeded`. -
file_namestring— The file name of import file. -
statusstring, possible values:"processing", "failed", "succeeded", default:"processing"— The status of the whiteboard created by importing a file. **Enum**: - `processing` - The file is converting to whiteboard. - `succeeded` - The file convert to whiteboard successfully. - `failed` - The file convert to whiteboard failed. -
whiteboard_idstring— The whiteboard ID `nullable`. This value is returned only when the `status` is `succeeded`.
Example:
{
"file_name": "miro.pdf",
"status": "succeeded",
"whiteboard_id": "HY8-AC_HSou4SXY1S-OmOg",
"doc_name": "Q1 Plan"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `38002` <br> Failed to convert the file {fileName}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The taskId not exist or expired. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
List all projects
- Method:
GET - Path:
/whiteboards/projects - Tags: Project
Retrieves a list of projects.
Scopes: whiteboard_project:read,whiteboard_project:read:admin
Granular Scopes: whiteboard:read:list_projects:admin,whiteboard:read:list_projects
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 The list of projects is successfully retrieved.
Content-Type: application/json
-
next_page_tokenstring— The next page token paginates through a large set of results. A next page token is returned when the available results exceed the current page size. The expiration period for this token is 15 minutes. -
page_sizeinteger— The number of records returned per page in a single API call. -
projectsarray— The project list.Items:
-
collaboratorarray— The project collaborators, this API returns only the project collaborators who have the 'owner' role, along with the current user's information.Items:
-
avatarstring— Collaborator profile picture. -
collaborator_idstring— The project collaborator ID. -
collaborator_namestring— The project collaborator name. -
collaborator_typeinteger, possible values:0, 1— Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. Role Enum Values: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is 0. If the `collaborator_type` is not 0, this returns null value.
-
-
created_datestring, format:date-time— The project create date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
modified_datestring, format:date-time— The project update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
owner_display_namestring— The project owner display name. -
project_idstring— The Project ID -
project_linkstring— The project redirect link. -
project_namestring— The project name. -
starredboolean— Indicates whether the project is starred. `true`: starred `false`: not starred
-
-
total_recordsinteger— The total number of records found.
Example:
{
"projects": [
{
"collaborator": [
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 2,
"collaborator_type": 0
}
],
"created_date": "2020-03-31T12:02:00Z",
"modified_date": "2020-03-31T12:02:00Z",
"project_name": "Untitle",
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"starred": false,
"owner_display_name": "Example Name",
"project_link": "https://zoom.us/wb#/project/i1Ts2cRpSASonwbvTiPlUQ"
}
],
"next_page_token": "qUEQqB1V0HVhJmwKFQrGOD",
"page_size": 10,
"total_records": 100
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a new project
- Method:
POST - Path:
/whiteboards/projects - Tags: Project
This API endpoint allows you to create a new project for a user, optionally adding collaborators and initializing it with existing whiteboards.
Scopes: whiteboard_project:write,whiteboard_project:write:admin
Granular Scopes: whiteboard:write:project,whiteboard:write:project:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
project_name(required)string— The project name. -
collaboratorsarray— Array of collaborator objects to be added to the project.Items:
-
emailstring— The user's email to be added to the project. -
roleinteger, possible values:0, 1, 2, 3, 4, default:2— Collaborator role type. When assigning a new `OWNER` or `CO_OWNER`, the specified user must belong to the same account as the original `OWNER`. If a new owner is designated for a project, the original owner will automatically be demoted to `CO_OWNER`. Role Enum Values: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER
-
-
invite_messagestring— The invite message. -
owner_emailstring, format:email— The owner email. This field is only available if you have the `whiteboard_project:write:admin` scope. Otherwise, it will automatically be set to `null` and the project owner will default to the request user. -
skip_notificationsboolean— **Default is false (notifications will be sent)**. If set to `true`, collaborators and owners will not receive direct messages or emails when the project is created. -
whiteboard_idsarray— The whiteboard ID list that you want to add to the project.Items:
string— The whiteboard ID.
Example:
{
"project_name": "Untitle",
"skip_notifications": false,
"invite_message": "I'm glad to invite you to join this project.",
"collaborators": [
{
"email": "user@example.com",
"role": 2
}
],
"whiteboard_ids": [
"J7XZFDEQTkWSsMsmO_M1Xa"
],
"owner_email": "owner@example.com"
}
Responses
Status: 201 The project has been successfully created.
Content-Type: application/json
-
collaboratorarray— The project collaborators.Items:
-
avatarstring— Collaborator profile picture. -
collaborator_idstring— The project collaborator ID. -
collaborator_namestring— The project collaborator name. -
collaborator_typeinteger, possible values:0, 1— Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. Role Enum Values: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is 0. If the `collaborator_type` is not 0, this returns null value.
-
-
created_datestring, format:date-time— The project creation date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`. -
modified_datestring, format:date-time— The whiteboard update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`. -
project_idstring— The Project ID -
project_linkstring— The project redirect link. -
project_namestring— The project name. -
starredboolean— Indicates whether the project is starred. `true`: starred, `false`: not starred.
Example:
{
"collaborator": [
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 2,
"collaborator_type": 0
}
],
"created_date": "2020-03-31T12:02:00Z",
"modified_date": "2020-03-31T12:02:00Z",
"project_name": "Untitle",
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"starred": false,
"project_link": "https://zoom.us/wb#/project/i1Ts2cRpSASonwbvTiPlUQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get a project
- Method:
GET - Path:
/whiteboards/projects/{projectId} - Tags: Project
Retrieves detailed information about a specific project.
Scopes: whiteboard_project:read,whiteboard_project:read:admin
Granular Scopes: whiteboard:read:project,whiteboard:read:project:admin
Rate Limit Label: LIGHT
Responses
Status: 200 The project information has been successfully retrieved.
Content-Type: application/json
-
collaboratorarray— The project collaborators. This API returns only the project collaborators who have the 'owner' role, along with the current user's information.Items:
-
avatarstring— Collaborator profile picture. -
collaborator_idstring— The project collaborator ID. -
collaborator_namestring— The project collaborator name. -
collaborator_typeinteger, possible values:0, 1— Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER -
roleinteger, possible values:0, 1, 2, 3, 4— Collaborator role type. Role Enum Values: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is 0. If the `collaborator_type` is not 0, this returns null value.
-
-
created_datestring, format:date-time— The project create date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
modified_datestring, format:date-time— The project update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z` -
owner_display_namestring— The project owner display name. -
parent_project_idstring— The ID of the parent project. This field is only populated when the current project is a subproject; otherwise, it will be null. -
project_idstring— The Project ID -
project_linkstring— The project redirect link. -
project_namestring— The project name. -
starredboolean— Indicates whether the project is starred. `true`: starred `false`: not starred
Example:
{
"collaborator": [
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 2,
"collaborator_type": 0
}
],
"created_date": "2020-03-31T12:02:00Z",
"modified_date": "2020-03-31T12:02:00Z",
"project_name": "Untitle",
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"starred": false,
"owner_display_name": "Example Name",
"project_link": "https://zoom.us/wb#/project/i1Ts2cRpSASonwbvTiPlUQ",
"parent_project_id": "parent123abc"
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The projectId is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Delete a project
- Method:
DELETE - Path:
/whiteboards/projects/{projectId} - Tags: Project
This API endpoint allows you to delete a specified project. Deleting a project removes all associated whiteboards from the project, setting them to have no project assignment.
Scopes: whiteboard_project:write:admin,whiteboard_project:write
Granular Scopes: whiteboard:delete:project,whiteboard:delete:project:admin
Rate Limit Label: LIGHT
Responses
Status: 204 The project has been successfully deleted. No content is returned in the response body.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The projectId is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Update project basic information
- Method:
PATCH - Path:
/whiteboards/projects/{projectId} - Tags: Project
This API endpoint allows you to update the basic information of a specific project.
Scopes: whiteboard_project:write:admin,whiteboard_project:write
Granular Scopes: whiteboard:update:project:admin,whiteboard:update:project
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
project_namestring— The new project name.
Example:
{
"project_name": "New Project Name"
}
Responses
Status: 204 The project's basic information has been successfully updated. No content is returned in the response body.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `38002` <br> The project name is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The project ID does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Get collaborators of a project
- Method:
GET - Path:
/whiteboards/projects/{projectId}/collaborators - Tags: Project
Returns a list of a project collaborators.
Scopes: whiteboard_project_collaborator:read,whiteboard_project_collaborator:read:admin
Granular Scopes: whiteboard:read:project_collaborator,whiteboard:read:project_collaborator:admin
Rate Limit Label: LIGHT
Responses
Status: 200 Get collaborators of a project.
Content-Type: application/json
Array of:
-
collaborator_id(required)string— `not nullable` The collaborator's unique ID. -
avatarstring— The collaborator profile picture.0 -
collaborator_namestring— The collaborator's display name. -
collaborator_typeinteger, possible values:0, 1— The collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER -
emailstring— `nullable` Email. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value. -
roleinteger, possible values:0, 1, 2, 3, 4— The collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.
Example:
[
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 2,
"collaborator_type": 0,
"email": "user@example.com"
}
]
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The projectId is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Share a project to new users
- Method:
POST - Path:
/whiteboards/projects/{projectId}/collaborators - Tags: Project
Add new collaborators to a specified project. Project owners or authorized users can invite team members or external users to collaborate on a project with specified roles and permissions.
Scopes: whiteboard_project_collaborator:write,whiteboard_project_collaborator:write:admin
Granular Scopes: whiteboard:write:project_collaborator,whiteboard:write:project_collaborator:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
collaborators(required)array— List of users to add as collaborators to the project.Items:
-
emailstring— **User Email Address**: The email address of the user you want to share the project with. -
roleinteger— Collaborator role type. When assigning a new `OWNER` or `CO_OWNER`, the specified user must belong to the same account as the original `OWNER`. If a new owner is designated for a project, the original owner will automatically be demoted to `CO_OWNER`. Role Enum Values: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER
-
-
invite_messagestring— A custom message to include with the project invitation. -
skip_notificationsboolean— **Default is false (notifications will be sent)**. If set to `true`, collaborators and owners will not receive direct messages or emails when the project is shared.
Example:
{
"skip_notifications": false,
"invite_message": "I'm glad to invite you to join this project.",
"collaborators": [
{
"email": "user@example.com.",
"role": 1
}
]
}
Responses
Status: 201 The collaborators have been successfully added to the project.
Content-Type: application/json
Array of:
-
avatarstring— Collaborator profile picture. -
collaborator_idstring— `not nullable` The collaborator's unique ID. -
collaborator_namestring— The collaborator's display name. -
collaborator_typeinteger— Collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER -
roleinteger— Collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER -
user_idstring— `nullable` User ID. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.
Example:
[
{
"collaborator_id": "x4g6hy789k0o878k",
"collaborator_name": "Jack",
"user_id": "wf3h7uo1dk0v53bl",
"avatar": "https://content.zoom.us/swerwerw.jpeg",
"role": 1,
"collaborator_type": 1
}
]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Update project collaborators
- Method:
PATCH - Path:
/whiteboards/projects/{projectId}/collaborators - Tags: Project
Updates the role of a collaborator in a project, which allows you to modify the permissions of an existing collaborator in a specific project. Note that when assigning a new OWNER or CO_OWNER, the specified user must belong to the same account as the original OWNER. The original owner will automatically be demoted to CO_OWNER if a new owner is designated.
Scopes: whiteboard_project_collaborator:write,whiteboard_project_collaborator:write:admin
Granular Scopes: whiteboard:update:project_collaborator,whiteboard:update:project_collaborator:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
collaborators(required)array— An array of collaborator objects.Items:
-
collaborator_id(required)string— The collaborator's unique ID `not nullable` . -
role(required)integer, possible values:0, 1, 2, 3, 4, default:2— Collaborator role type. When assigning a new `OWNER` or `CO_OWNER`, the specified user must belong to the same account as the original `OWNER`. If a new owner is designated for a project, the original owner will automatically be demoted to `CO_OWNER`. Role Enum Values: 0 - OWNER 1 - CO_OWNER 2 - EDITOR 3 - COMMENTER 4 - VIEWER
-
Example:
{
"collaborators": [
{
"collaborator_id": "x4g6hy789k0o878k",
"role": 2
}
]
}
Responses
Status: 204 Project collaborators updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid collaborator_id {collaboratorId}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br> **Error Code:** `34001` <br> You do not have permission to update the role of collaborator {collaboratorId}. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `35004` <br> The project ID {projectID} is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Remove the collaborator from a project
- Method:
DELETE - Path:
/whiteboards/projects/{projectId}/collaborators/{collaboratorId} - Tags: Project
This API endpoint allows you to remove a specific collaborator from a designated project. It enables project managers or authorized users to revoke access or remove a user from a project, enhancing project management and access control capabilities.
Scopes: whiteboard_project_collaborator:write,whiteboard_project_collaborator:write:admin
Granular Scopes: whiteboard:delete:project_collaborator:admin,whiteboard:delete:project_collaborator
Rate Limit Label: LIGHT
Responses
Status: 204 The collaborator has been successfully removed from the project. No content is returned in the response body.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br> **Error Code:** `34001` <br> You do not have permission to remove the collaborator {collaboratorId} from the project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38004` <br> The project ID {projectID} is not exist. <br> **Error Code:** `34005` <br> The collaborator ID {collaboratorId} is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
List subprojects
- Method:
GET - Path:
/whiteboards/projects/{projectId}/subprojects - Tags: Project
Retrieves a list of all subprojects under a parent project. Returns all direct subprojects without pagination.
Project Hierarchy Constraints
- Project hierarchy supports up to 20 levels of nesting
- Each project node can contain a maximum of 1,000 direct subprojects
Scopes: whiteboard_project:read,whiteboard_project:read:admin
Granular Scopes: whiteboard:read:subproject,whiteboard:read:subproject:admin
Rate Limit Label: LIGHT
Responses
Status: 200 List of subprojects retrieved successfully.
Content-Type: application/json
-
projectsarray— Array of subprojects.Items:
-
create_time(required)string, format:date-time— The date and time when the project was created, in ISO 8601 format (UTC/GMT). -
parent_project_id(required)string— The ID of the parent project. -
project_id(required)string— The Project ID -
project_link(required)string— The project redirect link. -
project_name(required)string— The name of the project. -
starred(required)boolean— Whether the project is starred by the current user. -
update_time(required)string, format:date-time— The date and time when the project was last updated, in ISO 8601 format (UTC/GMT).
-
Example:
{
"projects": [
{
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"project_name": "Q1 Planning",
"starred": false,
"parent_project_id": "parent123abc",
"create_time": "2024-03-15T09:00:00Z",
"update_time": "2024-03-15T10:30:00Z",
"project_link": "https://zoom.us/wb#/project/i1Ts2cRpSASonwbvTiPlUQ"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid parameter {field_name}. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34000` <br> The project does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Create a subproject
- Method:
POST - Path:
/whiteboards/projects/{projectId}/subprojects - Tags: Project
Creates a new subproject under the specified parent project.
Project Hierarchy Constraints
- Project hierarchy supports up to 20 levels of nesting
- Each project node can contain a maximum of 1,000 direct subprojects
Scopes: whiteboard_project:write:admin,whiteboard_project:write
Granular Scopes: whiteboard:write:subproject,whiteboard:write:subproject:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
project_name(required)string— The name of the subproject to create.
Example:
{
"project_name": "Q1 Planning."
}
Responses
Status: 201 Subproject created successfully.
Content-Type: application/json
-
create_time(required)string, format:date-time— The date and time when the project was created, in ISO 8601 format (UTC/GMT). -
parent_project_id(required)string— The ID of the parent project. -
project_id(required)string— The Project ID -
project_name(required)string— The name of the project. -
starred(required)boolean— Whether the project is starred by the current user. -
update_time(required)string, format:date-time— The date and time when the project was last updated, in ISO 8601 format (UTC/GMT). -
project_linkstring— The project redirect link.
Example:
{
"project_id": "qiMWddmtRxqwSFrK22lJPg",
"project_name": "Q1 Planning",
"starred": false,
"parent_project_id": "parent123abc",
"create_time": "2024-03-15T09:00:00Z",
"update_time": "2024-03-15T10:30:00Z",
"project_link": "https://zoom.us/wb#/project/i1Ts2cRpSASonwbvTiPlUQ"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Invalid prameter. <br> **Error Code:** `34003` <br> Maximum subproject depth of 20 levels exceeded. <br> **Error Code:** `34004` <br> Maximum subprojects limit of 1000 per node exceeded. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `34000` <br> The project is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Move whiteboards to a project
- Method:
POST - Path:
/whiteboards/projects/{projectId}/whiteboards - Tags: Project
This API endpoint allows you to move one or more whiteboards to a specified project. It enables users to organize their whiteboards by associating them with a specific project, enhancing project management capabilities.
Scopes: whiteboard_project:write:admin,whiteboard_project:write
Granular Scopes: whiteboard:write:project_whiteboard,whiteboard:write:project_whiteboard:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
whiteboard_ids(required)array— The whiteboard ID listItems:
string— The whiteboard ID.
Example:
{
"whiteboard_ids": [
"dZO3Wd9XT4mgXdNPbMm6tw"
]
}
Responses
Status: 201 The whiteboards have been successfully moved to the project.
Content-Type: application/json
-
whiteboard_idsarray— The whiteboard ID listItems:
string— The whiteboard ID.
Example:
{
"whiteboard_ids": [
"dZO3Wd9XT4mgXdNPbMm6tw"
]
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br> **Error Code:** `34001` <br> You do not have permission to move {whiteboardID} to the project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The projectId is not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Remove whiteboards from a project
- Method:
DELETE - Path:
/whiteboards/projects/{projectId}/whiteboards - Tags: Project
This API endpoint allows you to remove one or more whiteboards from a specified project.
Scopes: whiteboard_project:write:admin,whiteboard_project:write
Granular Scopes: whiteboard:delete:project_whiteboard,whiteboard:delete:project_whiteboard:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
-
whiteboard_ids(required)array— The whiteboard ID list.Items:
string— The whiteboard ID.
Example:
{
"whiteboard_ids": [
"W6Uuv4qUSfuJlp_GXGi36A"
]
}
Responses
Status: 204 The whiteboards have been successfully removed from the project. No content is returned in the response body.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `111804` <br> Permission is needed to access this project. <br> **Error Code:** `34001` <br> You have no permission to add {whiteboardID} to the project. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `38007` <br> The project ID does not exist. <br>
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Update whiteboard share setting
- Method:
PATCH - Path:
/whiteboards/{whiteboardId}/share_setting - Tags: Settings
Updates the whiteboard share setting.
Scopes: whiteboard_share_setting:write,whiteboard_share_setting:write:admin
Granular Scopes: whiteboard:update:share_setting:admin,whiteboard:update:share_setting
Rate Limit Label: MEDIUM
Request Body
Content-Type: application/json
-
share_link_settingobject— The access level and access type of a current whiteboard's share link.-
share_roleinteger, possible values:2, 3, 4— The access level of a whiteboard share link. Use this field with `share_scope`. If `share_scope` set `0` - `Restricted`, this field is null. If `share_scope` set `1` - `Same account` or `2` - `Anyone`, this filed can be `2` - `Editor`, `3` - `Commenter` or `4` - `Viewer`. * Enum: * `2` - `Editor` * `3` - `Commenter` * `4` - Viewer -
share_scopeinteger, possible values:0, 1, 2, 3, default:0— The access type of whiteboard share link. * Enum: * `0` - `Restricted`, Only people added can open with this link * `1` - `Same account` * `2` - Anyone * `3` - SAME_ACCOUNT_EXTERNAL_AUTH
-
Example:
{
"share_link_setting": {
"share_scope": 0,
"share_role": 2
}
}