Table of contents

What is the SCORM Runtime API?

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.

The SCORM Runtime API is the standard JavaScript protocol that allows an e-learning course to send and receive data from the LMS during execution: completion status, score, session time, and the learner's progress position.
SCORM Specification — ADL Initiative, US Department of Defense

How the SCORM Runtime API works in practice

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).

The 8 core functions of the SCORM Runtime API

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 equivalentDescription
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 CMI data model: what information does the SCORM Runtime API track?

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:

  • cmi.core.lesson_status — Course status: passed, failed, completed, incomplete, browsed, or not attempted.
  • cmi.core.score.raw — Numerical score obtained by the learner.
  • cmi.core.session_time — Time spent in the current session.
  • cmi.core.lesson_location — Bookmark to resume the course where the learner left off.
  • cmi.core.student_name — Learner name, provided by the LMS at session start.
  • cmi.suspend_data — Free data field the course can store for internal use (activity states, previous answers, etc.).

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.

What the SCORM Runtime API means for training managers

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:

  • LMS compatibility: for tracking to work, the LMS must correctly implement the API Adapter. A SCORM-compliant LMS ensures that all 8 API functions are available for every course published in that standard.
  • Report quality: if the authoring tool you use to create courses does not correctly call LMSSetValue, or fails to execute LMSCommit before closing, the LMS may not record the completion status even though the learner has finished the content.
  • Course resumption: the ability to resume a course from the last visited point depends on the SCO correctly saving cmi.core.lesson_location via LMSSetValue. If your course template does not implement this, learners will always restart from the beginning.
  • Troubleshooting: when a course fails to record completions or does not send scores, the root cause is usually an API failure — an LMS that does not expose the API Adapter correctly, or a course that does not call LMSFinish on exit.

SCORM Runtime API in SCORM 1.2 vs. SCORM 2004

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 relationship between the SCORM Runtime API and the SCORM package

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:

  • Content Aggregation Model (CAM): defines how content is packaged in a ZIP file with the imsmanifest.xml file that describes the course structure.
  • Runtime Environment (RTE): the component that contains the SCORM Runtime API. It defines how the LMS launches content and how the SCO communicates with it during execution.
  • Sequencing and Navigation (S&N): exclusive to SCORM 2004, defines the conditional navigation rules between SCOs.

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.

Limitations of the SCORM Runtime API

Despite its widespread adoption, the SCORM Runtime API has known limitations worth bearing in mind when designing training strategies:

  • Only works inside the LMS: the API requires the course to run in an LMS context that exposes the API Adapter. It is not possible to track learning outside the platform (in native mobile apps, social networks, or third-party systems).
  • Synchronous browser communication: the Runtime API operates exclusively in the browser via JavaScript. If the learner closes the browser without the course executing LMSFinish, session data may not be saved.
  • Limited data model in SCORM 1.2: cmi.suspend_data has a 4,096-character limit, which may be insufficient for complex courses with many internal states.
  • No native support for mobile offline or xAPI: for learning scenarios outside the LMS or on devices without a connection, the xAPI (Tin Can) standard offers greater flexibility as it does not depend on a JavaScript API in the browser.

The SCORM Runtime API in authoring tools: the role of isEazy Author

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 →

CASE STUDY

How we helped EMASEA create SCORM-compliant e-learning content in record time.

See case study

Frequently asked questions about the SCORM Runtime API

What is the difference between the SCORM Runtime API in SCORM 1.2 and SCORM 2004

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.

What happens if a SCORM course does not call LMSFinish on exit

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.

Do you need to understand the SCORM Runtime API to create e-learning courses

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.

Does the SCORM Runtime API work on mobile devices

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.

Easily create a SCORM package in just a few steps

With visually appealing content and ready-to-use resources. Select, customize, and done!

Try it freeRequest a demo
isEazy Author