ADL xAPI Launch

An algorithm for launching xAPI learning experiences.

ADL xAPI Launch

Our Goals

ADL started the investigation into a launch mechanism after finding some issues in configuring xAPI content examples. The investigation led to the creation of the xAPI Launch algorithm based on the following goals:


No Hard Coded Configuration

xAPI Launch enables ISD/developers to track learning experiences from any resource without some out-of-band method to add LRS credentials to the content, and without asking the user to input these credentials into some untrused third-party system.

Launch returns configuration details to the content after a token exchange.


Avoid PII in URL query strings

The launch mechanism cannot provide data that could potentially reveal personal information about the user.

This is accomplished by only providing a token and temporary enpoint. Content exhanges that token for the configuration details.


Support Launching Many Different Types of Content

Not all xAPI content is hosted on a server. The launch solution needs to support various content types, including static HTML, server rendered content, and non-HTML sources.

xAPI Launch allows for different methods of providing the content with the launch token, allowing for solutions like HTTP URL query strings, URL Protocol Handlers, and manual entry of the token.



xAPI Launch needs to provide means to securely communicate with the content.

xAPI Launch supports encrypting the launch token with the content's registered public key and through the use of HTTP cookies.

How xAPI Launch Works

Above is a short video on how the xAPI Launch algorithm works. You can find the complete list of steps on the xAPI Launch project page.

Getting Started

The ADL xAPI Launch project is an algorithm to provide xAPI configuration details to xAPI content, whether it as a hosted Learning Record Provider, a mobile app or a simulator. The project isn't software, but a process developers can implement. However there are tools to helpyou get started with xAPI Launch.


The Algorithm

The algorithm is comprised of the steps a system would use to initialize and configure the xAPI content. Following these steps, and the launch API, a developer could integrate xAPI launch into their existing systems.

xAPI Launch Algorithm


The Launch API

The launch API defines the endpoints a xAPI launch server needs to implement. It is comprised of 3 POST endpoints for exchanging the launch token, sending statements, and terminating the launched session. One final section defines the URL query string format.

xAPI Launch API


The Launch Server Example

The launch server example is an open source implementation of the launch algorith and API. It can either be downloaded and installed locally from the GitHub project page or it can be accessed from the hosted URL.

GitHub Project

Hosted Example


The xAPIWrapper

The xAPIWrapper is a client javascript library that simplifies communication with an LRS. The current version of the xAPIWrapper supports xAPI Launch. View the GitHub project page for instructions on how to use the wrapper with launch.

xAPIWrapper with Launch


Statement Builder

Use an editor to generate statements and send them through xAPI Launch to an LRS!


Launch a demo of the xAPI YouTube project to record video events to xAPI.

ADL Example xAPI Launch Server

Explore ADL's example xAPI Launch server.