Archived JSON schemas

View as Markdown

Zoom returns the following JSON schemas when downloading chat messages and subgroup activity with the Get a meeting's archived files API.

In-meeting chat message

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Archiving Chat",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "format": "uuid",
      "description": "The meeting or webinar's universally unique ID (UUID). Each meeting or webinar instance generates its own UUID."
    },
    "messages": {
      "type": "array",
      "description": "A list of archived chat messages.",
      "items": {
        "type": "object",
        "properties": {
          "msg_type": {
            "type": "integer",
            "enum": [1, 2, 3, 4, 5, 6, 7],
            "description": "Message type. 1: public chat, 2: private chat, 3: deleted chat, 4: emoji reaction, 5: nonverbal feedback, 6: edited chat, 7: reply chat."
          },
          "e_time": {
            "type": "string",
            "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
            "description": "Elapsed time after the meeting or webinar started (HH:MM:SS).",
            "examples": ["00:05:30", "01:23:45"]
          },
          "s_id": {
            "type": "string",
            "description": "The sender's ID. If the user did not choose to display email and node_id, the value is empty."
          },
          "s_name": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "The sender's name for this message, base64-encoded."
          },
          "s_email": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "The sender's email for this message, base64-encoded. Empty if hidden."
          },
          "e_archive_time": {
            "type": "string",
            "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
            "description": "Elapsed time since archiving started (HH:MM:SS).",
            "examples": ["00:05:30", "01:23:45"]
          },
          "msg_id": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "The text message's unique ID or the unique ID of the deleted/edited message, base64-encoded."
          },
          "msg_extended_type": {
            "type": "string",
            "pattern": "^(\\d{2}){6}$",
            "description": "The format XX XX XX XX XX XX of this message type from the left to right has 2-digit decimal pair numbers which indicates the type of the message. The information for each pair is listed here: 1st XX pair (Sender Location): 01-Meeting, 02-Webinar, 03-Breakout Room, 04-Waiting Room, 05-Backstage; 2nd XX pair (Receiver Location): 01-Meeting, 02-Webinar, 03-Breakout Room, 04-Waiting Room, 05-Backstage; 3rd XX pair (Message Type): 01-Sent, 02-Deleted, 03-Edited; 4th XX pair: 00-Null; 5th XX pair (Receiver): 01- Everyone in meeting, 02-(Webinar)Hosts and Panelists, 03-(Webinar)Attendee CC to Panelists and Hosts, 04-Direct message to User, 05-Waiting Room Participants, 06 - To all hosts (from Waiting Room), 07 - Private group chat; 6th XX pair: 00-Null."
          },
          "r_id": {
            "type": "string",
            "description": "Receiver's ID. Required when msg_type=2 (private chat)."
          },
          "r_name": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "Receiver's name, base64-encoded. Required when msg_type=2."
          },
          "r_email": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "Receiver's email, base64-encoded. Required when msg_type=2. Empty if hidden."
          },
          "msg_content": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "Message content, format depends on msg_type. base64-encoded."
          },
          "original_msg_id": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "The ID of the original message that was deleted or edited. base64-encoded."
          },
          "parent_msg_id": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "The ID of the parent message being replied to. base64-encoded."
          },
          "private_group_id": {
            "type": "string",
            "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}(?:==)?|[A-Za-z0-9+/]{3}=?)?$",
            "description": "ID of the private chat group. Used when msg_extended_type indicates private group (07). base64-encoded."
          },
          "files": {
            "type": "array",
            "description": "List of files shared in this chat message.",
            "items": {
              "type": "object",
              "properties": {
                "fileId": { "type": "string" },
                "fileName": { "type": "string" },
                "fileSize": { "type": "integer" }
              },
              "required": ["fileId", "fileName", "fileSize"]
            }
          },
          "rich_text": {
            "type": "array",
            "description": "Rich text formatting applied to parts of the message.",
            "items": {
              "type": "object",
              "properties": {
                "start_position": { "type": "integer" },
                "end_position": { "type": "integer" },
                "format_type": {
                  "type": "string",
                  "enum": [
                    "Bold", "Italic", "Strikethrough", "BulletedList", "NumberedList",
                    "Underline", "FontSize", "FontColor", "BackgroundColor", "LeftIndent",
                    "Paragraph", "Quote", "AddLink"
                  ]
                },
                "format_attr": { "type": "string" }
              },
              "required": ["start_position", "end_position", "format_type"]
            }
          }
        },
        "required": [
          "msg_type", "e_time", "e_archive_time", "s_id", "s_name", "s_email"
        ],
        "allOf": [
          {
            "if": { "properties": { "msg_type": { "enum": [1, 2, 3, 6, 7] } } },
            "then": { "required": ["msg_id", "msg_extended_type"] }
          },
          {
            "if": { "properties": { "msg_type": { "const": 2 } } },
            "then": { "required": ["r_id", "r_name", "r_email"] }
          },
          {
            "if": { "properties": { "msg_type": { "enum": [1, 2, 4, 6, 7] } } },
            "then": {
              "properties": {
                "msg_content": {
                  "type": "string",
                  "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
                  "description": "The content of this text message in the meeting or webinar or the command of the emoji reaction in the meeting or webinar. base64 encoded."
                }
              },
              "required": ["msg_content"]
            }
          },
          {
            "if": { "properties": { "msg_type": { "const": 5 } } },
            "then": {
              "properties": {
                "msg_content": {
                  "type": "string",
                  "pattern": "^[0-9]+$",
                  "description": "The command of the nonverbal feedback in the meeting or webinar. For example: 1-raising hand, 2-yes, 3-no."
                }
              },
              "required": ["msg_content"]
            }
          },
          {
            "if": { "properties": { "msg_type": { "enum": [3, 6] } } },
            "then": { "required": ["original_msg_id"] }
          },
          {
            "if": { "properties": { "msg_type": { "const": 7 } } },
            "then": { "required": ["parent_msg_id"] }
          }
        ]
      }
    }
  },
  "required": ["uuid", "messages"]
}

Subgroup archiving activity

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Subgroup Archiving Activity",
  "type": "object",
  "properties": {
    "archiving_start_time": {
      "type": "string",
      "format": "date-time",
      "description": "The archiving starting timestamp in GMT format.",
      "examples": ["2021-04-26T05:23:18Z"]
    },
    "backstage_room": {
      "$ref": "#/$defs/BackstageRoom"
    },
    "private_group": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/PrivateGroup"
      }
    }
  },
  "required": ["archiving_start_time"],

  "$defs": {
    "BackstageRoom": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the Webinar backstage room."
        },
        "createTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the backstage room was created (HH:MM:SS).",
          "examples": ["00:00:30"]
        },
        "deleteTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the backstage room was deleted (HH:MM:SS).",
          "examples": ["00:10:30"]
        },
        "actions": {
          "type": "array",
          "items": { "$ref": "#/$defs/Participant" }
        }
      },
      "required": ["id", "createTime", "deleteTime", "actions"]
    },

    "PrivateGroup": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the private chat group."
        },
        "createTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the private chat group was created (HH:MM:SS).",
          "examples": ["00:00:30"]
        },
        "deleteTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the private chat group was deleted (HH:MM:SS).",
          "examples": ["00:20:30"]
        },
        "actions": {
          "type": "array",
          "items": { "$ref": "#/$defs/Participant" }
        }
      },
      "required": ["id", "createTime", "deleteTime", "actions"]
    },

    "Participant": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "description": "The email of the participant."
        },
        "joinTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the participant joined (HH:MM:SS).",
          "examples": ["00:00:30"]
        },
        "leaveTime": {
          "type": "string",
          "pattern": "^(\\d{2}:\\d{2}:\\d{2})$",
          "description": "Elapsed time from archiving start when the participant left (HH:MM:SS).",
          "examples": ["00:00:35"]
        }
      },
      "required": ["joinTime", "leaveTime"]
    }
  }
}