Developer Overview

Starting with xAPI is quite simple, and many developers comment on how easy xAPI is to work with compared to other learning standards and specifications. There’s a lot of detail you can get into though, and this section of the site takes you through that detail step by step. Our Frequently Asked Questions and Answers page for developers is a great resource for those starting out. It answers questions like, “What is a statement and how do I send one?” and “What’s the best practice for authentication?” 

xAPI statements

You’ve been introduced to statements in the answers to the questions above. They’re the bread and butter of xAPI and dictate the format for the specific moments in a stream of activity. As a developer working with xAPI, you’ll become very familiar with statements.

We’ve produced the following resources to help.

  • Statements 101 takes you through the basics of statements that you need to know in order to start with xAPI.
  • Statement Explorer is an interactive example statement that explains the high level structure of the statement.
  • xAPI Lab is a tool that supports you to build your statement and send it to an LRS.
  • Statements Deep Dive takes you beyond the basics to help you get the most out of xAPI.


xAPI also enables the storage and retrieval of Documents. Documents can be anything from a video recording of the experience, to a JSON document containing bookmarking data. Read more here:


xAPI defines a query API that’s used to get statements out of a Learning Record Store (LRS). This API is primarily designed for transfer of statements between LRSs, though it can be used for simple reporting. It’s envisaged that for more complex queries and reporting, systems will fetch all relevant statements from the LRS and then store and aggregate them in an appropriate format for reporting. Explore reporting.


For learning experiences to be tracked against a learner to that learner’s LRS, the activity provider providing that experience needs to know who the learner is and what LRS to send the data to. There are three ways it can get that information:

  • The learner logs into the activity provider; LRS details are configured within the activity provider.
  • The learner is logged on by single sign on. LRS details may be passed as part of this process or configured within the activity provider.
  • The activity provider is a piece of content that is launched; learner and LRS details are sent by the launching system to the activity provider with the learner.

Read about how to launch xAPI content here.


The systems, platforms and tools that make up an xAPI powered learning ecosystem are different from those used with previous learning interoperability specifications. We covered the Enterprise Learning Ecosystem as part of the Understand section of the site. If you’ve not dug into that section yet, you should!


Many developers are coming to xAPI from SCORM. If you’ve got existing SCORM content or templates, take some time to explore three different approaches to migrating existing SCORM content to xAPI.

As you start to develop with xAPI, you’ll see that there are a number of technical differences. These are outlined below.

Used to track a particular style of eLearning course uploaded to an LMS. Used to track any learning experience, many of which happen outside the LMS.
Includes run-time communication, content aggregation and sequencing and navigation. Only covers communication. Content aggregation is less important in the modern connected world; sequencing and navigation are left to the content to manage and do not need to be standardized.
Uses a JavaScript API with either frames or pop-ups. Uses RESTful HTTP requests.
Limited to JavaScript based content. Can be used with any programming language.
Strict definition of data that’s communicated with restrictive limits on length. Very flexible with fewer limitations.

Read more about the differences between SCORM and xAPI.

Questions about xAPI? Ask us anything.