Ga naar inhoud

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.

EndpointBeschrijving
GET /scormproxy/listList SCORM proxy wrappers
POST /scormproxy/addCreate a new SCORM proxy wrapper
POST /scormproxy/updateUpdate an existing SCORM proxy wrapper
POST /scormproxy/deleteDelete a SCORM proxy wrapper
GET /scormproxy/resultsGet CMI results for SCORM proxy registrations
GET /scormproxy/registrations_by_dayGet 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

NaamInTypeVerplichtBeschrijving
wrapperidquerystringneeFilter by wrapper ID.
courseidqueryintegerneeCourse ID filter.
objectidqueryintegerneeObject 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.

VeldTypeVerplichtBeschrijving
namestringjaWrapper name.
courseidintegerjaCourse ID.
objectidintegerneeObject ID / cmid (if provided, creates activity context). Standaard: 0.
enrolmentdurationintegerneeEnrolment duration in days (0 = unlimited). Standaard: 0.
enrolmentstartdatestringneeEnrolment start date (format: dd-mm-yyyy, 0 = no date). Standaard: "0".
enrolmentenddatestringneeEnrolment end date (format: dd-mm-yyyy, 0 = no date). Standaard: "0".
maxenrolledusersintegerneeMaximum enrolled users (0 = unlimited). Standaard: 0.
domainrestrictionsstringneeComma-separated list of allowed domains (e.g. ’example.com,test.org’).
statusintegerneeStatus: 0 = active, 1 = inactive. Toegestane waarden: 0, 1. Standaard: 0.
anonymizeintegerneeAnonymize 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.

VeldTypeVerplichtBeschrijving
wrapperidstringjaPublic wrapper identifier.
namestringneeNew wrapper name.
enrolmentdurationintegerneeEnrolment duration in days (0 = unlimited). Standaard: 0.
enrolmentstartdatestringneeEnrolment start date (format: dd-mm-yyyy, 0 = no date).
enrolmentenddatestringneeEnrolment end date (format: dd-mm-yyyy, 0 = no date).
maxenrolledusersintegerneeMaximum enrolled users (0 = unlimited, -1 = no change). Standaard: -1.
domainrestrictionsstringneeComma-separated list of allowed domains (e.g. ’example.com,test.org’).
statusintegerneeStatus: 0 = active, 1 = inactive, -1 = no change. Toegestane waarden: -1, 0, 1. Standaard: -1.
anonymizeintegerneeAnonymize 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.

VeldTypeVerplichtBeschrijving
wrapperidstringjaPublic 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

NaamInTypeVerplichtBeschrijving
wrapperidquerystringjaPublic wrapper identifier. Voorbeeld: "sp-abc123xyz789".
useridqueryintegerneeMoodle 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

NaamInTypeVerplichtBeschrijving
fromquerystringjaStart date (format: DD-MM-YYYY).
tillquerystringjaEnd date (format: DD-MM-YYYY).
wrapperidquerystringneePublic 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

Laatst bijgewerkt op