Visioconference · Schema
Video Conference Meeting
Common schema for a video conference meeting or session across video conferencing platforms
AudioChatCollaborationCommunicationConferencingLive StreamingReal-TimeRemote WorkScreen SharingVideoWebRTC
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique meeting identifier on the platform |
| topic | string | Meeting title or topic |
| status | string | Current status of the meeting |
| hostId | string | User ID of the meeting host |
| hostEmail | string | Email address of the meeting host |
| joinUrl | string | URL for participants to join the meeting |
| password | string | Meeting password or passcode |
| startTime | string | Scheduled or actual start time in UTC |
| endTime | string | Scheduled or actual end time in UTC |
| duration | integer | Meeting duration in minutes |
| timezone | string | IANA timezone for the meeting (e.g., America/New_York) |
| agenda | string | Meeting agenda or description |
| settings | object | Meeting configuration settings |
| participants | array | List of invited or joined participants |
| recording | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/visioconference/main/json-schema/visioconference-meeting-schema.json",
"title": "Video Conference Meeting",
"description": "Common schema for a video conference meeting or session across video conferencing platforms",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique meeting identifier on the platform"
},
"topic": {
"type": "string",
"description": "Meeting title or topic"
},
"status": {
"type": "string",
"description": "Current status of the meeting",
"enum": [
"waiting",
"started",
"ended",
"cancelled"
]
},
"hostId": {
"type": "string",
"description": "User ID of the meeting host"
},
"hostEmail": {
"type": "string",
"format": "email",
"description": "Email address of the meeting host"
},
"joinUrl": {
"type": "string",
"format": "uri",
"description": "URL for participants to join the meeting"
},
"password": {
"type": "string",
"description": "Meeting password or passcode"
},
"startTime": {
"type": "string",
"format": "date-time",
"description": "Scheduled or actual start time in UTC"
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "Scheduled or actual end time in UTC"
},
"duration": {
"type": "integer",
"description": "Meeting duration in minutes"
},
"timezone": {
"type": "string",
"description": "IANA timezone for the meeting (e.g., America/New_York)"
},
"agenda": {
"type": "string",
"description": "Meeting agenda or description"
},
"settings": {
"type": "object",
"description": "Meeting configuration settings",
"properties": {
"video": {
"type": "object",
"properties": {
"hostVideoOn": {
"type": "boolean",
"description": "Whether host video is on by default"
},
"participantVideoOn": {
"type": "boolean",
"description": "Whether participant video is on by default"
}
}
},
"audio": {
"type": "object",
"properties": {
"muteOnEntry": {
"type": "boolean",
"description": "Mute participants when they enter"
}
}
},
"recording": {
"type": "object",
"properties": {
"autoRecord": {
"type": "boolean",
"description": "Automatically record the meeting"
},
"recordingType": {
"type": "string",
"enum": ["local", "cloud", "none"]
}
}
},
"waitingRoom": {
"type": "boolean",
"description": "Enable waiting room for participants"
},
"maxParticipants": {
"type": "integer",
"description": "Maximum number of participants"
}
}
},
"participants": {
"type": "array",
"description": "List of invited or joined participants",
"items": {
"$ref": "#/$defs/participant"
}
},
"recording": {
"$ref": "#/$defs/recording"
}
},
"required": ["id", "topic", "joinUrl"],
"$defs": {
"participant": {
"type": "object",
"description": "A participant in a video conference meeting",
"properties": {
"id": {
"type": "string",
"description": "Participant identifier"
},
"name": {
"type": "string",
"description": "Display name"
},
"email": {
"type": "string",
"format": "email"
},
"role": {
"type": "string",
"enum": ["host", "co-host", "participant", "panelist", "attendee"]
},
"joinTime": {
"type": "string",
"format": "date-time"
},
"leaveTime": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string",
"enum": ["waiting", "in_meeting", "left"]
}
},
"required": ["id", "name"]
},
"recording": {
"type": "object",
"description": "Meeting recording information",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["processing", "completed", "failed", "deleted"]
},
"downloadUrl": {
"type": "string",
"format": "uri"
},
"duration": {
"type": "integer",
"description": "Recording duration in minutes"
},
"fileSize": {
"type": "integer",
"description": "File size in bytes"
}
}
}
}
}