Archived JSON schemas
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"]
}
}
}