API: learning objects
List the learning objects of a course and add, update or delete a SCORM package.
A learning object is an activity in a course. These endpoints list the learning objects of a course and add, update or delete a SCORM package. Adding or updating a package is a multipart upload, so those two calls are POST only. The grading and display fields are the same as the SCORM settings in the Linqur interface.
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.
| Endpoint | Description |
|---|---|
| GET /course/learningobject/list | Get learning objects for a course |
| POST /course/learningobject/scorm/add | Add an SCORM package to a course |
| POST /course/learningobject/scorm/update | Update SCORM Learning Object |
| GET /course/learningobject/delete | Delete a specific learning object |
GET /course/learningobject/list
Get learning objects for a course. This endpoint retrieves a list of learning objects associated with a specific course identified by its unique ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
courseid | query | integer | yes | The unique identifier of the course. |
Example request
curl -H "Access-Token: <your token>" \
"https://<your-platform>/local/ltisaas/api.php/v1/course/learningobject/list?courseid=<courseid>"Example response (200). Successful retrieval of learning objects.
{
"success": true,
"results": [
{
"id": 3,
"type": "scorm",
"name": "The big scorm example",
"is_hidden": false
}
]
}Errors: 400 Bad Request, 401 Unauthorized
POST /course/learningobject/scorm/add
Add an SCORM package to a course. This endpoint allows adding a SCORM package as a learning object to a specified course.
Request body (multipart/form-data). The properties of the SCORM package.
| Field | Type | Required | Description |
|---|---|---|---|
courseid | integer | yes | The unique identifier of the course. |
packagefile | file | yes | The .zip file of the SCORM package. |
name | string | yes | The name of the SCORM package. |
popup | integer | no | Indicates if the SCORM package should open in a new window (1) or not (0). Allowed values: 0, 1. |
width | integer | no | The display width for the SCORM package. |
height | integer | no | The display height for the SCORM package. |
grademethod | integer | no | The grading method for the SCORM package (0: learning objects, 1: highest grade, 2: average grade, 3: sum grade). Allowed values: 0, 1, 2, 3. |
maxgrade | integer | no | The maximum grade possible for the SCORM package. Minimum 0, maximum 100. |
maxattempt | integer | no | The maximum number of attempts allowed for the SCORM package. Minimum 0, maximum 6. |
whatgrade | integer | no | The grading strategy for multiple attempts (0: highest attempt, 1: average grade, 2: first attempt). Allowed values: 0, 1, 2. |
forcenewattempt | integer | no | Policy for forcing new attempts (0: no, 1: every new attempt is a new grade, 2: every new attempt resets previous grades). Allowed values: 0, 1, 2. |
lastattemptlock | integer | no | Indicates if the SCORM package should be locked after the last attempt (0: no, 1: yes). Allowed values: 0, 1. |
autocommit | integer | no | Indicates if the SCORM package grades should auto commit (0: no, 1: yes). Allowed values: 0, 1. |
masteryoverride | integer | no | Indicates if the mastery grade overrides the max grade (0: no, 1: yes). Allowed values: 0, 1. |
Example request
curl -X POST -H "Access-Token: <your token>" \
-F "courseid=<courseid>" \
-F "packagefile=@<packagefile.zip>" \
-F "name=<name>" \
"https://<your-platform>/local/ltisaas/api.php/v1/course/learningobject/scorm/add"Example response (200). Successful addition of the SCORM package to the course.
{
"success": true,
"learningobjectid": 0
}Errors: 400 Bad Request, 401 Unauthorized
POST /course/learningobject/scorm/update
Update SCORM Learning Object. This endpoint enables the updating of a SCORM learning object within a course. Required parameters include the ID of the learning object, the .zip package file, name, popup mode, and other grading and display properties.
Request body (multipart/form-data). The properties of the SCORM package.
| Field | Type | Required | Description |
|---|---|---|---|
learningobjectid | integer | yes | The ID of the learning object. |
packagefile | file | no | The .zip file of the SCORM package. |
name | string | no | The name of the SCORM package. |
popup | integer | no | Indicates if the SCORM package should open in a new window (1) or not (0). Allowed values: 0, 1. |
width | integer | no | The display width for the SCORM package. |
height | integer | no | The display height for the SCORM package. |
grademethod | integer | no | The grading method for the SCORM package (0: learning objects, 1: highest grade, 2: average grade, 3: sum grade). Allowed values: 0, 1, 2, 3. |
maxgrade | integer | no | The maximum grade possible for the SCORM package. Minimum 0, maximum 100. |
maxattempt | integer | no | The maximum number of attempts allowed for the SCORM package. Minimum 0, maximum 6. |
whatgrade | integer | no | The grading strategy for multiple attempts (0: highest attempt, 1: average grade, 2: first attempt). Allowed values: 0, 1, 2. |
forcenewattempt | integer | no | Policy for forcing new attempts (0: no, 1: every new attempt is a new grade, 2: every new attempt resets previous grades). Allowed values: 0, 1, 2. |
lastattemptlock | integer | no | Indicates if the SCORM package should be locked after the last attempt (0: no, 1: yes). Allowed values: 0, 1. |
autocommit | integer | no | Indicates if the SCORM package grades should auto commit (0: no, 1: yes). Allowed values: 0, 1. |
masteryoverride | integer | no | Indicates if the mastery grade overrides the max grade (0: no, 1: yes). Allowed values: 0, 1. |
Example request
curl -X POST -H "Access-Token: <your token>" \
-F "learningobjectid=<learningobjectid>" \
"https://<your-platform>/local/ltisaas/api.php/v1/course/learningobject/scorm/update"Example response (200). Returns success when updating a SCORM package.
{
"success": true
}Errors: the specification lists no error responses for this endpoint.
GET /course/learningobject/delete
Delete a specific learning object. This endpoint deletes a specific learning object based on the given identifier. It returns a success response upon successful deletion and relevant error responses for invalid requests or unauthorized access.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
learningobjectid | query | integer | yes | The identifier of the learning object. |
Example request
curl -H "Access-Token: <your token>" \
"https://<your-platform>/local/ltisaas/api.php/v1/course/learningobject/delete?learningobjectid=<learningobjectid>"Example response (200). Returns success if the operation was successful.
{
"success": true
}Errors: 400 Bad Request, 401 Unauthorized