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"]
        }
    }
}