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.

Note: These APIs need a pre-launch version of our new Zoom Room build – if you would like to try it, please send an e-mail to “developersupport@zoom.us” and we will provide you the link to download

Authentication

Please refer to the Zoom API documentation about Authentication. The Zoom Rooms API uses the same authentication as in Zoom REST APIs.

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 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 via 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

Join a meeting from Zoom Rooms Client if the meeting number is available, start an instant meeting if 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

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 Meeting password. Password may only contain the following characters: [a-z A-Z 0-9 @ – _ *]. Max of 10 characters.
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 via 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 via 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 timezone list JSON file. 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 via 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 JSON file. 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"
}