We are excited to announce the APIs to control Zoom Rooms. These first set of APIs allow your app to get the list of rooms on your account, select a room and initiate start/join meetings, schedule a meeting, invite a contact, leave/cancel/end meetings.
Authentication
Use JWT for authentication to access this API.
Restart
Restart Zoom Room client.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/zrclient
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
roomId | string | Y | zoom room id |
Request Body Example:
{
"jsonrpc": "2.0",
"method": "restart"
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | restart | Restart Zoom Rooms Client. |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
List
Retrieve the Zoom Rooms ID and name.
Endpoint:
POST https://api.zoom.us/v2/rooms/zrlist
Request Body Example:
{
"jsonrpc": "2.0",
"method": "list",
"params": {
"zr_name": "My Zoom Room"
}
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | list | List of Zoom Rooms id and name. |
params.zr_name | string | N | Retrive all zoom rooms, if it is blank, retrive zoom rooms. Max of 100. | |
params.page | int | N | Smiliar to pagination, retrive zoom rooms belongs to this page if there are too many zoom rooms under an account. The value should be greater than or equal to 1 and less than or equal to 10. | |
params.page_size | int | N | Smiliar to pagination, retrive how many zoom rooms per page. the value should be greater than or equal to 1 and less than or equal to 100. |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"send_at": "2017-09-26T05:50:29Z",
"data": [
{
"zr_name": "My Zoom Room1",
"zr_id": "63UtYMhSQZaBRPCNRXrD8A"
},
{
"zr_name": "My Zoom Room2",
"zr_id": "295bUg9STYaK-7NKz6KB1g"
}
]
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
Leave
Leave a meeting in progress using the Zoom Rooms Client.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
Path parameters | ||||
roomId | string | Y | zoom room id |
Request Body Example:
{
"jsonrpc": "2.0",
"method": "leave"
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | leave | leave a meeting in progress from Zoom Rooms |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
Join a Meeting
Join a meeting from the Zoom Rooms Client if the meeting number is available. Start an instant meeting if the meeting number is empty.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
Path parameters | ||||
roomId | string | Y | zoom room id |
By default, a meeting password may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.
However, if the account owner or the admin has configured minimum password requirement settings, the password value provided here must meet those requirements.
If the requirements are enabled, you can view those requirements by calling either the Get User Settings API or the Get Account Settings API.
Request Body Example:
{
"jsonrpc": "2.0",
"method": "join",
"params": {
"meeting_number": 2011092323,
"password": "Aa123",
"force_accept": false,
"callback_url": "https://api.test.zoom.us/callback?token=123"
}
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | join | Join a meeting from Zoom Rooms |
params.meeting_number | long | N | Start an instant meeting if meeting number is empty, otherwise join specified meeting. | |
params.password | string | N | Password to join the meeting. By default, password may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters. Note: If the account owner or the admin has configured minimum password requirement settings, the password value provided here must meet those requirements. If the requirements are enabled, you can view those requirements by calling either the Get User Settings API or the Get Account Settings API. |
|
params.force_accept | boolean | N | false | The default value is false and current user is in a meeting, the client will ignore the request. Join the meeting immediately if current user is not in any meeting. The value is true means the user will be forced to leave current meeting and join the meeting immediately |
params.callback_url | string | N | Create a post request with json payload once Zoom Rooms client sends request with corresponding response. For an example: CallbackUrl looks like this "https://api.test.zoom.us/callback?token=test123", Context-Type is "application/json" payload is {"request_id": 123, "meeting_number":"1234567890″ |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
Invite
Invite a contact using the Zoom Rooms Client.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
Path parameters | ||||
roomId | string | Y | zoom room id |
Request Body Example:
{
"jsonrpc": "2.0",
"method": "invite",
"params": {
"callee": "kYAJ5yMfTCe0npL2_w3agw"
}
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | meetingCall | Inviting a user via Zoom Rooms Client, get a prompt whether to accept the invitation if the user is in a meeting, otherwise get invitation email |
params.callee | string | Y | Callee's user id or list of callees' user ids, the maximum size of the callee list is 10 items. for example "callee": ["kYAJ5yMfTCe0npL2_w3agw","jAXKRO6yRZWkdkZxbUuI_Q"] |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
Schedule
Schedule a meeting using the Zoom Rooms Client.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
Path parameters | ||||
roomId | string | Y | zoom room id |
Request Body Example:
{
"jsonrpc": "2.0",
"method": "schedule",
"params": {
"password": "Aa123",
"callback_url": "https://api.test.zoom.us/callback?token=123",
"meeting_info": {
"topic": "my meeting",
"start_time": "2017-11-25T12:00:00",
"timezone": "America/Los_Angeles",
"duration": "10",
"settings": {
"join_before_host": false
}
}
}
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | meetingSchedule | schedule a meeting |
params.meeting_info.topic | string | Y | Meeting topic. Max of 200 characters. | |
params.password | string | N | Meeting password. Password may only contain the following characters: [a-z A-Z 0-9 @ – _ *]. Max of 10 characters. | |
params.callback_url | string | N | Create a post request with json payload once Zoom Rooms client sends request with corresponding response. For an example: CallbackUrl looks like this "https://api.test.zoom.us/callback?token=test123", Context-Type is "application/json" payload is {"request_id": 123, "meeting_number":"1234567890″ | |
params.meeting_info.start_time | string | Y | Meeting start time in ISO date and time format. A time zone offset is required unless a time zone is explicitly specified in timezone. such as "2017-11-25T12:00:00Z" or "2017-11-25T12:00:00″ and timezone="America/Los_Angeles" | |
params.meeting_info.timezone | string | N | Timezone to format start_time, like "America/Los_Angeles". For this parameter value please refer to the id value in our timezone list. it is optional if the "stat_time" has a time zone offset | |
params.meeting_info.duration | int | Y | Meeting duration (minutes). Used for scheduled meeting only. | |
params.meeting_info.settings.join_before_host | boolean | N | false | Join meeting before host start the meeting. Only used for scheduled or recurring meetings. |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
Cancel
Cancel a meeting using the Zoom Rooms Client.
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Request Body Example:
{
"jsonrpc": "2.0",
"method": "cancel",
"params": {
"meeting_info": {
"topic": "my meeting",
"start_time": "2017-11-25T12:00:00Z",
"duration": "10"
}
}
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | meetingCancel | cancel a meeting |
params.meeting_number | long | N | Cancel specified meeting | |
params.meeting_info.topic | string | Y | Meeting topic. Max of 200 characters. | |
params.meeting_info.start_time | string | Y | Meeting start time in ISO date and time format. A time zone offset is required unless a time zone is explicitly specified in timezone. such as "2017-11-25T12:00:00Z" or "2017-11-25T12:00:00″ and timezone="America/Los_Angeles" | |
params.meeting_info.timezone | string | N | Timezone to format start_time, like "America/Los_Angeles". For this parameter value please refer to the id value in timezone list. it is optional if the "stat_time" has a time zone offset | |
params.meeting_info.duration | int | Y | Meeting duration (minutes). |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}
End
End current meeting hosted by Zoom Rooms Client
Endpoint:
POST https://api.zoom.us/v2/rooms/{roomId}/meetings
Parameters:
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
Path parameters | ||||
roomId | string | Y | zoom room id |
Request Body Example:
{
"jsonrpc": "2.0",
"method": "end"
}
Parameters | Type | Must Have? | Default | Description |
---|---|---|---|---|
jsonrpc | string | N | 2.0 | A String specifying the version of the JSON-RPC protocol. |
method | string | Y | end | end a meeting |
Response XML:
<?xml version="1.0" encoding="UTF-8"?>
Response JSON:
{
"jsonrpc": "2.0",
"result": {
"room_id": "63UtYMhSQZaBRPCNRXrD8A",
"send_at": "2017-09-15T01:26:05Z"
},
"id": "49cf01a4-517e-4a49-b4d6-07237c38b749"
}