CASE STUDY
How we helped EMASEA create SCORM-compliant e-learning content in record time.
July 27, 2026
CONTENT CREATED BY:

Table of contents
The SCORM Runtime API is the JavaScript programming interface that enables real-time communication between an e-learning course and the LMS (Learning Management System) hosting it. It is the technical mechanism that allows the LMS to automatically record learner progress, scores, time spent, and course completion status.
In the corporate e-learning context, the SCORM Runtime API is the invisible bridge connecting training content with the management platform. Without it, the LMS would have no way of knowing whether an employee has completed an onboarding module, how long they spent on a mandatory training, or what score they achieved in an assessment.
When a learner launches a SCORM course from their LMS, a sequence of communications defined by the SCORM Runtime Environment (RTE) is triggered. The course — technically known as a SCO (Sharable Content Object) — locates a JavaScript object called API or API_1484_11 exposed by the LMS in the parent window or container frame.
Once that object is found, the SCO can call the API functions to open the session, retrieve previous learner data, save progress, and properly close the communication when the session ends. This process happens transparently for the user and ensures that all training data is recorded in the LMS regardless of the device or browser used.
The specification distinguishes two versions with slightly different function names: SCORM 1.2 uses the LMS prefix (e.g. LMSInitialize), while SCORM 2004 drops the LMS prefix (e.g. Initialize, GetValue).
Both SCORM 1.2 and SCORM 2004 define exactly 8 mandatory functions that every SCORM-compliant LMS must implement. These functions form the technical contract between the course and the platform:
| Function (SCORM 1.2) | SCORM 2004 equivalent | Description |
|---|---|---|
| LMSInitialize("") | Initialize("") | Opens the communication session with the LMS. Must be the first call. |
| LMSFinish("") | Terminate("") | Closes the session. Without this call, data may be lost when leaving the course. |
| LMSGetValue(element) | GetValue(element) | Retrieves a value from the LMS (e.g. learner name, last visited location). |
| LMSSetValue(elem, value) | SetValue(elem, value) | Sends a value to the LMS (e.g. score, completion status). |
| LMSCommit("") | Commit("") | Forces immediate saving of submitted data. Equivalent to clicking Save. |
| LMSGetLastError() | GetLastError() | Returns the error code from the last API call. |
| LMSGetErrorString(code) | GetErrorString(code) | Returns a text description of the error code. |
| LMSGetDiagnostic(code) | GetDiagnostic(code) | Returns extended diagnostic information about the last error. |
The SCORM Runtime API not only defines the communication functions but also the CMI (Computer-Managed Instruction) data model, which determines what variables can be exchanged between the course and the LMS. These data elements represent the actual information recorded in each training session.
The most relevant elements for corporate training management are:
In SCORM 2004, the data model is significantly expanded, allowing individual interaction responses (cmi.interactions), learning objectives achieved (cmi.objectives), and more granular competency states to be recorded.
For an L&D Manager or training professional, understanding the SCORM Runtime API has direct practical implications, even if you never write a single line of code:
LMSSetValue, or fails to execute LMSCommit before closing, the LMS may not record the completion status even though the learner has finished the content.cmi.core.lesson_location via LMSSetValue. If your course template does not implement this, learners will always restart from the beginning.LMSFinish on exit.The two main versions of the standard share the same Runtime API logic but differ in function names and data model capabilities. The choice between them depends on the level of tracking detail your organisation needs and your LMS compatibility.
SCORM 1.2 remains the most widely used standard in corporate environments globally: its simplicity and near-universal compatibility with any SCORM player keep it as the first choice for many organisations. SCORM 2004 adds advanced conditional sequencing and a more granular data model, but requires LMS platforms and authoring tools with explicit support for its four editions.
For a detailed technical and practical comparison between both versions, see our comparative guide: SCORM 1.2 vs. SCORM 2004: which one should you choose?
The SCORM Runtime API is just one of the three technical components that make up the full SCORM standard. To understand the whole picture, it helps to distinguish them:
When a SCORM package is imported into an LMS, the platform reads the imsmanifest.xml to understand the course structure, and upon launching each SCO it exposes the API Adapter so the Runtime API can function. The full guide on what SCORM is and how this process works is available at: What is SCORM? Complete guide for training teams.
Despite its widespread adoption, the SCORM Runtime API has known limitations worth bearing in mind when designing training strategies:
LMSFinish, session data may not be saved.cmi.suspend_data has a 4,096-character limit, which may be insufficient for complex courses with many internal states.From a practical standpoint, the L&D Manager does not interact directly with the SCORM Runtime API — that responsibility falls on the authoring tool used to create the courses. A well-implemented authoring tool automatically generates the correct SCORM code — including calls to LMSInitialize, LMSSetValue, and LMSFinish — without the instructional designer having to worry about the technical layer.
isEazy Author publishes courses in SCORM 1.2 and SCORM 2004 format with a full Runtime API implementation: correct completion status management, score submission, bookmark saving, and verified compatibility with the leading LMS platforms on the market. This ensures training data reaches the LMS reliably, with no additional technical configuration required.
EMASESA, a water services company based in Seville, used isEazy Author to create SCORM courses in record time and publish them directly to their LMS with precise tracking by the HR team. The result: e-learning content produced efficiently with full visibility into employee progress.
Discover how EMASESA created e-learning courses with isEazy →
The main difference lies in function names and the richness of the data model. SCORM 1.2 uses functions with the LMS prefix (LMSInitialize, LMSGetValue, LMSSetValue), while SCORM 2004 removes that prefix (Initialize, GetValue, SetValue). In terms of the data model, SCORM 2004 significantly expands what can be recorded: it allows tracking of individual interactions (cmi.interactions), learning objectives (cmi.objectives), and more granular competency states. SCORM 1.2 has a more limited data model but is supported by virtually every LMS on the market, making it the safest choice when universal compatibility is a priority.
If the SCO does not execute LMSFinish() when closing, the LMS may not correctly record the final session state. Data sent via LMSSetValue that has not been confirmed with LMSCommit may be lost, and the completion status may remain as incomplete even though the learner has finished the course. This is one of the most common issues in poorly implemented SCORM courses: the learner completes the content, but the LMS still shows the course as unfinished. The solution is to review the authoring tool and ensure the course correctly handles session closure by always executing LMSFinish before the learner exits.
No, not from the perspective of the instructional designer or L&D Manager. Modern authoring tools, such as isEazy Author, implement all the Runtime API logic internally and automatically generate the correct SCORM code when publishing a course. The designer only needs to understand the basics: what data is tracked and which SCORM version to publish, to ensure the export settings match what the LMS expects. Deep technical knowledge of the API is mainly relevant for developers implementing an LMS or building custom integrations.
Yes, as long as the course runs in a web browser within the LMS. The SCORM Runtime API is standard JavaScript and works in any modern browser, including those on mobile devices, provided the LMS is accessible and the course is launched in the correct context. However, it does not work in native mobile apps that do not include a SCORM player with a WebView, or in offline scenarios without a connection to the LMS. For those cases, the xAPI (Experience API / Tin Can) standard offers greater flexibility as it does not depend on the browser window to communicate with the recording system.
With visually appealing content and ready-to-use resources. Select, customize, and done!
Try it freeRequest a demo
