Experience API (xAPI)

What is it?

Experience API (xAPI, formerly Tin Can API) is a data format specification developed by Advanced Distributed Learning (ADL). It specifies that data should be tracked using an Actor-Verb-Object definition. For example, a student (actor) navigates (verb) to a video (object). All student interactions can be described with which student performed the action, what action did they perform, and what did they perform the action on. Below is an example of a xAPI statement generated from a learning analytics quiz system:

xAPI statement depicting the actor, verb, and object fields.

Why is it important?

Applications that use xAPI have a few benefits that overcome some challenges with working within a Learning Management System (LMS).

Data Warehousing: If students work within an LMS, online homework system, and an online textbook, there are three separate applications tracking student data in unique ways. Assuming you could get access to all of that data, you would need to understand how each data field was defined within each application, and then you would merge the three different records together. This is not a trivial task. The xAPI specification simplifies the process by facilitating data collection in the same format across learning applications. This makes the data warehousing issue much simpler.

Data Definitions: One challenge with working with LMS data is you have to read the API documentation to understand how certain data types are collected, and even then, sometimes you still can’t figure out what a specific event means. One of the requirements of a xAPI statement (not shown above), is to include a verb identifier for each unique verb. This verb identifier is a URL that points to a definition of the verb. This gives learning application developers specific guidelines to follow in the development process and provides practitioners and researchers information to understand how the data was collected. This is often the most challenging part about working with a new data set and the experience is greatly improved when working with xAPI statements.

Real-time Access: Learning management systems usually have an API that allows you to extract data provided you have the proper credentials. However, there are rate limits on these API’s that restrict the amount of real-time analysis and reporting that can be done. The xAPI data format along with a learning record store (LRS) circumvent this problem. An LRS is xAPI lingo for a NoSQL database. This means that statements are stored as JSON objects (see image above) in a collection. If you have your own LRS set up on a server, you can store xAPI statements from any type of learning application (provided that the application allows you to send data from their system to your LRS). Another alternative would be to develop your own learning applications that then collect analytics data in the form of xAPI statements to be sent to your own LRS. Having your own LRS means you have access to your data for real-time reporting or real-time analysis.


Leave a Comment

Your email address will not be published. Required fields are marked *