Mail

  • OpenAPI Version: 3.1.1
  • API Version: 2

Zoom Mail API access mailbox data for your apps. Build private and public offerings on the Zoom App Marketplace with RESTful APIs. Dive into OAuth docs for credential acquisition and app creation.

Servers

  • URL: https://api.zoom.us/v2

Operations

List emails from draft folder

  • Method: GET
  • Path: /emails/mailboxes/{email}/drafts
  • Tags: Drafts

Lists the draft messages in the mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_drafts,email:read:list_drafts:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The response body contains list of drafts in the mailbox.
Content-Type: application/json
  • drafts

    array

    Items:

    • id

      string — The immutable ID of the draft.

    • message

      object — The message info of the draft.

      • id

        string — The immutable ID of the message.

      • threadId

        string — The ID of the thread the message belongs to.

  • nextPageToken

    string — Token to retrieve the next page of results in the list.

  • resultSizeEstimate

    integer — Estimated number of results in the response.

Example:

{
  "drafts": [
    {
      "id": "89f1000000000000_e856432f45a75bea_001",
      "message": {
        "id": "89f1000000000000_e856432f45a75bea_001",
        "threadId": "89f1000000000000_e856432f45a88bea_001"
      }
    }
  ],
  "nextPageToken": "e856432f45a75bea",
  "resultSizeEstimate": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Create a new draft email

  • Method: POST
  • Path: /emails/mailboxes/{email}/drafts
  • Tags: Drafts

Creates a new draft email message. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:draft,email:write:draft:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • message

    object — The message content of the draft. If the request body does not contain the message object, server will create an empty draft.

    • raw

      string — The entire email message in an RFC 2822 formatted and base64url encoded string.

Example:

{
  "message": {
    "raw": "TUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IFRodSwgMjggTWF5IDIwMjAgMTQ6MDE6MTkgLTA3MDANCk1lc3NhZ2UtSUQ6 IDxDQU89ekZkNVZUMW56PUJRRzRET2UxdFhxY3FXT1VzWUhqbjdxNXE9OTZmY0RHN2lNOUFAbWFpbC5nbWFpbC5jb20+DQpTdWJqZ WN0OiB0ZXN0IHRocmVhZGluZyBOby4gMQ0KRnJvbTogRGViYmllIFpoYW5nIDxkZWJiaWUuemhhbmdAem9vbS51cz4NClRvOiBkZW JiaWUudGVzdGVyMTBAZ21haWwuY29tDQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMDA wMDAwMDAwMDVlNzI3YzA1YTZiYmExYmUiDQoNCi0tMDAwMDAwMDAwMDAwNWU3MjdjMDVhNmJiYTFiZQ0KQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCg0KVGVzdCB0aHJlYWRpbmcuICBBdHRlbXB0IDEuDQoNCi0tMDAwMDAwMDAwMDAwN WU3MjdjMDVhNmJiYTFiZQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci 1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQ0KDQo8ZGl2IGRpcj0zRCJsdHIiPlRlc3QgdGhyZWFkaW5nLj1DMj1BMCBBdHRlbXB 0IDEuPC9kaXY+DQoNCi0tMDAwMDAwMDAwMDAwNWU3MjdjMDVhNmJiYTFiZS0t"
  }
}

Responses

Status: 200 If successful, the response body contains an instance of draft object.
Content-Type: application/json
  • id

    string — The immutable ID of the draft.

  • message

    object — The message info of the draft.

    • id

      string — The immutable ID of the message.

    • labelIds

      array — List of label IDs of this message.

      Items:

      string — Label ID of the message.

    • threadId

      string — The ID of the thread the message belongs to.

Example:

{
  "id": "89f1000000000000_e856432f45a75bea_001",
  "message": {
    "id": "89f1000000000000_e856432f45a75bea_001",
    "threadId": "89f1000000000000_e856432f45a75bea_001",
    "labelIds": [
      "DRAFT"
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Send out a draft email

  • Method: POST
  • Path: /emails/mailboxes/{email}/drafts/send
  • Tags: Drafts

Sends the specified draft. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:send_draft,email:write:send_draft:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • id (required)

    string — The immutable ID of the draft to identify which draft email will be used to send. If addition, if request body contains the "message" object, the message content will be used to update the draft before it is sent out.

  • message

    object — The message content of the draft.

    • raw

      string — The entire email message in an RFC 2822 formatted and base64url encoded string. If request body contains the "message" object, the message content will be used to update the draft before it is sent out.

Example:

{
  "id": "89f1000000000000_e856432f45a75bea_001",
  "message": {
    "raw": "RnJvbTogZGViYmllQHpvb20udXMNCkRhdGU6IFN1biBPY3QgMTcgMDQ6NDE6MTMgMjAxMCAoUERUKQ0KDQpUaGlzIGlzIGRyYWZ0IHRlc3QgbWVzc2FnZS4gVmVyeSBzaW1wbGUgcGxhaW4gdGV4dC4g"
  }
}

Responses

Status: 200 The response body contains an instance of message object. **Note**: The message object contains only the ID, thread ID and label IDs.
Content-Type: application/json
  • id

    string — The immutable ID of the message. When a draft is sent, the message copy will be processed and put into SCHEDULED folder for system delay in case user want to cancel, and eventually move to SENT folder.

  • labelIds

    array — List of label IDs on the message.

    Items:

    string — One of the label IDs on the message.

  • threadId

    string — The immutable thread ID of the sent message.

Example:

{
  "id": "6ddf401500000000_e8562d8808ecdddf_005",
  "threadId": "6ddf401500000000_e8562d8808ecdddf_005",
  "labelIds": [
    "SCHEDULED"
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified draft email

  • Method: GET
  • Path: /emails/mailboxes/{email}/drafts/{draftId}
  • Tags: Drafts

Retrieves the specified draft. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:draft,email:read:draft:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The successful response body contains an instance of draft.
Content-Type: application/json
  • id

    string — The immutable ID of the draft.

  • message

    object — The message content of the draft.

    • historyId

      string — The ID of the last history event that modified this message.

    • id

      string — The immutable ID of the message.

    • internalDate

      string — The internal message creation timestamp (epoch milliseconds), which determines message ordering in the folder.

    • labelIds

      array — List of label IDs applied to this message.

      Items:

      string — label ID of the message.

    • payload

      object — payload is of MIME MessagePart object.

      • body

        object — The message part body for this part, which may be empty for container MIME message parts.

        • attachmentId

          string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

        • data

          string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

        • size

          integer — Number of bytes for the message part data, encoding notwithstanding.

      • filename

        string — The filename of the attachment. Only present if this message part represents an attachment.

      • headers

        array — List of headers on this message part.

        Items:

        • name

          string — The name of the MIME email header.

        • value

          string — The value of the MIME email header.

      • mimeType

        string — The MIME type of the message part.

      • partId

        string — The immutable ID of the message part.

      • parts

        array — The child MIME message parts of this part.

        Items:

        • body

          object — The message part body for this part, which may be empty for container MIME message parts.

          • attachmentId

            string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

          • data

            string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

          • size

            integer — Number of bytes for the message part data, encoding notwithstanding.

        • filename

          string — The filename of the attachment. Only present if this message part represents an attachment.

        • headers

          array — List of headers on this message part.

          Items:

          • name

            string — The name of the MIME email header.

          • value

            string — The value of the MIME email header.

        • mimeType

          string — The MIME type of the message part.

        • partId

          string — The immutable ID of the message part.

        • parts

          array — The child MIME message parts of this part.

          Items:

          • body

            object — The message part body for this part, which may be empty for container MIME message parts.

            • attachmentId

              string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

            • data

              string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

            • size

              integer — Number of bytes for the message part data, encoding notwithstanding.

          • filename

            string — The filename of the attachment. Only present if this message part represents an attachment.

          • headers

            array — List of headers on this message part.

            Items:

            • name

              string — The name of the MIME email header.

            • value

              string — The value of the MIME email header.

          • mimeType

            string — The MIME type of the message part.

          • partId

            string — The immutable ID of the message part.

          • parts

            array — The child MIME message parts of this part.

            Items:

            • body

              object — The message part body for this part, which may be empty for container MIME message parts.

              • attachmentId

                string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

              • data

                string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

              • size

                integer — Number of bytes for the message part data, encoding notwithstanding.

            • filename

              string — The filename of the attachment. Only present if this message part represents an attachment.

            • headers

              array — List of headers on this message part.

              Items:

              • name

                string — The name of the MIME email header.

              • value

                string — The value of the MIME email header.

            • mimeType

              string — The MIME type of the message part.

            • partId

              string — The immutable ID of the message part.

    • raw

      string — The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in get API when the format=RAW parameter is supplied.

    • sizeEstimate

      integer — Estimated size in bytes of the message.

    • snippet

      string — A preview part of the message text.

    • threadId

      string — The ID of the thread the message belongs to.

Example:

{
  "id": "89f1000000000000_e856432f45a75bea_001",
  "message": {
    "id": "01d1000000000000_e8bc79717a36a5ff_006",
    "threadId": "3bc0000000000000_e8572723056fa10d_001",
    "labelIds": [
      "DRAFT"
    ],
    "snippet": "Hello, Jane Doe, writing to you for next weeks meeting.",
    "historyId": "457889",
    "internalDate": "1705098864740",
    "payload": {
      "partId": "1.1",
      "mimeType": "text/html",
      "filename": "cats.jpg",
      "headers": [
        {
          "name": "To",
          "value": "john.doe@example.com"
        }
      ],
      "body": {
        "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
        "size": 5434,
        "data": "dGhpcyBsaW5lIHVzZXMgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCnRoaXMgbGluZSBkb2VzIG5vdCB1c2UgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCg=="
      },
      "parts": [
        {
          "partId": "0",
          "mimeType": "multipart/alternative",
          "filename": "demo.xls",
          "headers": [
            {
              "name": "Content-Type",
              "value": "multipart/ALTERNATIVE"
            }
          ],
          "body": {
            "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
            "data": "",
            "size": 0
          },
          "parts": [
            {
              "partId": "0.0",
              "mimeType": "text/plain",
              "filename": "demo1.xls",
              "headers": [
                {
                  "name": "Content-Type",
                  "value": "text/PLAIN"
                }
              ],
              "body": {
                "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_2",
                "data": "W2ltYWdlOiBTY3JlZW5zaG90IDIwMjQtMDItMDQgYXQgMTAuMjIuMDjigK9QTS5wbmddCgpXaWxsIHRoaXMgZ2VuZXJhdGUgbXVsdGlwbGUgcGFydD8K",
                "size": 87
              },
              "parts": [
                {
                  "partId": "0.0.0",
                  "mimeType": "multipart/related",
                  "filename": "demo2.xls",
                  "headers": [
                    {
                      "name": "[Max Depth Exceeded]",
                      "value": "[Max Depth Exceeded]"
                    }
                  ],
                  "body": {
                    "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_3",
                    "data": "",
                    "size": 0
                  }
                }
              ]
            }
          ]
        }
      ]
    },
    "sizeEstimate": 50000,
    "raw": "TUlNRS1WZXJzaW9uOiAxLjANCkRhdGU6IFRodSwgMjggTWF5IDIwMjAgMTQ6MDE6MTkgLTA3MDANCk1lc3NhZ2UtSUQ6 IDxDQU89ekZkNVZUMW56PUJRRzRET2UxdFhxY3FXT1VzWUhqbjdxNXE9OTZmY0RHN2lNOUFAbWFpbC5nbWFpbC5jb20+DQpTdWJqZ WN0OiB0ZXN0IHRocmVhZGluZyBOby4gMQ0KRnJvbTogRGViYmllIFpoYW5nIDxkZWJiaWUuemhhbmdAem9vbS51cz4NClRvOiBkZW JiaWUudGVzdGVyMTBAZ21haWwuY29tDQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMDA wMDAwMDAwMDVlNzI3YzA1YTZiYmExYmUiDQoNCi0tMDAwMDAwMDAwMDAwNWU3MjdjMDVhNmJiYTFiZQ0KQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCg0KVGVzdCB0aHJlYWRpbmcuICBBdHRlbXB0IDEuDQoNCi0tMDAwMDAwMDAwMDAwN WU3MjdjMDVhNmJiYTFiZQ0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci 1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQ0KDQo8ZGl2IGRpcj0zRCJsdHIiPlRlc3QgdGhyZWFkaW5nLj1DMj1BMCBBdHRlbXB 0IDEuPC9kaXY+DQoNCi0tMDAwMDAwMDAwMDAwNWU3MjdjMDVhNmJiYTFiZS0t"
  }
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Update the specified draft email

  • Method: PUT
  • Path: /emails/mailboxes/{email}/drafts/{draftId}
  • Tags: Drafts

Replaces a draft email's content. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:update:draft,email:update:draft:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • message (required)

    object

    • raw

      string — The entire email message in an RFC 2822 formatted and base64url encoded string.

Example:

{
  "message": {
    "raw": "RnJvbTogZGViYmllQHpvb20udXMNCkRhdGU6IFN1biBPY3QgMTcgMDQ6NDE6MTMgMjAxMCAoUERUKQ0KDQpUaGlzIGlzIGRyYWZ0IHRlc3QgbWVzc2FnZS4gVmVyeSBzaW1wbGUgcGxhaW4gdGV4dC4g"
  }
}

Responses

Status: 200 The response body contains an instance of updated draft.
Content-Type: application/json
  • id

    string — The immutable ID of the draft.

  • message

    object

    • id

      string — The immutable ID of the message.

    • labelIds

      array — List of label IDs of this message.

      Items:

      string — Label ID of the message.

    • threadId

      string — The ID of the thread the message belongs to.

Example:

{
  "id": "89f1000000000000_e856432f45a75bea_001",
  "message": {
    "id": "89f1000000000000_e856432f45a75bea_001",
    "threadId": "89f1000000000000_e856432f45a75bea_001",
    "labelIds": [
      "DRAFT"
    ]
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure <br>

Delete an existing draft email

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/drafts/{draftId}
  • Tags: Drafts

Immediately and permanently deletes the specified draft. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:draft,email:delete:draft:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 The specified draft email is deleted.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

List history of events for mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/history
  • Tags: History

Lists the history of the changes to the given mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:history,email:read:history:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 Lists of all the changes of the mailbox such as message append, label change, settings change, etc. The changes are in chronical order (increase of the history ID).
Content-Type: application/json
  • history

    array — List of history records. Any messages contained in the response will typically only have ID and thread ID fields populated.

    Items:

    • cid

      string — Client ID which uniquely identifies a client (zoom.app)’s running session that initiated the change.

    • delegatesAdded

      array — History event indicates mailbox access has been granted to these delegates.

      Items:

      string — Email address of the delegate that has been granted access

    • delegatesDeleted

      array — History event indicates mailbox access has been revoked from these delegates.

      Items:

      string — Email address of the delegate that has been revoked access.

    • delegatesUpdated

      array — History event indicates mailbox access level has been modified for these delegates.

      Items:

      string — Email address of the delegate that has access setting has been updated.

    • delegatorsAdded

      array — History event indicates user has been granted access to these delegators' mailboxes.

      Items:

      string — Email address of the delegator that this user has been granted access to.

    • delegatorsDeleted

      array — History event indicates user has been revoked access from these delegators' mailboxes.

      Items:

      string — Email address of the delegator that this user has been revoked access from.

    • delegatorsUpdated

      array — History event indicates user's delegate access level has been modified to these delegators' mailboxes.

      Items:

      string — Email address of the delegator that this user has been modified access.

    • id

      string — The mailbox history event sequence ID.

    • labelsAdded

      array — History event indicates some labels are added to messages.

      Items:

      • labelIds

        array — Label IDs that being added to the messages

        Items:

        string — Label ID of the message.

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread ID.

    • labelsRemoved

      array — History event indicates some labels are removed from messages.

      Items:

      • labelIds

        array — List of label IDs that have been removed from the message.

        Items:

        string — Label ID of the message.

      • message

        object — Email message that has been operated on.

        • id

          string — Email message Id.

        • labelIds

          array — Label IDs of the message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread Id.

    • messagesAdded

      array — History event indicate a message added to the mailbox.

      Items:

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the newly added message.

          Items:

          string — Label ID of the message

        • threadId

          string — Email thread ID.

    • messagesDeleted

      array — History event indicates message deleted (not Trashed) from the mailbox.

      Items:

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the deleted message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread ID.

    • messagesImported

      array — History event indicates a message imported from the external source into this mailbox.

      Items:

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the imported message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread ID.

    • messagesImportedNew

      array — History event indicates a message imported from the external source that was newly delivered since last round of import.

      Items:

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the imported message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread ID.

    • messagesUpdated

      array — History event indicates an existing message that has been updated.

      Items:

      • message

        object — Email message that has been operated on.

        • id

          string — Email message ID.

        • labelIds

          array — Label IDs of the updated message.

          Items:

          string — Label ID of the message.

        • threadId

          string — Email thread ID.

    • settingsAdded

      array — Newly added setting list in this history record. Each enement contains a setting type, and that setting ID if applicable. This type of history event is mainly for adding user labels, filter, etc.

      Items:

      • id

        string — ID of the changing setting if the setting is of mutlple entries type.

      • type

        string, possible values: "userLabels", "language", "vacation", "filter", "signature", "disposableEmails", "emailTemplates", "delegation", "screening" — Type of changing setting.

    • settingsDeleted

      array — Deleted setting list in this history record. Each enement contains a setting type, and that setting ID if applicable. This type of history event is mainly for delete user labels, filters, etc.

      Items:

      • id

        string — ID of the changing setting if the setting is of mutlple entries type.

      • type

        string, possible values: "userLabels", "language", "vacation", "filter", "signature", "disposableEmails", "emailTemplates", "delegation", "screening" — Type of changing setting.

    • settingsUpdated

      array — Updated setting list in this history record. Each enement contains a setting type, and a setting ID if applicable.

      Items:

      • id

        string — ID of the changing setting if the setting is of mutlple entries type.

      • type

        string, possible values: "userLabels", "language", "vacation", "filter", "signature", "disposableEmails", "emailTemplates", "delegation", "screening" — Type of changing setting.

  • historyId

    string — The ID of the mailbox's latest history event.

  • nextPageToken

    string — The page token to retrieve the next page of results in the list.

Example:

{
  "history": [
    {
      "id": "1454",
      "cid": "b35d091400000000_12185",
      "messagesAdded": [
        {
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "messagesDeleted": [
        {
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "messagesImported": [
        {
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "messagesImportedNew": [
        {
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "messagesUpdated": [
        {
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "labelsAdded": [
        {
          "labelIds": [
            "LABEL_1"
          ],
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "LABEL_1"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "labelsRemoved": [
        {
          "labelIds": [
            "LABEL_2"
          ],
          "message": {
            "id": "b35d091400000000_e861880afaf26dc8_604",
            "labelIds": [
              "INBOX"
            ],
            "threadId": "b35d091400000000_e862202d7e502e95_587"
          }
        }
      ],
      "settingsAdded": [
        {
          "id": "Label_44",
          "type": "userLabels"
        }
      ],
      "settingsDeleted": [
        {
          "id": "Label_44",
          "type": "userLabels"
        }
      ],
      "settingsUpdated": [
        {
          "id": "Label_44",
          "type": "userLabels"
        }
      ],
      "delegatesAdded": [
        "john.doe@example.com"
      ],
      "delegatesDeleted": [
        "john.doe@example.com"
      ],
      "delegatesUpdated": [
        "john.doe@example.com"
      ],
      "delegatorsAdded": [
        "david.smith@example.com"
      ],
      "delegatorsDeleted": [
        "david.smith@example.com"
      ],
      "delegatorsUpdated": [
        "david.smith@example.com"
      ]
    }
  ],
  "nextPageToken": "00000000000005b3",
  "historyId": "1777"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure <br>

List labels in the mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/labels
  • Tags: Labels

Lists all labels in the mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_labels,email:read:list_labels:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 Tthe response body contains all the labels' information in the mailbox.
Content-Type: application/json
  • labels

    array — The list of labels in the mailbox.

    Items:

    • color

      object — The color to assign to the label. Color is only available for "user" type of labels.

      • backgroundColor

        string — The background color of the label, represented as hex string.

      • textColor

        string — The text color of the label, represented as hex string.

    • id

      string — The immutable ID of the label.

    • labelLevel

      integer — How many levels from top level label.

    • labelListVisibility

      string, possible values: "labelShowIfUnread", "labelHide", "labelShow" — The visibility of the label in the label list in the Zoom Mail client.

    • messageListVisibility

      string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail client.

    • messagesTotal

      integer — The total number of messages with the label.

    • messagesUnread

      integer — The number of unread messages with the label.

    • name

      string — The display name of the label.

    • parentId

      string — Parent label's ID.

    • threadsTotal

      integer — The total number of threads with the label.

    • threadsUnread

      integer — The number of unread threads with the label.

    • type

      string, possible values: "system", "user" — enum value of label type.

Example:

{
  "labels": [
    {
      "id": "Label_1",
      "name": "MyVacation",
      "parentId": "Label_0",
      "labelLevel": 1,
      "messageListVisibility": "show",
      "labelListVisibility": "labelShow",
      "messagesTotal": 100,
      "messagesUnread": 98,
      "threadsTotal": 80,
      "threadsUnread": 78,
      "color": {
        "textColor": "#000000",
        "backgroundColor": "#cccccc"
      },
      "type": "user"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Create a new label in mailbox

  • Method: POST
  • Path: /emails/mailboxes/{email}/labels
  • Tags: Labels

Creates a new label. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:label,email:write:label:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • name (required)

    string — The display name of the label.

  • parentId (required)

    string — The parent label's ID. For the top level label without parent, input an empty string.

  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

    • textColor

      string — The text color of the label, represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

  • labelListVisibility

    string, possible values: "labelShow", "labelHide", "labelShowIfUnread" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibilitystring

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail client.

Example:

{
  "name": "MyVacation",
  "parentId": "Label_1",
  "messageListVisibilitystring": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#666666",
    "backgroundColor": "#999999"
  }
}

Responses

Status: 200 If successful, the response body contains a newly created instance of label object.
Content-Type: application/json
  • name (required)

    string — The display name of the label.

  • parentId (required)

    string — The parent label's ID.

  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string.

    • textColor

      string — The text color of the label, represented as hex string.

  • id

    string — The immutable ID of the label.

  • labelLevel

    integer — How many levels from top level label.

  • labelListVisibility

    string, possible values: "labelShow", "labelShowIfUnread", "labelHide" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibilitystring

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail Client.

Example:

{
  "id": "Label_10",
  "name": "MyVacation",
  "parentId": "Label_0",
  "labelLevel": 2,
  "messageListVisibilitystring": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#000000",
    "backgroundColor": "#cccccc"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 409 **HTTP Status Code:** `409` <br> Conflict **Error Code:** `409` <br> Conflict Operation. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified label in mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/labels/{labelId}
  • Tags: Labels

Retrieves the specified label. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:label,email:read:label:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of label object.
Content-Type: application/json
  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string.

    • textColor

      string — The text color of the label, represented as hex string.

  • id

    string — The immutable ID of the label.

  • labelLevel

    integer — How many levels from top level label.

  • labelListVisibility

    string, possible values: "labelShow", "labelShowIfUnread", "labelHide" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibility

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail Client.

  • messagesTotal

    integer — The total number of messages with the label.

  • messagesUnread

    integer — The number of unread messages with the label.

  • name

    string — The display name of the label.

  • parentId

    string — The parent label's ID.

  • threadsTotal

    integer — The total number of threads with the label.

  • threadsUnread

    integer — The number of unread threads with the label.

  • type

    string, possible values: "system", "user" — Enum value of label type.

Example:

{
  "id": "Label_12",
  "name": "MyVacation",
  "parentId": "Label_1",
  "labelLevel": 2,
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow",
  "messagesTotal": 100,
  "messagesUnread": 98,
  "threadsTotal": 80,
  "threadsUnread": 78,
  "color": {
    "textColor": "#000000",
    "backgroundColor": "#cccccc"
  },
  "type": "user"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `401` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Update the specified label in mailbox

  • Method: PUT
  • Path: /emails/mailboxes/{email}/labels/{labelId}
  • Tags: Labels

Updates the specified label. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:update:label,email:update:label:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • name (required)

    string — The display name of the label.

  • parentld (required)

    string — The parent label's ID.

  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

    • textColor

      string — The text color of the label, represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

  • labelListVisibility

    string, possible values: "labelShow", "labelHide", "labelShowIfUnread" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibilitystring

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail Client.

Example:

{
  "name": "MyVacation",
  "parentld": "Label_1",
  "messageListVisibilitystring": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#666666",
    "backgroundColor": "#999999"
  }
}

Responses

Status: 200 The response body contains an instance of label object.
Content-Type: application/json
  • name (required)

    string — The display name of the label.

  • parentId (required)

    string — The parent label's ID.

  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string.

    • textColor

      string — The text color of the label, represented as hex string.

  • id

    string — The immutable ID of the label.

  • labelLevel

    integer — How many levels from top level label.

  • labelListVisibility

    string, possible values: "labelShow", "labelShowIfUnread", "labelHide" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibility

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail Client.

Example:

{
  "id": "Label_12",
  "name": "MyVacation",
  "parentId": "Label_1",
  "labelLevel": 2,
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#000000",
    "backgroundColor": "#cccccc"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Delete an existing label from mailbox

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/labels/{labelId}
  • Tags: Labels

Immediately and permanently deletes the specified label and removes it from any messages and threads that it is applied to. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:label,email:delete:label:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 The specified label is deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Patch the specified label in mailbox

  • Method: PATCH
  • Path: /emails/mailboxes/{email}/labels/{labelId}
  • Tags: Labels

Patch the specified label. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:update:label,email:update:label:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • name (required)

    string — The display name of the label.

  • parentId (required)

    string — Parent label's ID.

  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

    • textColor

      string — The text color of the label, represented as hex string. The text color and background cololr must be set togther. The allowed color sets are "#000000", "#434343", "#666666", "#999999", "#cccccc", "#efefef", "#f3f3f3", "#ffffff", "#fb4c2f", "#ffad47", "#fad165", "#16a766", "#43d692", "#4a86e8", "#a479e2", "#f691b3", "#f6c5be", "#ffe6c7", "#fef1d1", "#b9e4d0", "#c6f3de", "#c9daf8", "#e4d7f5", "#fcdee8", "#efa093", "#ffd6a2", "#fce8b3", "#89d3b2", "#a0eac9", "#a4c2f4", "#d0bcf1", "#fbc8d9", "#e66550", "#ffbc6b", "#fcda83", "#44b984", "#68dfa9", "#6d9eeb", "#b694e8", "#f7a7c0", "#cc3a21", "#eaa041", "#f2c960", "#149e60", "#3dc789", "#3c78d8", "#8e63ce", "#e07798", "#ac2b16", "#cf8933", "#d5ae49", "#0b804b", "#2a9c68", "#285bac", "#653e9b", "#b65775", "#822111", "#a46a21", "#aa8831", "#076239", "#1a764d", "#1c4587", "#41236d", "#83334c", "#464646", "#e7e7e7", "#0d3472", "#b6cff5", "#0d3b44", "#98d7e4", "#3d188e", "#e3d7ff", "#711a36", "#fbd3e0", "#8a1c0a", "#f2b2a8", "#7a2e0b", "#ffc8af", "#7a4706", "#ffdeb5", "#594c05", "#fbe983", "#684e07", "#fdedc1", "#0b4f30", "#b3efd3", "#04502e", "#a2dcc1", "#c2c2c2", "#4986e7", "#2da2bb", "#b99aff", "#994a64", "#f691b2", "#ff7537", "#ffad46", "#662e37", "#ebdbde", "#cca6ac", "#094228", "#42d692", "#16a765"

  • labelListVisibility

    string, possible values: "labelShow", "labelHide", "labelShowIfUnread" — The visibility of the label in the label list in the Zoom Mail Client.

  • messageListVisibilitystring

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail Client.

Example:

{
  "name": "MyVacation",
  "parentId": "Label_1",
  "messageListVisibilitystring": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#666666",
    "backgroundColor": "#999999"
  }
}

Responses

Status: 200 The response body contains an instance of label object.
Content-Type: application/json
  • color

    object — The color to assign to the label. Color is only available for "user" type of labels.

    • backgroundColor

      string — The background color of the label, represented as hex string.

    • textColor

      string — The text color of the label, represented as hex string.

  • id

    string — The immutable ID of the label.

  • labelLevel

    integer — How many levels from top level label.

  • labelListVisibility

    string, possible values: "labelShow", "labelShowIfUnread", "labelHide" — The visibility of the label in the label list in the Zoom Mail client.

  • messageListVisibility

    string, possible values: "show", "hide" — The visibility of messages with this label in the message list in the Zoom Mail client.

  • name

    string — The display name of the label.

  • parentId

    string — The parent label's ID.

Example:

{
  "id": "Label_12",
  "name": "MyVacation",
  "parentId": "Label_1",
  "labelLevel": 2,
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow",
  "color": {
    "textColor": "#000000",
    "backgroundColor": "#cccccc"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the mailbox profile

  • Method: GET
  • Path: /emails/mailboxes/{email}/profile
  • Tags: Mailbox

Get the mailbox profile. Prerequisites:

  • Account must have Workplace Business or higher license type
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow
  • Mail service End-To-End Encryption is disabled
  • Requested mailbox must have been provisioned

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:profile,email:read:profile:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of mailbox profile.
Content-Type: application/json
  • aliases

    array — Alias email addresses this mailbox currently has.

    Items:

    • aliasEmail

      string — Alias of the mailbox.

    • description

      string — The description of this alias.

  • createTime

    integer — Mailbox creation timestamp (epoch seconds).

  • emailAddress

    string — The mailbox's address.

  • encryptionEnabled

    boolean — Whether the emails are E2EE encrypted by default.

  • groupEmails

    array — Mail distribution list that this email address belongs to.

    Items:

    string — Group email address.

  • historyId

    string — The ID of the last history event that modified this mailbox.

  • labelEncryptionEnabled

    boolean — Whether the labels are E2EE encrypted by default.

  • mboxSize

    number — Current mailbox size in bytes.

  • messagesTotal

    integer — Total email message count in the mailbox.

  • status

    string, possible values: "active", "readOnly", "inactive", "deactivated", "suspended", "softDeleted", "purging", "preProvision" — Enumerable represents current mailbox status.

  • threadsTotal

    integer — Total thread count in the mailbox.

Example:

{
  "emailAddress": "john.doe@example.com",
  "groupEmails": [
    "sales@example.com"
  ],
  "aliases": [
    {
      "description": "Alias for Europe sales team.",
      "aliasEmail": "sales.europe@example.com"
    }
  ],
  "createTime": 1705972326,
  "status": "active",
  "mboxSize": 282554,
  "messagesTotal": 4588,
  "threadsTotal": 4523,
  "encryptionEnabled": false,
  "labelEncryptionEnabled": false,
  "historyId": "10"
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

List emails from the mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/messages
  • Tags: Messages

Lists the messages in the user's mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_msgs,email:read:list_msgs:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The response body contains list of message objects.
Content-Type: application/json
  • messages

    array — List of messages that matching selecting critiera.

    Items:

    • id

      string — The immutable ID of the message.

    • threadId

      string — The ID of the thread the message belongs to.

  • nextPageToken

    string — Page token to retrieve the next page of results in the list.

  • resultSizeEstimate

    integer — Estimated number of results in the response.

Example:

{
  "messages": [
    {
      "id": "7d4d447700000000_e85f09d67065eb70_121",
      "threadId": "7d4d447700000000_e85f09d67065eb70_121"
    }
  ],
  "nextPageToken": "e85f09d67065eb70",
  "resultSizeEstimate": 1
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Create a new email

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages
  • Tags: Messages

Directly inserts a message into this mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:msg,email:write:msg:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • raw (required)

    string — The entire email message in an RFC 2822 formatted and base64url encoded string.

  • labelIds

    array — List of label IDs to set on the inserting message.

    Items:

    string — A label ID to set on the message.

Example:

{
  "labelIds": [
    "IMPORTANT"
  ],
  "raw": "RnJvbTogeGlhb2JvLmxpQHpvb21kZXYudXMKVG86IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKU3ViamVjdDogYXV0aCA3MjM3MTA0YSBzdWJzY3JpYmUgbGludXgta2VybmVsIHhpYW9iby5saUB6b29tZGV2LnVzCgphdXRoIDcyMzcxMDRhIHN1YnNjcmliZSBsaW51eC1rZXJuZWwgeGlhb2JvLmxpQHpvb21kZXYudXMK"
}

Responses

Status: 200 The request body contains an instance of message object.
Content-Type: application/json
  • id

    string — The message ID of the inserted message.

  • labelIds

    array — List of label IDs of the message inserted.

    Items:

    string — A label ID of the inserted message.

  • threadId

    string — The thread ID of the inserted message.

Example:

{
  "id": "4a1fca9500000000_e856054c90f10a86_940",
  "threadId": "4a1fca9500000000_e856054c90f10a86_940",
  "labelIds": [
    "INBOX"
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Batch delete the specified emails

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/batchDelete
  • Tags: Messages

Delete multiple messages specified in request body. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:batch_delete_msgs,email:write:batch_delete_msgs:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • ids (required)

    array — List of message IDs to delete.

    Items:

    string — Message ID to delete.

Example:

{
  "ids": [
    "7d4d447700000000_e85f09d67065eb70_121"
  ]
}

Responses

Status: 204 The specified messages are all deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Batch modify the specified emails

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/batchModify
  • Tags: Messages

Modifies the labels on the specified messages. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:batch_modify_msgs,email:write:batch_modify_msgs:admin

Rate Limit Label: HEAVY

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • ids (required)

    array — List of message IDs to modify.

    Items:

    string — Message ID to delete.

  • addLabelIds

    array — List of label IDs to add on the messages.

    Items:

    string — Label ID to add.

  • removeLabelIds

    array — List of label IDs to remove from the messages.

    Items:

    string — Label ID to remove.

Example:

{
  "ids": [
    "7d4d447700000000_e85f09d67065eb70_121"
  ],
  "addLabelIds": [
    "IMPORTANT"
  ],
  "removeLabelIds": [
    "TRASH"
  ]
}

Responses

Status: 204 The specified messages are all modified.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Send out an email

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/send
  • Tags: Messages

Sends the specified message to the recipients as specified in the email. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:send_msg,email:write:send_msg:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • raw (required)

    string — The entire email message in an RFC 2822 formatted and base64url encoded string.

  • labelIds

    array — List of label IDs to be applied on the message sent copy in the sender's mailbox.

    Items:

    string — Label ID to be applied on the message.

  • sendTime

    string — Schedule the message to be sent at this specified time (epoch seconds).

Example:

{
  "raw": "RnJvbTogeGlhb2JvLmxpQHpvb21kZXYudXMKVG86IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKU3ViamVjdDogYXV0aCA3MjM3MTA0YSBzdWJzY3JpYmUgbGludXgta2VybmVsIHhpYW9iby5saUB6b29tZGV2LnVzCgphdXRoIDcyMzcxMDRhIHN1YnNjcmliZSBsaW51eC1rZXJuZWwgeGlhb2JvLmxpQHpvb21kZXYudXMK",
  "labelIds": [
    "IMPORTANT"
  ],
  "sendTime": "1706669356"
}

Responses

Status: 200 The response body contains an instance of message object.
Content-Type: application/json
  • id

    string — The message ID of the sent message.

  • labelIds

    array — The label IDs of the sent message.

    Items:

    string — A label ID of the sent message.

  • threadId

    string — The thread ID of the sent message.

Example:

{
  "id": "4a1fca9500000000_e856054c90f10a86_940",
  "threadId": "4a1fca9500000000_e856054c90f10a86_940",
  "labelIds": [
    "SCHEDULED"
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified email

  • Method: GET
  • Path: /emails/mailboxes/{email}/messages/{messageId}
  • Tags: Messages

Retrieves the specified message. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:msg,email:read:msg:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of message object.
Content-Type: application/json
  • expiration

    string — The timestamp (epoch milliseconds) at which the message is considered expired and can be removed from mailbox.

  • historyId

    string — The ID of the last history event that modified this message.

  • id

    string — The immutable ID of the message.

  • internalDate

    string — The internal message creation timestamp (epoch milliseconds), which determines message order in the folder. For normal SMTP-received email, this represents the time the message was originally accepted by Zoom Mail server.

  • labelIds

    array — List of label IDs applied to this message.

    Items:

    string — Label ID of the message.

  • lastMoved

    string — The timestamp (epoch milliseconds) for the last time the message had a label change.

  • manifest

    string — A string blob in the manifest portion of an encrypted email used for decryption. This is only valid for encrypted messages.

  • originalMime

    string — A string representing the encrypted text portion of the email. This is only valid for encrypted messages.

  • payload

    object — Payload is of a MIME MessagePart format.

    • body

      object — The message part body for this part, which may be empty for container MIME message parts.

      • attachmentId

        string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

      • data

        string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

      • size

        integer — Number of bytes for the message part data, encoding notwithstanding.

    • filename

      string — The filename of the attachment. Only present if this message part represents an attachment.

    • headers

      array — List of headers on this message part.

      Items:

      • name

        string — The name of the MIME email header.

      • value

        string — The value of the MIME email header.

    • mimeType

      string — The MIME type of the message part.

    • partId

      string — The immutable ID of the message part.

    • parts

      array — The child MIME message parts of this part.

      Items:

      • body

        object — The message part body for this part, which may be empty for container MIME message parts.

        • attachmentId

          string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

        • data

          string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

        • size

          integer — Number of bytes for the message part data, encoding notwithstanding.

      • filename

        string — The filename of the attachment. Only present if this message part represents an attachment.

      • headers

        array — List of headers on this message part.

        Items:

        • name

          string — The name of the MIME email header.

        • value

          string — The value of the MIME email header.

      • mimeType

        string — The MIME type of the message part.

      • partId

        string — The immutable ID of the message part.

      • parts

        array — The child MIME message parts of this part.

        Items:

        • body

          object — The message part body for this part, which may be empty for container MIME message parts.

          • attachmentId

            string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

          • data

            string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

          • size

            integer — Number of bytes for the message part data, encoding notwithstanding.

        • filename

          string — The filename of the attachment. Only present if this message part represents an attachment.

        • headers

          array — List of headers on this message part.

          Items:

          • name

            string — The name of the MIME email header.

          • value

            string — The value of the MIME email header.

        • mimeType

          string — The MIME type of the message part.

        • partId

          string — The immutable ID of the message part.

        • parts

          array — The child MIME message parts of this part.

          Items:

          • body

            object — The message part body for this part, which may be empty for container MIME message parts.

            • attachmentId

              string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

            • data

              string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

            • size

              integer — Number of bytes for the message part data, encoding notwithstanding.

          • filename

            string — The filename of the attachment. Only present if this message part represents an attachment.

          • headers

            array — List of headers on this message part.

            Items:

            • name

              string — The name of the MIME email header.

            • value

              string — The value of the MIME email header.

          • mimeType

            string — The MIME type of the message part.

          • partId

            string — The immutable ID of the message part.

  • raw

    string — The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in get API when the format=RAW parameter is supplied.

  • sendTime

    string — The desired send time (epoch milliseconds) for a DRAFT or SCHEDULED message.

  • sizeEstimate

    integer — Size of the email in bytes.

  • snippet

    string — A preview part of the message text.

  • threadId

    string — The ID of the thread the message belongs to.

  • userScheduled

    boolean — A boolean value indicating if this message is scheduled by user or system.

Example:

{
  "id": "7d4d447700000000_e85f09d67065eb70_121",
  "threadId": "7d4d447700000000_e85f09d67065eb70_121",
  "labelIds": [
    "INBOX"
  ],
  "snippet": "Email text here",
  "historyId": "5153",
  "internalDate": "1702631317509",
  "expiration": "0",
  "lastMoved": "1702866810000",
  "sendTime": "1704828847000",
  "userScheduled": true,
  "manifest": "CBYyJAoiAQPOyzaErnwrX3l7Bj2vLxj7uXgqVFxRpmKcR_wMqEFGdjq1AQqy",
  "originalMime": "WCzXU_IiB8DCVzh3_4ORekQuQYDHy2KNn9C_CY4H3gjtv0E74x03Ty",
  "payload": {
    "partId": "1.1",
    "mimeType": "text/html",
    "filename": "cats.jpg",
    "headers": [
      {
        "name": "To",
        "value": "john.doe@example.com"
      }
    ],
    "body": {
      "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
      "size": 5434,
      "data": "dGhpcyBsaW5lIHVzZXMgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCnRoaXMgbGluZSBkb2VzIG5vdCB1c2UgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCg=="
    },
    "parts": [
      {
        "partId": "0",
        "mimeType": "multipart/alternative",
        "filename": "demo.xls",
        "headers": [
          {
            "name": "Content-Type",
            "value": "multipart/ALTERNATIVE"
          }
        ],
        "body": {
          "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
          "data": "",
          "size": 0
        },
        "parts": [
          {
            "partId": "0.0",
            "mimeType": "text/plain",
            "filename": "demo1.xls",
            "headers": [
              {
                "name": "Content-Type",
                "value": "text/PLAIN"
              }
            ],
            "body": {
              "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_2",
              "data": "W2ltYWdlOiBTY3JlZW5zaG90IDIwMjQtMDItMDQgYXQgMTAuMjIuMDjigK9QTS5wbmddCgpXaWxsIHRoaXMgZ2VuZXJhdGUgbXVsdGlwbGUgcGFydD8K",
              "size": 87
            },
            "parts": [
              {
                "partId": "0.0.0",
                "mimeType": "multipart/related",
                "filename": "demo2.xls",
                "headers": [
                  {
                    "name": "Content-Transfer-Encoding",
                    "value": "7bit"
                  }
                ],
                "body": {
                  "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_3",
                  "data": "",
                  "size": 0
                }
              }
            ]
          }
        ]
      }
    ]
  },
  "sizeEstimate": 25201,
  "raw": "VG86IGpvaG5AZXhhbXBsZS5jb20KRnJvbTogamFuZUBleGFtcGxlLmNvbQoKaGVsbG8="
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Delete an existing email

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/messages/{messageId}
  • Tags: Messages

Immediately and permanently deletes the specified message. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:msg,email:delete:msg:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 The specified email is deleted.
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Update the specified email

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/{messageId}/modify
  • Tags: Messages

Modifies the labels on the specified message. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:modify_msg,email:write:modify_msg:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • addLabelIds

    array — List of the label IDs to add to the message.

    Items:

    string — A label ID to add to the message.

  • removeLabelIds

    array — List of the label IDs to be removed from the message.

    Items:

    string — A label ID to remove from the message.

Example:

{
  "addLabelIds": [
    "TRASH"
  ],
  "removeLabelIds": [
    "SPAM"
  ]
}

Responses

Status: 200 The response body contains an instance of message object.
Content-Type: application/json
  • id

    string — The immutable ID of the message.

  • labelIds

    array — List of IDs of labels applied to this message.

    Items:

    string — A label ID of the message.

  • threadId

    string — The ID of the thread the message belongs to.

Example:

{
  "id": "7d4d447700000000_e85f09d67065eb70_121",
  "threadId": "7d4d447700000000_e85f09d67065eb70_121",
  "labelIds": [
    "TRASH"
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Move the specified email to TRASH folder

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/{messageId}/trash
  • Tags: Messages

Moves the specified message to the TRASH folder. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:trash_msg,email:write:trash_msg:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of message object.
Content-Type: application/json
  • id

    string — The message ID being trashed.

  • labelIds

    array — List of label IDs of the message.

    Items:

    string — A label ID of the message.

  • threadId

    string — The thread ID of the message being trashed.

Example:

{
  "id": "4a1fca9500000000_e85651412799fc3d_934",
  "threadId": "4a1fca9500000000_e85651412799fc3d_934",
  "labelIds": [
    "TRASH"
  ]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Move the specified email out of TRASH folder

  • Method: POST
  • Path: /emails/mailboxes/{email}/messages/{messageId}/untrash
  • Tags: Messages

Move a message out of TRASH folder. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:untrash_msg,email:write:untrash_msg:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of message object.
Content-Type: application/json
  • id

    string — The message ID being untrashed.

  • labelIds

    array — List of label IDs of the message.

    Items:

    string — A label ID of the message.

  • threadId

    string — The thread ID of the message being untrashed.

Example:

{
  "id": "4a1fca9500000000_e85651412799fc3d_934",
  "threadId": "4a1fca9500000000_e85651412799fc3d_934",
  "labelIds": [
    "INBOX"
  ]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified attachment for an email

  • Method: GET
  • Path: /emails/mailboxes/{email}/messages/{messageId}/attachments/{attachmentId}
  • Tags: Messages.Attachments

Retrieves the specified message attachment. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:attachment,email:read:attachment:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 If successful, the response body contains an instance of message part body object.
Content-Type: application/json
  • attachmentId

    string — The immutable ID of the message attachment.

  • data

    string — The message attachment as the MIME message part as a base64url encoded string.

  • size

    integer — The number of bytes for the message attachment.

Example:

{
  "attachmentId": "6ddf401500000000_e855d2b4b6d35377_010_1",
  "size": 40270,
  "data": "YSBzbWFsbCB0ZXN0IHN0cmluZyBmb3IgYmFzZTY0IHVybCBlbmNvZGU="
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `403` <br> Forbidden Operation. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> Not Found. <br>
Status: 409 **HTTP Status Code:** `409` <br> Conflict **Error Code:** `409` <br> Conflict Operation. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get mailbox vacation response setting

  • Method: GET
  • Path: /emails/mailboxes/{email}/settings/vacation
  • Tags: Settings

Gets vacation respondes settings. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:setting_vacation,email:read:setting_vacation:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of vacation setting object.
Content-Type: application/json
  • enableAlwaysRespond

    boolean — Flag that determines whether vacation responses are repeatedly sent to the same sender. If enableAlwaysRespond is false, the response will be sent to the same sender once every four days.

  • enableAutoReply

    boolean — Flag that controls whether mailbox automatically replies with vacation response.

  • endTime

    string — An optional end time for sending auto-replies (epoch ms). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • endTimeISO

    string — An optional end time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • responseBodyHtml

    string — Response body in HTML format. Server will sanitize the HTML before storing it. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseBodyPlainText

    string — Response body in plain text format. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseSubject

    string — Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must exist.

  • restrictToContacts

    boolean — Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.

  • restrictToDomain

    boolean — Flag that determines whether responses are sent to recipients who are outside of the user's domain.

  • startTime

    string — An optional start time for sending auto-replies (epoch ms). When this is specified, server will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.

  • startTimeISO

    string — An optional start time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

Example:

{
  "enableAutoReply": false,
  "responseSubject": "Example Response Subject",
  "responseBodyPlainText": "Example Response Body Plain Text",
  "responseBodyHtml": "Example Response Body Html",
  "enableAlwaysRespond": false,
  "restrictToContacts": false,
  "restrictToDomain": true,
  "startTime": "1704268800000",
  "startTimeISO": "2024-01-03T08:00:00.000Z",
  "endTime": "1705046399000",
  "endTimeISO": "2024-01-12T07:59:59.000Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure <br>

Update mailbox vacation response setting

  • Method: PUT
  • Path: /emails/mailboxes/{email}/settings/vacation
  • Tags: Settings

Updates vacation responder settings. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:update:setting_vacation,email:update:setting_vacation:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • enableAutoReply (required)

    boolean — Flag that controls whether server automatically replies to messages.

  • enableAlwaysRespond

    boolean — Flag that determines whether vacation responses are repeatedly sent to the same sender. If enableAlwaysRespond is false, the response will be sent to the same sender only once every four days.

  • endTime

    string — An optional end time for sending auto-replies (epoch milliseconds). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • endTimeISO

    string — An optional end time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • responseBodyHtml

    string — Response body in HTML format. Server will sanitize the HTML before storing it. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseBodyPlainText

    string — Response body in plain text format. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseSubject

    string — Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must exist.

  • restrictToContacts

    boolean — Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.

  • restrictToDomain

    boolean — Flag that determines whether responses are sent to recipients who are outside of the user's domain.

  • startTime

    string — An optional start time for sending auto-replies (epoch milliseconds). When this is specified, server will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.

  • startTimeISO

    string — An optional start time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

Example:

{
  "enableAutoReply": false,
  "responseSubject": "Example Response Subject",
  "responseBodyPlainText": "Example Response Body Plain Text",
  "responseBodyHtml": "Example Response Body Html",
  "enableAlwaysRespond": false,
  "restrictToContacts": false,
  "restrictToDomain": true,
  "startTime": "1704268800000",
  "startTimeISO": "2024-01-03T08:00:00.000Z",
  "endTime": "1705046399000",
  "endTimeISO": "2024-01-12T07:59:59.000Z"
}

Responses

Status: 200 The response body contains an instance of vacation setting object.
Content-Type: application/json
  • enableAlwaysRespond

    boolean — Flag that determines whether vacation responses are always sent to the same sender. If enableAlwaysRespond is false, then the response will be sent to the sender only if another auto response has not been sent to the same sender within the last four days.

  • enableAutoReply

    boolean — Flag that controls whether server automatically replies to messages. If enableAutoReply is set to true, at least one of the response fields: responseSubject, responseBodyPlainText, or responseBodyHtml should exist.

  • endTime

    string — An optional end time for sending auto-replies (epoch milliseconds). When this is specified, Zmail will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • endTimeISO

    string — An optional end time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

  • responseBodyHtml

    string — Response body in HTML format. Server will sanitize the HTML before storing it. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseBodyPlainText

    string — Response body in plain text format. If both responseBodyPlainText and responseBodyHtml are specified, responseBodyHtml will be used.

  • responseSubject

    string — Optional text to prepend to the subject line in vacation responses. In order to enable auto-replies, either the response subject or the response body must exist.

  • restrictToContacts

    boolean — Flag that determines whether responses are sent to recipients who are not in the user's list of contacts.

  • restrictToDomain

    boolean — Flag that determines whether responses are sent to recipients who are outside of the user's domain.

  • startTime

    string — An optional start time for sending auto-replies (epoch milliseconds). When this is specified, Zmail will automatically reply only to messages that it receives after the start time. If both startTime and endTime are specified, startTime must precede endTime.

  • startTimeISO

    string — An optional start time for sending auto-replies (ISO-8601 GMT timezone). When this is specified, server will automatically reply only to messages that it receives before the end time. If both startTime and endTime are specified, startTime must precede endTime.

Example:

{
  "enableAutoReply": false,
  "responseSubject": "Example Response Subject",
  "responseBodyPlainText": "Example Response Body Plain Text",
  "responseBodyHtml": "Example Response Body Html",
  "enableAlwaysRespond": false,
  "restrictToContacts": false,
  "restrictToDomain": true,
  "startTime": "1704268800000",
  "startTimeISO": "2024-01-03T08:00:00.000Z",
  "endTime": "1705046399000",
  "endTimeISO": "2024-01-12T07:59:59.000Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Argument. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

List delegates on the mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/settings/delegates
  • Tags: Settings.Delegates

Lists the delegates on the mailbox. Managing delegate operations must be done by the mailbox owner. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_setting_delegates,email:read:list_setting_delegates:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The response body contains a list of delegates this mailbox has.
Content-Type: application/json
  • delegates

    array — A list of delegate objects.

    Items:

    • accessTime

      string, format: HTMLSafety — Time when the delegate was last accessed in epoch milliseconds..

    • creationTime

      string, format: HTMLSafety — Time when the delegate was created in epoch milliseconds.

    • delegateAccess

      string, possible values: "dlgreviewer", "dlgauthor", "dlgeditor" — Indicates the access right for the delegate.

    • delegateEmail

      string — User email to be created as delegate.

    • verificationStatus

      string, possible values: "accepted", "expired", "pending", "rejected", "verificationStatusUnspecified" — Indicates whether this address has been verified and can act as a delegate for the account.

Example:

{
  "delegates": [
    {
      "delegateEmail": "john.doe@example.com",
      "verificationStatus": "accepted",
      "delegateAccess": "dlgreviewer",
      "accessTime": "1705098965973",
      "creationTime": "1705098965973"
    }
  ]
}
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Grant a new delegate access on the mailbox

  • Method: POST
  • Path: /emails/mailboxes/{email}/settings/delegates
  • Tags: Settings.Delegates

Creates a delegate on the mailbox. Managing delegate operations must be done by the mailbox owner. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:setting_delegate,email:write:setting_delegate:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • delegateEmail (required)

    string — Delegate's email address to be granted access to the mailbox.

  • delegateAccess

    string, possible values: "dlgreviewer", "dlgauthor", "dlgeditor" — Indicates the access level for the delegate. Default to dlgeditor.

Example:

{
  "delegateEmail": "john.doe@example.com",
  "delegateAccess": "dlgreviewer"
}

Responses

Status: 200 The response body contains a newly created instance of delegate object.
Content-Type: application/json
  • accessTime

    string, format: HTMLSafety — Latest timestamp of the delegate accessed in epoch milliseconds.

  • creationTime

    string, format: HTMLSafety — Time when the delegate was granted in epoch milliseconds.

  • delegateAccess

    string, possible values: "dlgreviewer", "dlgauthor", "dlgeditor" — Indicates the access level for the delegate.

  • delegateEmail

    string — Delegate's email to be granted.

  • verificationStatus

    string, possible values: "accepted", "expired", "pending", "rejected", "verificationStatusUnspecified" — Indicates whether this address has been verified and can act as a delegate for the mailbox.

Example:

{
  "delegateEmail": "john.doe@example.com",
  "verificationStatus": "accepted",
  "delegateAccess": "dlgreviewer",
  "accessTime": "1705098965973",
  "creationTime": "1705098965973"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified delegate on the mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/settings/delegates/{delegateEmail}
  • Tags: Settings.Delegates

Retrieves the specified delegate. Managing delegate operations must be done by the mailbox owner. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:setting_delegate,email:read:setting_delegate:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of delegate.
Content-Type: application/json
  • accessTime

    string, format: HTMLSafety — Time when the delegate was last accessed in epoch milliseconds.

  • creationTime

    string, format: HTMLSafety — Time when the delegate was created in epoch milliseconds.

  • delegateAccess

    string, possible values: "dlgreviewer", "dlgauthor", "dlgeditor" — Indicates the access right for the delegate.

  • delegateEmail

    string — User email to be created as delegate.

  • verificationStatus

    string, possible values: "accepted", "expired", "pending", "rejected", "verificationStatusUnspecified" — Indicates whether this address has been verified and can act as a delegate for the mailbox.

Example:

{
  "delegateEmail": "john.doe@example.com",
  "verificationStatus": "accepted",
  "delegateAccess": "dlgreviewer",
  "accessTime": "1705098965973",
  "creationTime": "1705098965973"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Revoke an existing delegate access from the mailbox

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/settings/delegates/{delegateEmail}
  • Tags: Settings.Delegates

Removes the specified delegate. Managing delegate operations must be done by the mailbox owner. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:setting_delegate,email:delete:setting_delegate:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 The delegate access has been removed.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

List email filters

  • Method: GET
  • Path: /emails/mailboxes/{email}/settings/filters
  • Tags: Settings.Filters

Lists the message filters of a mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_setting_filters,email:read:list_setting_filters:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 The response body contains a list of filters.
Content-Type: application/json
  • filter

    array — A list of filters.

    Items:

    • action

      object — Action that the filter performs.

      • addLabelIds

        array — List of label IDs to add to the message.

        Items:

        string — A label ID to add to the message.

      • forward

        string — Email address that the message should be forwarded to.

      • removeLabelIds

        array — List of label IDs to remove from the message.

        Items:

        string — A label ID to remove from the message.

    • criteria

      object — Matching criteria for the filter.

      • from

        string — The sender's display name or email address.

      • hasAttachment

        boolean — Whether the message has any attachment.

      • negatedQuery

        string — Only return messages not matching the specified query.

      • query

        string — Only return messages matching the specified query.

      • size

        integer — The size of the entire RFC822 message in bytes, including all headers and attachments.

      • sizeComparison

        string, possible values: "unspecifield", "smaller", "larger" — How the message size in bytes should be in relation to the size field.

      • subject

        string — Case-insensitive phrase found in the message's subject.

      • to

        string — The recipient's display name or email address. Includes recipients in the "to", "cc", and "bcc" header fields. You can use simply the local part of the email address. For example, "example" and "example@" both match "example@zmail.com". This field is case-insensitive.

    • id

      string — The server generated ID of the filter.

Example:

{
  "filter": [
    {
      "id": "e855dd4a292b18b1",
      "criteria": {
        "from": "john.doe@example.com",
        "to": "jane.doe@example.com",
        "subject": "email subject.",
        "query": "from:user@example.com is:unread",
        "negatedQuery": "is:unread",
        "hasAttachment": true,
        "size": 1024,
        "sizeComparison": "smaller"
      },
      "action": {
        "addLabelIds": [
          "TRASH"
        ],
        "removeLabelIds": [
          "SPAM"
        ],
        "forward": "john.doe@example.com"
      }
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Create an email filter

  • Method: POST
  • Path: /emails/mailboxes/{email}/settings/filters
  • Tags: Settings.Filters

Creates a message filter. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:setting_filter,email:write:setting_filter:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • action (required)

    object — A set of actions to perform on a message.

    • addLabelIds

      array — List of label IDs to add to the message.

      Items:

      string — A label ID to add to the message.

    • forward

      string — Email address that the message should be forwarded to.

    • removeLabelIds

      array — List of label IDs to remove from the message.

      Items:

      string — A label ID to remove from the message.

  • criteria (required)

    object — Matching criteria of the filter.

    • from

      string — The sender's display name or email address.

    • hasAttachment

      boolean — Whether the message has any attachment.

    • negatedQuery

      string — Only return messages not matching the specified query. It should be a general html safe string, for example, prohibit special characters such as '<', '>', single quote or double quote etc.

    • query

      string — Only return messages matching the specified query. It should be a general html safe string, for example, prohibit special characters such as '<', '>', single quote or double quote etc.

    • size

      integer — The size of the entire RFC822 message in bytes, including all headers and attachments.

    • sizeComparison

      string, possible values: "unspecifield", "smaller", "larger" — How the message size in bytes should be in relation to the size field.

    • subject

      string — Case-insensitive phrase found in the message's subject. It should be a general html safe string, for example, prohibit special characters such as '<', '>', single quote or double quote etc.

    • to

      string — The recipient's display name or email address. Includes recipients in the "to", "cc", and "bcc" header fields. You can use simply the local part of the email address. For example, "example" and "example@" both match "example@zmail.com". This field is case-insensitive.

Example:

{
  "criteria": {
    "from": "john.doe@example.com",
    "to": "jane.doe@example.com",
    "subject": "email subject.",
    "query": "from:user@example.com is:unread",
    "negatedQuery": "is:unread",
    "hasAttachment": true,
    "size": 1024,
    "sizeComparison": "smaller"
  },
  "action": {
    "addLabelIds": [
      "TRASH"
    ],
    "removeLabelIds": [
      "SPAM"
    ],
    "forward": "john.doe@example.com"
  }
}

Responses

Status: 200 The response body contains the newly created instance of filter.
Content-Type: application/json
  • action

    object — Action that the filter performs.

    • addLabelIds

      array — List of label IDs to add to the message.

      Items:

      string — A label ID to add to the message.

    • forward

      string — Email address that the message should be forwarded to.

    • removeLabelIds

      array — List of label IDs to remove from the message.

      Items:

      string — A label ID to remove from the message.

  • criteria

    object — Matching criteria for the filter.

    • from

      string — The sender's display name or email address.

    • hasAttachment

      boolean — Whether the message has any attachment.

    • negatedQuery

      string — Only return messages not matching the specified query.

    • query

      string — Only return messages matching the specified query.

    • size

      integer — The size of the entire RFC822 message in bytes, including all headers and attachments.

    • sizeComparison

      string, possible values: "unspecifield", "smaller", "larger" — How the message size in bytes should be in relation to the size field.

    • subject

      string — Case-insensitive phrase found in the message's subject.

    • to

      string — The recipient's display name or email address. Includes recipients in the "to", "cc", and "bcc" header fields. You can use simply the local part of the email address. For example, "example" and "example@" both match "example@zmail.com". This field is case-insensitive.

  • id

    string — The server generated ID of the filter.

Example:

{
  "id": "e855dd4a292b18b1",
  "criteria": {
    "from": "john.doe@example.com",
    "to": "jane.doe@example.com",
    "subject": "email subject.",
    "query": "from:user@example.com is:unread",
    "negatedQuery": "is:unread",
    "hasAttachment": true,
    "size": 1024,
    "sizeComparison": "smaller"
  },
  "action": {
    "addLabelIds": [
      "TRASH"
    ],
    "removeLabelIds": [
      "SPAM"
    ],
    "forward": "john.doe@example.com"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified email filter

  • Method: GET
  • Path: /emails/mailboxes/{email}/settings/filters/{filterId}
  • Tags: Settings.Filters

Retrieves the specified filter. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:setting_filter,email:read:setting_filter:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 The response body contains an instance of filter object.
Content-Type: application/json
  • action

    object — Action that the filter performs.

    • addLabelIds

      array — List of label IDs to add to the message.

      Items:

      string — A label ID to add to the message.

    • forward

      string — Email address that the message should be forwarded to.

    • removeLabelIds

      array — List of label IDs to remove from the message.

      Items:

      string — A label ID to remove from the message.

  • criteria

    object — Matching criteria for the filter.

    • from

      string — The sender's display name or email address.

    • hasAttachment

      boolean — Whether the message has any attachment.

    • negatedQuery

      string — Only return messages not matching the specified query.

    • query

      string — Only return messages matching the specified query.

    • size

      integer — The size of the entire RFC822 message in bytes, including all headers and attachments.

    • sizeComparison

      string, possible values: "unspecifield", "smaller", "larger" — How the message size in bytes should be in relation to the size field.

    • subject

      string — Case-insensitive phrase found in the message's subject.

    • to

      string — The recipient's display name or email address. Includes recipients in the "to", "cc", and "bcc" header fields. You can use simply the local part of the email address. For example, "example" and "example@" both match "example@zmail.com". This field is case-insensitive.

  • id

    string — The server assigned ID of the filter.

Example:

{
  "id": "e855dd4a292b18b1",
  "criteria": {
    "from": "john.doe@example.com",
    "to": "jane.doe@example.com",
    "subject": "email subject.",
    "query": "from:user@example.com is:unread",
    "negatedQuery": "is:unread",
    "hasAttachment": true,
    "size": 1024,
    "sizeComparison": "smaller"
  },
  "action": {
    "addLabelIds": [
      "TRASH"
    ],
    "removeLabelIds": [
      "SPAM"
    ],
    "forward": "john.doe@example.com"
  }
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Delete the specified email filter

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/settings/filters/{filterId}
  • Tags: Settings.Filters

Immediately and permanently deletes the specified filter. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:setting_filter,email:delete:setting_filter:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 204 The specified email filter is deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

List email threads from the mailbox

  • Method: GET
  • Path: /emails/mailboxes/{email}/threads
  • Tags: Threads

Lists the threads in the mailbox. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:list_threads,email:read:list_threads:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 Response contains a list of thread objects.
Content-Type: application/json
  • nextPageToken

    string — Page token to retrieve the next page of results in the list.

  • resultSizeEstimate

    integer — Estimated number of results in the response.

  • threads

    array — The list of thread objects.

    Items:

    • historyId

      string — The ID of the last history event that modified this thread or thread messages.

    • id

      string — The ID of the thread retrieved.

    • snippet

      string — The snippet of the thread retrieved.

    • status

      string, possible values: "normal", "ignored" — Whether the thead should be ignored in display.

    • threadName

      string — The name of the thread retrieved.

Example:

{
  "threads": [
    {
      "id": "6ddf401500000000_e858101177b8152c_001",
      "snippet": "Based on previous discussion, we reached preliminary",
      "historyId": "1499070",
      "threadName": "The latest status of Project Prometheus",
      "status": "normal"
    }
  ],
  "nextPageToken": "e8562c0a6ba2b3cd",
  "resultSizeEstimate": 10
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Get the specified email thread

  • Method: GET
  • Path: /emails/mailboxes/{email}/threads/{threadId}
  • Tags: Threads

Retrieves the specified thread. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:read,mail:read:admin

Granular Scopes: email:read:thread,email:read:thread:admin

Rate Limit Label: LIGHT

Not supported in Gov cluster

Responses

Status: 200 If successful, the response body contains an instance of thread including its underlying message list.
Content-Type: application/json
  • historyId

    string — The ID of the last history event that modified the messages in the thread.

  • id

    string — The ID of the thread.

  • messages

    array — List of messages in the thread.

    Items:

    • expiration

      string — The timestamp (epoch milliseconds) at which the message is considered expired and can be removed from mailbox.

    • historyId

      string — The ID of the last history event that modified this message.

    • id

      string — The immutable ID of the message.

    • internalDate

      string — The internal message creation timestamp (epoch milliseconds), which determines message ordering in the folder. For normal SMTP-received email, this represents the time the message was originally accepted by Zoom Mail server.

    • labelIds

      array — List of label IDs of this message.

      Items:

      string — A label ID on the message.

    • lastMoved

      string — The timestamp (epoch milliseconds) for the last time the message had a label change.

    • payload

      object — An instance of MessagePart object.

      • body

        object — The message part body for this part, which may be empty for container MIME message parts.

        • attachmentId

          string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

        • data

          string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

        • size

          integer — Number of bytes for the message part data, encoding notwithstanding.

      • filename

        string — The filename of the attachment. Only present if this message part represents an attachment.

      • headers

        array — List of headers on this message part.

        Items:

        • name

          string — The name of the MIME email header.

        • value

          string — The value of the MIME email header.

      • mimeType

        string — The MIME type of the message part.

      • partId

        string — The immutable ID of the message part.

      • parts

        array — The child MIME message parts of this part.

        Items:

        • body

          object — The message part body for this part, which may be empty for container MIME message parts.

          • attachmentId

            string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

          • data

            string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

          • size

            integer — Number of bytes for the message part data, encoding notwithstanding.

        • filename

          string — The filename of the attachment. Only present if this message part represents an attachment.

        • headers

          array — List of headers on this message part.

          Items:

          • name

            string — The name of the MIME email header.

          • value

            string — The value of the MIME email header.

        • mimeType

          string — The MIME type of the message part.

        • partId

          string — The immutable ID of the message part.

        • parts

          array — The child MIME message parts of this part.

          Items:

          • body

            object — The message part body for this part, which may be empty for container MIME message parts.

            • attachmentId

              string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

            • data

              string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

            • size

              integer — Number of bytes for the message part data, encoding notwithstanding.

          • filename

            string — The filename of the attachment. Only present if this message part represents an attachment.

          • headers

            array — List of headers on this message part.

            Items:

            • name

              string — The name of the MIME email header.

            • value

              string — The value of the MIME email header.

          • mimeType

            string — The MIME type of the message part.

          • partId

            string — The immutable ID of the message part.

          • parts

            array — The child MIME message parts of this part.

            Items:

            • body

              object — The message part body for this part, which may be empty for container MIME message parts.

              • attachmentId

                string — When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request.

              • data

                string — The body data of a MIME message part as a base64url encoded string. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.

              • size

                integer — Number of bytes for the message part data, encoding notwithstanding.

            • filename

              string — The filename of the attachment. Only present if this message part represents an attachment.

            • headers

              array — List of headers on this message part.

              Items:

              • name

                string — The name of the MIME email header.

              • value

                string — The value of the MIME email header.

            • mimeType

              string — The MIME type of the message part.

            • partId

              string — The immutable ID of the message part.

    • sendTime

      string — The desired send time (epoch milliseconds) for a DRAFT or SCHEDULED message.

    • sizeEstimate

      integer — Size of the email in bytes.

    • snippet

      string — A preview part of the message text.

    • threadId

      string — The ID of the thread the message belongs to.

    • userScheduled

      boolean — A boolean value indicating if this scheduled message is by user or system.

  • status

    string, possible values: "normal", "ignored" — Whether the thead should be ignored in display.

  • threadName

    string — The name of the thread retrieved.

Example:

{
  "id": "7d4d447700000000_e85f09d67065eb70_121",
  "historyId": "5153",
  "threadName": "The latest status of Project Prometheus.",
  "status": "normal",
  "messages": [
    {
      "id": "7d4d447700000000_e85f09d67065eb70_121",
      "threadId": "7d4d447700000000_e85f09d67065eb70_121",
      "labelIds": [
        "INBOX"
      ],
      "historyId": "5153",
      "internalDate": "1702631317509",
      "expiration": "0",
      "lastMoved": "1702866810000",
      "payload": {
        "partId": "1.1",
        "mimeType": "text/html",
        "filename": "cats.jpg",
        "headers": [
          {
            "name": "To",
            "value": "john.doe@example.com"
          }
        ],
        "body": {
          "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
          "size": 5434,
          "data": "dGhpcyBsaW5lIHVzZXMgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCnRoaXMgbGluZSBkb2VzIG5vdCB1c2UgbWFpbCBtZXJnZSBAZmlyc3RuYW1lCg=="
        },
        "parts": [
          {
            "partId": "0",
            "mimeType": "multipart/alternative",
            "filename": "demo.xls",
            "headers": [
              {
                "name": "Content-Type",
                "value": "multipart/ALTERNATIVE"
              }
            ],
            "body": {
              "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_1",
              "data": "",
              "size": 0
            },
            "parts": [
              {
                "partId": "0.0",
                "mimeType": "text/plain",
                "filename": "demo1.xls",
                "headers": [
                  {
                    "name": "Content-Type",
                    "value": "text/PLAIN"
                  }
                ],
                "body": {
                  "attachmentId": "7d4d447700000000_e85f09d67065eb70_121_2",
                  "data": "W2ltYWdlOiBTY3JlZW5zaG90IDIwMjQtMDItMDQgYXQgMTAuMjIuMDjigK9QTS5wbmddCgpXaWxsIHRoaXMgZ2VuZXJhdGUgbXVsdGlwbGUgcGFydD8K",
                  "size": 87
                },
                "parts": [
                  {
                    "partId": "0.0.0",
                    "mimeType": "multipart/related",
                    "filename": "demo2.xls",
                    "headers": [
                      "[Max Depth Exceeded]"
                    ],
                    "body": {
                      "attachmentId": "[Max Depth Exceeded]",
                      "data": "[Max Depth Exceeded]",
                      "size": "[Max Depth Exceeded]"
                    }
                  }
                ]
              }
            ]
          }
        ]
      },
      "snippet": "auth 7237104a subscribe linux-kernel",
      "sendTime": "1704828847000",
      "userScheduled": false,
      "sizeEstimate": 2
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Delete an existing email thread

  • Method: DELETE
  • Path: /emails/mailboxes/{email}/threads/{threadId}
  • Tags: Threads

Immediately and permanently deletes the specified thread. Any messages that belong to the thread are also deleted. This operation cannot be undone. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:delete:thread,email:delete:thread:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 204 The email thread including its messages are deleted.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Update the specified thread

  • Method: POST
  • Path: /emails/mailboxes/{email}/threads/{threadId}/modify
  • Tags: Threads

Modifies the labels applied to the thread. This applies to all messages in the thread. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:thread,email:write:thread:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Request Body

Content-Type: application/json
  • addLabelIds

    array — A list of IDs of labels to add to the thread messages.

    Items:

    string — A label ID to add.

  • removeLabelIds

    array — A list of IDs of labels to remove from the thread messages.

    Items:

    string — A label ID to remove.

Example:

{
  "addLabelIds": [
    "Label_1"
  ],
  "removeLabelIds": [
    "Label_2"
  ]
}

Responses

Status: 200 If successful, the response body contains an instance of thread object.
Content-Type: application/json
  • id

    string — The ID of the thread.

  • messages

    array — List of the messages in the thread.

    Items:

    • id

      string — The ID of the message.

    • labelIds

      array — List of the label IDs the message currently have.

      Items:

      string — A label ID of the message.

    • threadId

      string — The ID of the thread.

Example:

{
  "id": "6ddf401500000000_e858101177b8152c_001",
  "messages": [
    {
      "id": "6ddf401500000000_e858101177b8152c_001",
      "threadId": "6ddf401500000000_e858101177b8152c_001",
      "labelIds": [
        "IMPORTANT"
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Move the specified thread to TRASH folder

  • Method: POST
  • Path: /emails/mailboxes/{email}/threads/{threadId}/trash
  • Tags: Threads

Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:trash_thread,email:write:trash_thread:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 If successful, the response body contains an instance of thread object.
Content-Type: application/json
  • id

    string — The ID of the trashed thread.

  • messages

    array

    Items:

    • id

      string — The ID of the message in the trashed thread.

    • labelIds

      array — The label IDs of the trashed thread message.

      Items:

      string — A label Id of the message.

    • threadId

      string — The ID of the trashed thread the message belongs to.

Example:

{
  "id": "6ddf401500000000_e858101177b8152c_001",
  "messages": [
    {
      "id": "6ddf401500000000_e858101177b8152c_002",
      "threadId": "6ddf401500000000_e858101177b8152c_001",
      "labelIds": [
        "TRASH"
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>

Move the specified thread out of TRASH folder

  • Method: POST
  • Path: /emails/mailboxes/{email}/threads/{threadId}/untrash
  • Tags: Threads

Move the specified thread out of the trash folder. Any messages that belong to the thread are also removed from the trash. Prerequisites:

  • Account must have Workplace Business or higher license type.
  • Account must have enabled Zoom Mail Service and finished Mail Service Onboarding Flow.
  • Mail service End-To-End Encryption is disabled.
  • Requested mailbox must have been provisioned.

Scopes: mail:write,mail:write:admin

Granular Scopes: email:write:untrash_thread,email:write:untrash_thread:admin

Rate Limit Label: MEDIUM

Not supported in Gov cluster

Responses

Status: 200 If successful, the response body contains an instance of thread object.
Content-Type: application/json
  • id

    string — The ID of the untrashed thread.

  • messages

    array

    Items:

    • id

      string — The ID of the message in the untrashed thread.

    • labelIds

      array — The IDs of labels of the untrashed thread message.

      Items:

      string — A label ID of the message.

    • threadId

      string — The ID of the untrashed thread the message belongs to.

Example:

{
  "id": "6ddf401500000000_e858101177b8152c_001",
  "messages": [
    {
      "id": "6ddf401500000000_e858101177b8152c_002",
      "threadId": "6ddf401500000000_e858101177b8152c_001",
      "labelIds": [
        "INBOX"
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `400` <br> Invalid Request. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized **Error Code:** `401` <br> Authorization Failure. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `404` <br> 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/).
Status: 503 **HTTP Status Code:** `503` <br> Service Unavailable **Error Code:** `503` <br> Service Unavailable Or Failure. <br>