Always Learning

Posted by Wes | about 4 years ago

Do you want to understand the standards for capturing learner behavior? We do too! We’re not experts on the Experience API, but we’ve done some research that we’d like to share and apply. The plan is to experiment by building a sample app or two. First, there are topics that must be demystified. Let's start by covering some terminology.


LMS stands for Learning Management System. No explanation is required for this audience. We are all familiar with examples including Blackboard, Canvas, Desire2Learn, LearningStudio, and Moodle.

SCORM stands for Sharable Content Object Reference Model. SCORM is a standard to promote interoperability between learning content and the LMS.

Tin Can API was the the original name for the standard intended to replace SCORM. The standard is now known as Experience API or xAPI. There are great resources in the community that still reference Tin Can. Just know that Tin Can, Tin Can API, Experience API, and xAPI are the same thing!

Experience API (xAPI) is a standard at the center of the Training & Learning Architecture. The xAPI standard recognizes that learning happens everywhere, so it provides a common language for communicating and capturing learning activity from anywhere. This language consists of a data format and an API. The data format takes the form of sentence-like statements. The API defines how these statements are reported and later retrieved.

Statements are the data format for xAPI. This format is sentence-like. Each statement consists of an actor, verb, object, and context. For example, “Sue researched zoology on Wikipedia” and “Danny defined hippocampus on an e-reader” are simple statements. Statements are represented in a machine-readable format in xAPI, but the semantics are the same as human language. The usage of words in human language can be unclear. Human language solves this with a dictionary. The xAPI calls its dictionary a Registry. (Still learning about the registry, so expect more on that later.)

LRS stands for Learning Record Store. The name is descriptive of its actual function. It is a data store for learning statements in xAPI format. This store is separate from the LMS, and it’s capable of storing learning activity from any source. It also provides retrieval capabilities. This storage and retrieval is accomplished through an API.

API stands for Application Programming Interface. That might sound intimidating, but it’s nothing more than a contract allowing two or more parties to accomplish a task together. The Experience API defines how statements are stored and retrieved through an API on the LRS. This allows any source of learning to interact with the LRS on behalf of a learner.

Activity Provider is what the Experience API calls sources of learning. These providers report xAPI Statements to a LRS via the Experience API. Digital learning content is well positioned to handle that notification without human intervention. The provider can report to any LRS, because the LRS details are provided when the content is launched.

What's next?

Whew! Glad you stuck around. Making sense? If not, there are more elaborate descriptions on and the Experience API specification. Take a look and join us again when you’re ready. Definitely let us know if we omitted something! The definitions will undoubtedly need revising as we learn more during this effort.

There was mention earlier of building sample apps. We want to identify and understand the Experience API in motion before the coding begins, so we'll be exploring each component in the next few articles. Keep following along in the next article of this series for a better understanding of how a learner’s activity gets reported to a LRS.

Feel free to jump ahead to other articles in this series:

Also, definitely check out and's xAPI standard for more in-depth details. We are just scratching the surface with this whirlwind tour, and those resources were our reference. We would like to give credit and a BIG THANKS to the maintainers of both!


Average: 3.7 (3 votes)

22295 reads
Always Learning