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.

  • sessions

    array — The whiteboard archived sessions list.

    Items:

    • end_time

      string, format: date-time — The session's end time. It should be `end_time < to`

    • expire_time

      string, format: date-time — The session's expire time.

    • id

      string — The session's unique ID.

    • regulated_participants

      array — The session participant under this account.

      Items:

      • email

        string — The email of participant. `nullable` If the participant is not part of the session's account, this returns an empty string value.

      • join_whiteboard_time

        string, format: date-time — The user join the whiteboard time.

      • leave_whiteboard_time

        string, format: date-time — The user leave the whiteboard time.

      • user_id

        string — The unique ID of participant user in this session.

      • user_name

        string — The name of participant user in this session.

    • start_time

      string, format: date-time — The session's start time. It should be `from < start_time`

    • whiteboard_id

      string — The ID of whiteboard.

    • whiteboard_name

      string — The name of whiteboard.

  • total_records

    integer — 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.

  • activities

    array — The activity list of a session.

    Items:

    • collaborator_id

      string — The participant's unique ID. `not nullable`

    • collaborator_name

      string — The participant's display name.

    • content

      string — The text content generated by the activity.

    • create_time

      string, format: date-time — The activity create time.

    • download_url

      string — 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}}'`

    • email

      string — The email of participant. `nullable` If the participant is not part of the session's account, this returns an empty string value.

    • id

      string — The unique ID of an activity.

    • object_ids

      array — The IDs of the whiteboard object associated with this activity.

      Items:

      string — The object ID in the whiteboard.

    • type

      string — The operation description.

    • user_id

      string — The ID of user. `nullable` If the participant is **not** part of the session's account, this returns an empty string value.

  • end_time

    string, format: date-time — The session's end time.

  • expire_time

    string, format: date-time — The session's expire time.

  • next_page_token

    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.

  • session_id

    string — The unique ID of current session.

  • start_time

    string, format: date-time — The session's start time.

  • whiteboard_id

    string — The ID of the Zoom Whiteboard.

  • whiteboard_name

    string — 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
  • labels

    array — List of classification labels.

    Items:

    • classification_id

      string — The unique identifier of the classification label to apply.

    • color

      string — The hex color code for the label

    • create_time

      string, format: date-time — The timestamp when the label was created

    • description

      string — A description of the classification label

    • guideline_url

      string — URL to the classification guidelines document

    • is_default

      boolean — Whether this is the default label for new whiteboards

    • modify_time

      string, format: date-time — The timestamp when the label was last modified

    • name

      string — The display name of the classification label

    • sensitivity_level

      integer — The sensitivity rank of the label.

    • whiteboard_count

      integer — The number of whiteboards using this classification label (only returned when using admin scopes).

  • total_records

    integer — 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.

  • description

    string — A description of the classification label.

  • guideline_url

    string, format: uri — URL to the classification guidelines document.

  • is_default

    boolean, 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_time

    string, format: date-time — The timestamp when the label was created.

  • description

    string — A description of the classification label.

  • guideline_url

    string — URL to the classification guidelines document.

  • is_default

    boolean — Whether this is the default label for new whiteboards.

  • modify_time

    string, 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_id

    string — The unique identifier of the classification label

  • color

    string — The hex color code for the label

  • create_time

    string, format: date-time — The timestamp when the label was created

  • description

    string — A description of the classification label

  • guideline_url

    string — URL to the classification guidelines document

  • is_default

    boolean — Whether this is the default label for new whiteboards

  • modify_time

    string, format: date-time — The timestamp when the label was last modified

  • name

    string — The display name of the classification label

  • sensitivity_level

    integer — 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
  • color

    string — Hex color code for the label (e.g., #FF0000 for red).

  • description

    string — A description of what this classification label represents.

  • guideline_url

    string, format: uri — HTTPS URL linking to classification guidelines or policies.

  • is_default

    boolean — Whether this label should be automatically applied to new whiteboards. Only one label can be the default.

  • name

    string — The display name of the classification label.

  • sensitivity_level

    integer — 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:

  • avatar

    string — The collaborator profile picture.

  • channel_id

    string — `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_id

    string — `not nullable` The collaborator's unique ID.

  • collaborator_name

    string — The collaborator's display name.

  • collaborator_type

    integer, possible values: 0, 1, 2 — The collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER * `2` - CHANNEL

  • email

    string — `nullable` Email. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.

  • role

    integer, possible values: 0, 1, 2, 3, 4 — The collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER

  • user_id

    string — `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
  • collaborators

    array — Array of collaborator objects to be added to the whiteboard.

    Items:

    • channel_id

      string — **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.

    • email

      string — **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.

    • role

      integer, 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_message

    string — The custom message to include with the whiteboard invitation.

  • skip_notifications

    boolean — **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:

  • avatar

    string — Collaborator profile picture.

  • channel_id

    string — `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_id

    string — The collaborator's unique identifier. This field is not nullable.

  • collaborator_name

    string — The collaborator's display name.

  • collaborator_type

    integer, possible values: 0, 1, 2 — Collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER * `2` - CHANNEL

  • role

    integer, possible values: 0, 1, 2, 3, 4 — Collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER

  • user_id

    string — `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
  • collaborators

    array — An array of collaborator objects.

    Items:

    • collaborator_id

      string — The collaborator's unique ID `not nullable` .

    • role

      integer, 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_token

    string — 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_size

    integer — The number of records returned per page in a single API call.

  • total_records

    integer — The total number of records found.

  • whiteboards

    array — The information about the whiteboard list.

    Items:

    All of:

    • advanced_share_setting

      object — Whiteboard advanced share setting.

      • can_share

        boolean — 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_share

        boolean — 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_external

        boolean — 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_name

      string — The creator display name of the whiteboard.

    • created_date

      string, format: date-time — Whiteboard create date-time in UTC/GMT. Example: &quot;2020-03-31T12:02:00Z&quot;

    • locked

      boolean, default: false — Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked

    • modified_date

      string, format: date-time — Whiteboard update date-time in UTC/GMT. Example: &quot;2020-03-31T12:02:00Z&quot;

    • non_cloud

      boolean, 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_id

      string — qiMWddmtRxqwSFrK22lJPg

    • readonly

      boolean, 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_setting

      object — The access level, access type of current whiteboard share link.

      • share_role

        integer, 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_scope

        integer, 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

    • trashed

      boolean, 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_id

      string — Whiteboard ID

    • whiteboard_name

      string, 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
  • name

    string, 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_setting

    object — Whiteboard advanced share setting.

    • can_share

      boolean — 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_share

      boolean — 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_external

      boolean — 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_date

    string, format: date-time — The whiteboard create date-time in UTC/GMT. Example: &quot;`2020-03-31T12:02:00Z`&quot;

  • locked

    boolean, default: false — Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked.

  • modified_date

    string, format: date-time — The whiteboard update date-time in UTC/GMT. Example: &quot;2020-03-31T12:02:00Z&quot;

  • non_cloud

    boolean, 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.

  • readonly

    boolean, 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_setting

    object — The access level, access type of current whiteboard share link.

    • share_role

      integer, 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_scope

      integer, 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

  • trashed

    boolean, 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_id

    string — The whiteboard ID.

  • whiteboard_name

    string, 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_setting

    object — The whiteboard advanced share setting.

    • can_share

      boolean — 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_share

      boolean — 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_external

      boolean — 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_label

    object | null — The classification label applied to this whiteboard. Null if no classification is applied.

    • color

      string — The hex color code for the label.

    • description

      string — A description of the classification label.

    • guideline_url

      string — URL to the classification guidelines document.

    • id

      string — The unique identifier of the classification label.

    • name

      string — The display name of the classification label.

    • sensitivity_level

      integer — The sensitivity rank of the label.

  • created_by_display_name

    string — The creator display name of the whiteboard.

  • created_date

    string, format: date-time — The whiteboard creation date and time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

  • embedded_content_types

    array — 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.

  • locked

    boolean, default: false — Indicates whether the whiteboard is locked or not. `true`- The whiteboard is locked. `false` - The whiteboard is unlocked.

  • modified_by_display_name

    string — The latest modify user display name of the whiteboard.

  • modified_date

    string, format: date-time — The whiteboard update date and time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

  • non_cloud

    boolean, 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_link

    string — 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_id

    string — The Project ID

  • readonly

    boolean, 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_link

    string — The whiteboard share link.

  • share_link_setting

    object — The access level, access type of current whiteboard share link.

    • share_role

      integer, 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_scope

      integer, 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`

  • trashed

    boolean, 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_id

    string — The whiteboard ID.

  • whiteboard_name

    string, 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
  • locked

    boolean, default: false — Indicates whether the whiteboard is locked or not. `true`: The whiteboard is locked. `false`: The whiteboard is unlocked.

  • name

    string, 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.

  • failed

    array — List of failed whiteboard IDs.

    Items:

    string — The whiteboard ID.

  • processed

    array — List of processed whiteboard IDs.

    Items:

    string — The whiteboard ID.

  • processing

    array — 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_id

    string — 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

  • collaborators

    array — Users or team chat channels to add to a whiteboard.

    Items:

    • channel_id

      string — The team chat `channel ID` to share with.

    • email

      string, format: email — The `user email` address to share with.

    • role

      string, possible values: "0", "1", "2", "3", "4" — Collaborator role type. Enum: - `0` - OWNER - `1` - CO_OWNER - `2` - EDITOR - `3` - COMMENTER - `4` - VIEWER

  • owner_email

    string, 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_id

    string — qiMWddmtRxqwSFrK22lJPg

  • skip_notifications

    boolean — **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_name

    string — 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

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_name

    string — The whiteboard name `nullable`. This value is returned only when the `status` is `succeeded`.

  • file_name

    string — The file name of import file.

  • status

    string, 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_id

    string — 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_token

    string — 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_size

    integer — The number of records returned per page in a single API call.

  • projects

    array — The project list.

    Items:

    • collaborator

      array — The project collaborators, this API returns only the project collaborators who have the 'owner' role, along with the current user's information.

      Items:

      • avatar

        string — Collaborator profile picture.

      • collaborator_id

        string — The project collaborator ID.

      • collaborator_name

        string — The project collaborator name.

      • collaborator_type

        integer, possible values: 0, 1 — Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER

      • role

        integer, 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_id

        string — `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_date

      string, format: date-time — The project create date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

    • modified_date

      string, format: date-time — The project update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

    • owner_display_name

      string — The project owner display name.

    • project_id

      string — The Project ID

    • project_link

      string — The project redirect link.

    • project_name

      string — The project name.

    • starred

      boolean — Indicates whether the project is starred. `true`: starred `false`: not starred

  • total_records

    integer — 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.

  • collaborators

    array — Array of collaborator objects to be added to the project.

    Items:

    • email

      string — The user's email to be added to the project.

    • role

      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

  • invite_message

    string — The invite message.

  • owner_email

    string, 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_notifications

    boolean — **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_ids

    array — 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
  • collaborator

    array — The project collaborators.

    Items:

    • avatar

      string — Collaborator profile picture.

    • collaborator_id

      string — The project collaborator ID.

    • collaborator_name

      string — The project collaborator name.

    • collaborator_type

      integer, possible values: 0, 1 — Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER

    • role

      integer, 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_id

      string — `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_date

    string, format: date-time — The project creation date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`.

  • modified_date

    string, format: date-time — The whiteboard update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`.

  • project_id

    string — The Project ID

  • project_link

    string — The project redirect link.

  • project_name

    string — The project name.

  • starred

    boolean — 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
  • collaborator

    array — The project collaborators. This API returns only the project collaborators who have the 'owner' role, along with the current user's information.

    Items:

    • avatar

      string — Collaborator profile picture.

    • collaborator_id

      string — The project collaborator ID.

    • collaborator_name

      string — The project collaborator name.

    • collaborator_type

      integer, possible values: 0, 1 — Collaborator type. Enum: - `0` - SAME_ACCOUNT_USER - `1` - EXTERNAL_USER

    • role

      integer, 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_id

      string — `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_date

    string, format: date-time — The project create date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

  • modified_date

    string, format: date-time — The project update date-time in UTC/GMT. Example: `2020-03-31T12:02:00Z`

  • owner_display_name

    string — The project owner display name.

  • parent_project_id

    string — The ID of the parent project. This field is only populated when the current project is a subproject; otherwise, it will be null.

  • project_id

    string — The Project ID

  • project_link

    string — The project redirect link.

  • project_name

    string — The project name.

  • starred

    boolean — 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_name

    string — 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.

  • avatar

    string — The collaborator profile picture.0

  • collaborator_name

    string — The collaborator's display name.

  • collaborator_type

    integer, possible values: 0, 1 — The collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER

  • email

    string — `nullable` Email. This response only returns if the `collaborator_type` is `0`. If the `collaborator_type` is **not** `0`, this returns null value.

  • role

    integer, possible values: 0, 1, 2, 3, 4 — The collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER

  • user_id

    string — `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:

    • email

      string — **User Email Address**: The email address of the user you want to share the project with.

    • role

      integer — 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_message

    string — A custom message to include with the project invitation.

  • skip_notifications

    boolean — **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:

  • avatar

    string — Collaborator profile picture.

  • collaborator_id

    string — `not nullable` The collaborator's unique ID.

  • collaborator_name

    string — The collaborator's display name.

  • collaborator_type

    integer — Collaborator type. Enum: * `0` - SAME_ACCOUNT_USER * `1` - EXTERNAL_USER

  • role

    integer — Collaborator role type. Enum: * `0` - OWNER * `1` - CO_OWNER * `2` - EDITOR * `3` - COMMENTER * `4` - VIEWER

  • user_id

    string — `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
  • projects

    array — 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_link

    string — 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 list

    Items:

    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_ids

    array — The whiteboard ID list

    Items:

    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_setting

    object — The access level and access type of a current whiteboard's share link.

    • share_role

      integer, 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_scope

      integer, 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
  }
}

Responses

Status: 204 **HTTP Status Code**: `204` Whiteboard share setting updated successfully.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `34002` <br> Share role must be viewer for everyone. <br> **Error Code:** `34002` <br> Share role can't be null, owner, or co-owner for same account. <br>
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/).