The cmi5 Project

What is cmi5?

A set of “extra rules” for xAPI

cmi5 is a “profile” for using the xAPI specification with traditional learning management (LMS) systems.

Since the xAPI specification is highly generalized to support many different use cases, a set of “extra rules” (called a “profile”) is needed to ensure interoperability for a given use case. The cmi5 profile ensures plug and play interoperability between learning content and LMS systems.

The use case that the cmi5 profile is specifically designed for is one where the learner launches the learning content/activity from the LMS user interface.

cmi5 defines specific interoperability rules for the following areas:


The mission of cmi5 is to provide a better alternative to current AICC/SCORM specifications with something considerably more flexible, robust, and adaptable to today’s technologies. The specific goals of cmi5 are as follows:

1 - A simplified tracking data model

SCORM and AICC data models were too complicated and had many optional data elements that were not used. The goal of simple data model is to only define the bare minimum data elements required that would work across most learning domains. (e.g. Score, status, and time).

2 - The ability to record and report/retrieve content-defined data

Restricting data collection to a small set of required data elements was too limiting. In most cases what was really needed was the just the ability to record the data from the content in the LMS and later retrieve it for analysis. The goal of allowing content defined data recording/retrieval allows content designers to add features and still be interoperable.

Content defined data can either be text or digital data.

3 - Support for content as a service (CaaS) model of delivery

Allow content to be stored on other domains (independent of the LMS server domain)

4 - Device/OS/browser independence

Allow for content to be independent of a browser in order to communicate or be launched.

5 - Share data between learning activities

Allow data to be shared between learning activities for multiple learners enrolled in the same course.


The cmi5 project was originally started in the AICC (Aviation Industry Computer-Based Training Committee) in 2010. cmi5 was expected to replace both AICC and SCORM specifications with a more feature-rich and robust solution. Both AICC and SCORM specifications had technical issues and constraints as well as significant overlap.

The AICC was nearing completion of SOAP-based communication mechanism for cmi5 in 2012 about the same time the Tin Can API research project (now called xAPI) was completed in the ADL.

The AICC and ADL participants soon determined that there was significant overlap between the two specifications. xAPI had broader application than cmi5, so the ADL and AICC agreed to cooperate on an “xAPI profile” to meet the more specific use case needs of cmi5. So the cmi5 project was “rebooted” in 2012 and the SOAP architecture was replaced with xAPI. The cmi5 project is still guided by its original goals.

In 2014, the AICC dissolved and formally transferred the cmi5 project to the ADL.


The versioning of cmi5 is as follows:

For example “Sandstone, 1st edition”.

Sandstone (released May 2015)

Sandstone is the first release of cmi5. It is a “developer release” to collect feedback from learning technology developers. It is not intended for actual implementation.

Quartz (released June 2016)

The Quartz version includes developer feedback collected from Sandstone. Quartz is the first “production release” intended for implementation.

cmi5 Articles

The following are articles that discuss cmi5 and explain its potential uses:

(More will be added as they become available)

Connect with the cmi5 community!

Please note that the cmi5 working group is a volunteer community effort and is open to all.

We very much want to encourage people to share their thoughts about cmi5 and participate. Please consider connecting with us in one or more of the following ways:

cmi5 GitHub

All are welcome to raise issues/comments on this GitHub repository.

Also, please see our wiki for a comprehensive set of meeting minutes.

Weekly cmi5 Web Conferences

The cmi5 working group holds weekly Web Conferences that are open to all. The meeting are held every Friday at 10:30 am US Eastern Time. See link below :

The cmi5 LinkedIn Group

The cmi5 LinkedIn group was established to encourage discussion about cmi5 and answer your questions. Please join at link below:

Follow cmi5 on Twitter

Follow cmi5 on Twitter: #cmi5, @cmi5spec