Skip to content

API: LTI tools

List, create, update and delete the LTI tools of a course.

An LTI tool publishes a whole course or one learning object to an external LMS. These endpoints list the tools of a course and create, update or delete a tool. The fields match the form in the Linqur interface: LTI version, publish mode, roles, provisioning, grade and member synchronisation and the enrolment period, all explained in LTI tool settings explained. The response of /course/tool/list contains the launch URL, the registration URL and the secret of each tool, so treat that output as confidential.

Every endpoint accepts both GET and POST; the heading shows the method the specification lists first. Uploads must use POST. Send your API key in the Access-Token header. The base URL is https://<your-platform>/local/ltisaas/api.php/v1; use v0 with the token dummy to get test data. Error responses are JSON with success: false, error and debuginfo. Authentication, versions and limits are explained in API documentation.

Generated from the LtiSaas API specification 1.0, retrieved 2026-10-30 from dev-auto.

EndpointDescription
GET /course/tool/listList all LTI tools within a course
GET /course/tool/addAdd new tool to a course
GET /course/tool/updateUpdate a specific course tool
GET /course/tool/deleteDelete a specific course tool

GET /course/tool/list

List all LTI tools within a course. This endpoint will list all the LTI tools associated within a course.

Parameters

NameInTypeRequiredDescription
courseidqueryintegeryesThe ID of the course.
ltitypequerystringnoThe version of LTI. Either LTI Advantage or Legacy LTI. Allowed values: "LTI Advantage", "Legacy LTI".

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/course/tool/list?courseid=<courseid>"

Example response (200). Returns the tool id created when the call is successful.

{
  "success": true,
  "results": [
    {
      "toolid": 0,
      "enrollmentid": 0,
      "totalregistrations": 0,
      "learningobjectid": 0,
      "name": "string",
      "secret": "string",
      "timecreated": "string",
      "ltitype": "string",
      "cartridgeurl": "string",
      "launchurl": "string",
      "registrationurl": "string",
      "customproperties": "string",
      "resourcetype": "string"
    }
  ]
}

Errors: 400 Bad Request, 401 Unauthorized

GET /course/tool/add

Add new tool to a course. This endpoint allows you to add a new tool to an existing course. You must provide the course ID and the details of the tool to be added.

Parameters

NameInTypeRequiredDescription
courseidqueryintegeryesThe ID of the course.
ltiversionquerystringyesThe version of LTI. Either LTI Advantage or Legacy LTI. Allowed values: "Legacy LTI", "LTI Advantage".
namequerystringyesThe name.
publishmodequerystringyesThe mode of publishing (course or activity). Allowed values: "course", "activity".
learningobjectidqueryintegernoThe ID of the learning object. Only required if publishmode is set to activity.
maxenrolledqueryintegernoThe maximum enrollment. Defaults to unlimited (0).
roleinstructorqueryintegernoThe role of the instructor. Defaults to 3.
rolelearnerqueryintegernoThe role of the learner. Defaults to 5.
provisioningmodeinstructorqueryintegernoThe provisioning mode of the instructor. Defaults to 2. Allowed values: 1, 2, 3.
provisioningmodelearnerqueryintegernoThe provisioning mode of the learner. Defaults to 1. Allowed values: 1, 2, 3.
gradesyncqueryintegernoWhether grade sync is enabled. Grade synchronization (1=Yes, 0=No). Allowed values: 0, 1.
gradesynccompletionqueryintegernoRequire course or activity completion prior to grade synchronisation (1=Yes, 0=No). Allowed values: 0, 1.
membersyncqueryintegernoWhether member sync is enabled. User synchronisation (1=Yes, 0=No). Allowed values: 0, 1.
membersyncmodequeryintegernoUser synchronisation mode (1=Enrol new and unenrol missing users, 2=Enrol new users, 3=Unenrol missing users). Allowed values: 1, 2, 3.
enrolperiodqueryintegernoThe duration of the enrolment (in seconds).
enrolstartdatequerystringnoThe enrolment start date (YYYY-MM-DDTHH:mm).
enrolenddatequerystringnoThe enrolment end date (YYYY-MM-DDTHH:mm).

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/course/tool/add?courseid=<courseid>&ltiversion=<ltiversion>&name=<name>&publishmode=<publishmode>"

Example response (200). Returns the tool id created when the call is successful.

{
  "success": true,
  "toolid": 0
}

Errors: 400 Bad Request, 401 Unauthorized

GET /course/tool/update

Update a specific course tool. This endpoint updates a specific tool in a course. Detailed information about the tool such as tool’s identifier, name, ltiversion, etc. need to be provided. Successful operation will update the tool’s details in the course.

Parameters

NameInTypeRequiredDescription
toolidqueryintegeryesThe ID of the lti tool.
ltiversionquerystringnoThe version of LTI. Allowed values: "LTI Advantage", "Legacy LTI".
namequerystringnoThe name.
publishmodequerystringnoThe mode of publishing (course or activity). Allowed values: "course", "activity".
learningobjectidqueryintegernoThe ID of the learning object. Only required if publishmode is set to activity.
maxenrolledqueryintegernoThe maximum enrollment.
roleinstructorqueryintegernoThe role of the instructor.
rolelearnerqueryintegernoThe role of the learner.
provisioningmodeinstructorqueryintegernoThe provisioning mode of the instructor. Allowed values: 1, 2, 3.
provisioningmodelearnerqueryintegernoThe provisioning mode of the learner. Allowed values: 1, 2, 3.
gradesyncqueryintegernoWhether grade sync is enabled. Grade synchronization (1=Yes, 0=No). Allowed values: 0, 1.
gradesynccompletionqueryintegernoRequire course or activity completion prior to grade synchronisation (1=Yes, 0=No). Allowed values: 0, 1.
membersyncqueryintegernoWhether member sync is enabled. User synchronisation (1=Yes, 0=No). Allowed values: 0, 1.
membersyncmodequeryintegernoUser synchronisation mode (1=Enrol new and unenrol missing users, 2=Enrol new users, 3=Unenrol missing users). Allowed values: 1, 2, 3.
enrolperiodqueryintegernoThe duration of the enrolment (in seconds).
enrolstartdatequerystringnoThe enrolment start date (YYYY-MM-DDTHH:mm).
enrolenddatequerystringnoThe enrolment end date (YYYY-MM-DDTHH:mm).

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/course/tool/update?toolid=<toolid>"

Example response (200). LTI registrations within a course for a specific time period.

{
  "success": true,
  "toolid": 0
}

Errors: 400 Bad Request, 401 Unauthorized

GET /course/tool/delete

Delete a specific course tool. This endpoint deletes a specific tool in a course. Upon successful operation, the tool will be removed from the course. If the tool is not found or cannot be deleted due to any reason, appropriate error responses will be returned.

Parameters

NameInTypeRequiredDescription
toolidqueryintegeryesThe identifier of the lti tool.

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/course/tool/delete?toolid=<toolid>"

Example response (200). Returns success if the operation was successful.

{
  "success": true
}

Errors: 400 Bad Request, 401 Unauthorized

Last updated on