Scheduling meetings via API with LTI Pro

LTI Pro supports querying historical or upcoming meetings by the userID via API. The meetings generated in the response will be meetings that are scheduled within an LMS course. If a meeting has not been imported into a course utilizing LTI Pro or scheduled using the LTI Pro app, the meeting will not be queried.

Note: The base URL for the requests is

Prerequisites for scheduling meetings via API with LTI Pro

How to initiate an LTI Pro schedule meeting API call

Example API request and response

Header ParametersX-Lti-Signature: A digital signature can be valid for 60 minutes (see below for more details).


Normal response 

"status": true,
"result": {
"pageNum": 1,
"pageSize": 12,
"total": 1,
"list": [{
"meetingId": "UxDWPuPdT1OBudHV56kYJQ==",
"meetingNumber": "86756778157",
"hostId": "_vIWeZ76TtuFceCKHkVk4Q",
"topic": "Alpha DevA Course1",
"startTime": "2022-08-04 10:00:00",
"duration": 60,
"timezone": "Asia/Shanghai",
"pmi": null,
"type": 3,
"status": 0

Abnormal response 

"status": false,
"errorCode": "401",
"errorMessage": "Verify LTI signature failed(2203)."

Retriveing the userID from LTI Pro

  1. Log into your LMS.
  2. Launch the LTI Pro Developer Tool.
    Note: this will need to be launched with a user who is a Zoom user. 
  3. Click on the Network tab.
  4. In the search bar for developer tools, search for and click on user/settings/all.
  5. There should only be one API listed under the Name column. Next to the API, click Preview
  6. Copy and save the UserID value.

Creating the Request Header

The following is the format for the Request Header:

--header 'X-Lti-Signature: HJbQ5AB1Hydbl2m_pdON4il1j3w'

In this example:

  1. The signature base string is created using the following query parameters - "isUpComing=true&key=qAnfmSQeSeKWHOE19lwMYg&pageNum=1&pageSize=20&timestamp=1661494048201&userId=_vIWeZ76TtuFceCKHkVk4Q"
  2. The LTI secret can be found within your LTI Pro configuration by clicking Edit next to the desired LTI Credentials.
    Note: It is very important to keep these values private.
  3. The signature is calculated by passing the base string and secret to the HMAC-SHA1 hashing algorithm. The calculated signature is then converted to encodeBase64URLSafeString.
  4. Utilize the signature value obtained from step 3 in the X-Lti-Signatureheader.

Note: The signature will be valid for 60 minutes.

Request and response parameters 

Request parameters

isUpComingBooleanIf the value is true, it will return the upcoming meeting list which is ordered by time. If the value is false, it will return the historical meeting list and it will be ordered by time (descending order).
keyStringIdentifier of the LTI application that is making the request. LTI Key value can be found in LTI config page.
pageNumStringpageNum > 0
pageSizeStringpageSize between 1 and 1000
timestampStringCurrent timestamp when the request is created. The value is in milliseconds.
userIdStringZoom user unique ID

Response parameters

statusBooleanTrue indicates that the request is normal; false indicates that the request is abnormal.
resultObjectRequest result object.
+pageNumIntegerCurrent page number.
+pageSizeIntegerCurrent page size.
+totalIntegerTotal meeting count.
+listObject arrayResult list by object array.
++meetingIdStringMeeting ID.
++meetingNumberStringZoom meeting number.
++hostIdStringUser ID of the host.
++topicStringMeeting topic.
++startTimeStringMeeting start time.
++durationIntegerThe meeting duration in minutes.
++timeZoneStringTime zone for the meeting start time. 
++pmiStringIf the value is not null, it represents the meeting number of PMI, which is equal to the meetingNumber field at this time

Meeting type:

  • 0 - pre-schedule
  • 1 - instant
  • 2 - schedule
  • 3 - Recurring Meeting with no fixed time
  • 8 - Recurring Meeting with fixed time

Meeting status:

  • 0 - not started
  • 1 - started
  • 2 - finished