Bulk importing meetings via LTI Pro API

Last Updated:

LTI Pro supports bulk import meetings via API. Course meetings can be created programmatically via Zoom’s REST API and then imported into LTI Pro courses. These imported meetings can be disassociated(removed) from the LTI Pro courses via API if needed.

Note:

  • There is a limit of 400 meetings that can be imported in a single API call.
  • In order to view the calendar event within the LMS, the admin user used to dissociate the meetings, need to log in to the LMS, and launch LTI pro as the instructor.

Prerequisites for bulk importing via API

  • Create your meetings via Zoom’s REST API. For more information on creating meetings via the REST API, please see this link.
  • The Auto-Populate Alternative Host setting must be disabled or create a new LTI credential only used to import meetings and do not change any settings on the configuration page of LTI Pro.
  • Create a digital signature X-Lti-Signature for the request as described below. This need to be passed in the request header.

Endpoint

POST /meeting/bulkImport

Request parameters

Request header

Example header signature

--header 'X-Lti-Signature: H-nOALLKJOT5i56RRKE5ehCZk9A'
  1. The signature base string is created using query parameters:
    key=KLAIJC9OTI2Hm-vxn3UVHK&timestamp=1634769623355
  2. LTI Secret - LTI secret can be found in LTI config page. It is very important to keep these values private for your application
    • If you want to use a specific userId to create the calendar event on LMS, the userId should be included in the base string as shown in the following example:
      “key=KLAIJC9OTI2Hm-vxn3UVHK&timestamp=1634769623355&userId=12dd589465Z=”
  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  aencodeBase64URLSafeString.
  4. Pass the value obtained from step 3 in the X-Lti-Signatureheader.

Note: The signature will be valid for 60 minutes.

Query parameters

Parameter Type Description
timestamp String Current timestamp when the request is created. The value is in milliseconds.
key String Identifier of the LTI application that is making the request. LTI Key value can be found in LTI config page.

Request body

LTI meeting info

Content-Type: application/json

[
{
"meetingId":"String",
"contextId":"String",
"courseId":"String",
"domain":"String"
},
{
"meetingId ":"String",
"contextId":"String",
"courseId":"String",
"domain":"String"
}
]

Request body if using the account admin userId

Content-Type: application/json

{ 
"userId": "String",
"meetingList":
[{
"meetingId":"String"
"contextId":"String"
"courseId":"String"
"domain":"String"
},
{
"meetingId ":"String"
"contextId":"String"
"courseId":"String"
"domain":"String"
}]
}

Example

[
{
"meetingId": "0123456789",
"contextId": "sjaldjfjdkdlsj",
"courseId": "Sample CourseID",
"domain": "https://somelmsdomain.com"
}
]

Schema

Parameter Type Description
meetingId String The meeting ID of the meeting you are importing to a course.
contextId String The Context ID for the course that the meeting is associated with.
domain String The Domain used to access the LMS.
courseId* String The courseId is only required to support Canvas Calendar and Conversations.
userId** String User Id of the Zoom user. This user need to be Admin role in order to run the api
meetingList String List of LTI Meeting Info

*Note: This is only required in order to support Canvas Calendar and Conversations.

**Note: If the Zoom account admin needs is using the API, the userId should be added to the request body.

{
"type": "object",
"properties": {
"meetingId": {
"type": "string",
"description": "The meeting ID of the meeting you are importing to a course."
},
"contextId": {
"type": "string",
"description": "The Context ID for the course that the meeting is associated with."
},
"domain": {
"type": "string",
"description": "The Domain used to access the LMS."
},
"courseId": {
"type": "string",
"description": "The courseId is only required to support Canvas Calendar and Conversations."
}
},
"required": [
"meetingId",
"contextId",
"domain"
]
}

Responses

200

HTTP Status Code - 200

Processing Bulk Import

401

{
"status": false,
"errorCode": "401"
}

How to retrieve the userID from LTI Pro

  1. Login LMS and launch LTI pro with Developer Tool (Please make sure the user is Zoom User)

  2. Click on Network tab.

  3. In the search bar for the developer tools, search for user/settings/all.
  4. Click the only API under the Name.

  5. Click Preview.
    The UserId will be in the result.

Zoom Community

Join the 100K+ other members in the Zoom Community! Login with your Zoom account credentials and start collaborating.