API: SCORM Proxy
SCORM Proxy-wrappers beheren en hun registraties en resultaten uitlezen.
SCORM Proxy levert een cursus of activiteit als een klein SCORM-pakket dat in een ander LMS draait en de inhoud afspeelt vanaf je Linqur-platform; een wrapper is zo’n pakket. Met deze endpoints vraag je wrappers op, maak je ze aan, werk je ze bij of verwijder je ze, krijg je de downloadlinks per SCORM-versie en lees je de CMI-resultaten en de registraties per dag uit. De kant van de interface staat in Aan de slag met SCORM-wrappers.
Elk endpoint accepteert zowel GET als POST; de kop toont de methode die de specificatie als eerste noemt. Uploads gaan alleen met POST. Stuur je API-sleutel mee in de header Access-Token. De basis-URL is https://<your-platform>/local/ltisaas/api.php/v1; met v0 en het token dummy krijg je testdata. Foutmeldingen komen terug als JSON met success: false, error en debuginfo. Authenticatie, versies en limieten staan in API-documentatie. De beschrijvingen van endpoints en velden hieronder komen uit de specificatie en zijn Engels.
Gegenereerd uit de LtiSaas API-specificatie 1.0, opgehaald op 2026-10-30 van dev-auto.
| Endpoint | Beschrijving |
|---|---|
| GET /scormproxy/list | List SCORM proxy wrappers |
| POST /scormproxy/add | Create a new SCORM proxy wrapper |
| POST /scormproxy/update | Update an existing SCORM proxy wrapper |
| POST /scormproxy/delete | Delete a SCORM proxy wrapper |
| GET /scormproxy/results | Get CMI results for SCORM proxy registrations |
| GET /scormproxy/registrations_by_day | Get SCORM proxy registration statistics by day |
GET /scormproxy/list
List SCORM proxy wrappers. Retrieves a list of SCORM proxy wrappers with optional filtering by wrapper ID, course ID, or object ID.
Parameters
| Naam | In | Type | Verplicht | Beschrijving |
|---|---|---|---|---|
wrapperid | query | string | nee | Filter by wrapper ID. |
courseid | query | integer | nee | Course ID filter. |
objectid | query | integer | nee | Object ID / cmid filter (0 = course context, >0 = activity context). |
Voorbeeldverzoek
curl -H "Access-Token: <your token>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/list"Voorbeeldantwoord (200). Successful retrieval of SCORM proxy wrappers.
{
"success": true,
"results": [
{
"wrapperid": "sp-abc123xyz789",
"name": "My SCORM Wrapper",
"courseid": 42,
"objectid": 0,
"enrolmentduration": "30 days",
"enrolmentstartdate": "01-01-2025",
"enrolmentenddate": "31-12-2025",
"maxenrolledusers": 100,
"domainrestrictions": "example.com",
"wrapperactive": 0,
"anonymize": 0,
"userids": [
101,
102,
103
],
"totalregistrations": 45,
"downloadlink": {
"scorm_12": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_12",
"scorm_2004_2": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_2",
"scorm_2004_3": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_3",
"scorm_2004_4": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_4"
}
}
]
}Fouten: 400 Bad Request, 401 Unauthorized
POST /scormproxy/add
Create a new SCORM proxy wrapper. Creates a new SCORM proxy wrapper for remote SCORM package delivery. Returns the wrapper ID and download URLs for different SCORM versions.
Request body (multipart/form-data). SCORM proxy wrapper configuration.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
name | string | ja | Wrapper name. |
courseid | integer | ja | Course ID. |
objectid | integer | nee | Object ID / cmid (if provided, creates activity context). Standaard: 0. |
enrolmentduration | integer | nee | Enrolment duration in days (0 = unlimited). Standaard: 0. |
enrolmentstartdate | string | nee | Enrolment start date (format: dd-mm-yyyy, 0 = no date). Standaard: "0". |
enrolmentenddate | string | nee | Enrolment end date (format: dd-mm-yyyy, 0 = no date). Standaard: "0". |
maxenrolledusers | integer | nee | Maximum enrolled users (0 = unlimited). Standaard: 0. |
domainrestrictions | string | nee | Comma-separated list of allowed domains (e.g. ’example.com,test.org’). |
status | integer | nee | Status: 0 = active, 1 = inactive. Toegestane waarden: 0, 1. Standaard: 0. |
anonymize | integer | nee | Anonymize user data: 0 = no, 1 = yes. Toegestane waarden: 0, 1. Standaard: 0. |
Voorbeeldverzoek
curl -X POST -H "Access-Token: <your token>" \
-F "name=<name>" \
-F "courseid=<courseid>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/add"Voorbeeldantwoord (200). Wrapper created successfully.
{
"success": true,
"results": {
"wrapperid": "sp-abc123xyz789",
"downloadlink": {
"scorm_12": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_12",
"scorm_2004_2": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_2",
"scorm_2004_3": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_3",
"scorm_2004_4": "https://<your-platform>/local/ltisaas/scormproxy/download.php?token=dl-xyz&version=scorm_2004_4"
}
}
}Fouten: 400 Bad Request, 401 Unauthorized
POST /scormproxy/update
Update an existing SCORM proxy wrapper. Updates an existing SCORM proxy wrapper. Only provided parameters will be updated.
Request body (multipart/form-data). Fields to update.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
wrapperid | string | ja | Public wrapper identifier. |
name | string | nee | New wrapper name. |
enrolmentduration | integer | nee | Enrolment duration in days (0 = unlimited). Standaard: 0. |
enrolmentstartdate | string | nee | Enrolment start date (format: dd-mm-yyyy, 0 = no date). |
enrolmentenddate | string | nee | Enrolment end date (format: dd-mm-yyyy, 0 = no date). |
maxenrolledusers | integer | nee | Maximum enrolled users (0 = unlimited, -1 = no change). Standaard: -1. |
domainrestrictions | string | nee | Comma-separated list of allowed domains (e.g. ’example.com,test.org’). |
status | integer | nee | Status: 0 = active, 1 = inactive, -1 = no change. Toegestane waarden: -1, 0, 1. Standaard: -1. |
anonymize | integer | nee | Anonymize user data: 0 = no, 1 = yes, -1 = no change. Toegestane waarden: -1, 0, 1. Standaard: -1. |
Voorbeeldverzoek
curl -X POST -H "Access-Token: <your token>" \
-F "wrapperid=<wrapperid>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/update"Voorbeeldantwoord (200). Wrapper updated successfully.
{
"success": true
}Fouten: 400 Bad Request, 401 Unauthorized
POST /scormproxy/delete
Delete a SCORM proxy wrapper. Soft deletes a SCORM proxy wrapper by setting the timedeleted timestamp, status to inactive, and enddate to now.
Request body (multipart/form-data). Wrapper to delete.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
wrapperid | string | ja | Public wrapper identifier. |
Voorbeeldverzoek
curl -X POST -H "Access-Token: <your token>" \
-F "wrapperid=<wrapperid>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/delete"Voorbeeldantwoord (200). Wrapper deleted successfully.
{
"success": true
}Fouten: 400 Bad Request, 401 Unauthorized
GET /scormproxy/results
Get CMI results for SCORM proxy registrations. Retrieves CMI (Computer Managed Instruction) data for all registrations of a wrapper, optionally filtered by user ID. Returns attempt data with CMI fields that vary based on whether the wrapper is SCORM (cmi.core.* format) or xAPI/non-SCORM (cmi_* format).
Parameters
| Naam | In | Type | Verplicht | Beschrijving |
|---|---|---|---|---|
wrapperid | query | string | ja | Public wrapper identifier. Voorbeeld: "sp-abc123xyz789". |
userid | query | integer | nee | Moodle user ID filter (optional). Voorbeeld: 123. |
Voorbeeldverzoek
curl -H "Access-Token: <your token>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/results?wrapperid=<wrapperid>"Voorbeeldantwoord (200). Successful retrieval of CMI results.
{
"success": true,
"results": [
{
"userid": 123,
"wrapperid": "sp-abc123xyz789",
"registrationid": "reg-abc123def456",
"is_scorm": false,
"attempts": [
{
"attempt": 1,
"cmi_data": {
"cmi_completion_status": "completed",
"cmi_success_status": "passed",
"cmi_score_raw": 100,
"cmi_score_min": 0,
"cmi_score_max": 100,
"cmi_score_scaled": 1
}
}
]
}
]
}Fouten: 400 Bad Request - Invalid parameters, 401 Unauthorized - Invalid or missing Access-Token, 404 Not Found - Wrapper not found, user not found, or no registration found for the specified user
GET /scormproxy/registrations_by_day
Get SCORM proxy registration statistics by day. Retrieves registration statistics grouped by date for analytics purposes. Can be filtered by wrapper ID.
Parameters
| Naam | In | Type | Verplicht | Beschrijving |
|---|---|---|---|---|
from | query | string | ja | Start date (format: DD-MM-YYYY). |
till | query | string | ja | End date (format: DD-MM-YYYY). |
wrapperid | query | string | nee | Public wrapper identifier filter (optional). |
Voorbeeldverzoek
curl -H "Access-Token: <your token>" \
"https://<your-platform>/local/ltisaas/api.php/v1/scormproxy/registrations_by_day?from=<from>&till=<till>"Voorbeeldantwoord (200). Successful retrieval of registration statistics.
{
"success": true,
"results": [
{
"date": "15-11-2024",
"totalregistrations": 42
}
]
}Fouten: 400 Bad Request, 401 Unauthorized