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'
- The signature base string is created using query parameters:
key=KLAIJC9OTI2Hm-vxn3UVHK×tamp=1634769623355
- 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×tamp=1634769623355&userId=12dd589465Z=”
- 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:
- 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.
- 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
-
Login LMS and launch LTI pro with Developer Tool (Please make sure the user is Zoom User)
-
Click on Network tab.
- In the search bar for the developer tools, search for user/settings/all.
-
Click the only API under the Name.
- 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.