Skip to content

xAPI — the Experience API, Learning Record Stores, and the tools that support it

A way to record that somebody did something, anywhere, and keep it in a store you control.

Written and maintained by the scorm-tools.com editor. 35 listed tools state support.

What xAPI is

The Experience API — xAPI, and Tin Can API before that — describes learning as statements rather than as course sessions. A statement has three required parts: an actor, a verb and an object, as in "Ilarion completed the fire-safety induction", plus optional result, context, timestamp and attachments. Statements are sent over HTTP as JSON to a Learning Record Store, which is any service implementing the xAPI endpoints for storing, querying and returning them.

The difference from SCORM is where the boundary sits. SCORM describes content running inside an LMS and reporting to that LMS. xAPI describes an event happening anywhere — a simulation, a mobile app, a piece of equipment on a factory floor, a classroom sign-in — reported to an LRS that need not be an LMS at all, and that can be queried by anything with credentials.

In exchange for that reach, xAPI says nothing about how content is packaged, how it is launched, how it learns which LRS to talk to, or what any verb means. That looseness is why profiles exist: cmi5 supplies the missing launch-and-package contract for course content, and other profiles fix vocabularies for particular domains. ADL stewarded the specification to 1.0.3; it is now maintained at IEEE.

Versions and what changed

Release history of xAPI
Version Released What changed
0.9 / 0.952011–2012Project Tin Can drafts, published for comment. Some early products still carry the Tin Can name.
1.0.0April 2013First stable release of the Experience API.
1.0.1October 2013Corrections and clarifications.
1.0.22014Further errata.
1.0.3October 2016Final ADL release, and the version most products state support for.
2.0 (IEEE 9274.1.1-2023)2023Stewardship moved to the IEEE Learning Technology Standards Committee; the specification was reorganised and published as an IEEE standard.

Who says so

We link to the specification and to other people's registries. We do not run a conformance programme and we do not issue badges of our own: a claim here is registry-verified only when an official registry says so, and otherwise it is marked as the vendor's statement or as our own check on a date.

Specification

Registry

  • ADL LRS Conformance Test SuiteRegistry retired Nov 2025

    The test itself, which anyone can run against an LRS. ADL retired the hosted Adopter Registry on 18 November 2025 as part of its lifecycle management, so there is no longer a public list of which products passed — only the suite, free to self-host. A vendor can still show you its own run; nobody publishes a neutral result.

  • xapi.com adopters

    A self-reported directory run by Rustici Software. It states plainly that entries are not conformance-tested, so we treat it as a vendor statement rather than verification.

Tools that support xAPI

Grouped by what the tool does, and within each group ordered by how well the claim is evidenced: registry entries first, then facts we checked ourselves, then the vendor's own statement.

Authoring tools & course frameworks

Authoring tools & course frameworks that support xAPI
Tool Evidence Licence Pricing
CourseCodeCode-first course framework and CLI that packages to SCORM, cmi5 and LTI 1.3editor-checked— source, opens in a new tab Checked MITOpen source
H5P (core PHP library)The framework behind H5P interactive content — not, on its own, a SCORM tooleditor-checked— source, opens in a new tab Checked GPL-3.0Open source
LessonKitAuthor courses as React components, then export SCORM, xAPI or cmi5 from the same codebaseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
LiaScript ExporterTurns a Markdown course into a SCORM 1.2, SCORM 2004, IMS or xAPI package from the command lineeditor-checked— source, opens in a new tab Checked BSD-3-ClauseOpen source
Xerte Online ToolkitsServer-hosted, template-driven authoring for institutions, with SCORM and xAPI exporteditor-checked— source, opens in a new tab Checked Apache-2.0Open source
Adapt FrameworkResponsive HTML5 course framework whose SCORM output is a bundled pluginvendor-stated— source, opens in a new tab Checked GPL-3.0Open source

Converters & migration

Converters & migration that support xAPI
Tool Evidence Licence Pricing
Learning Records ConverterPython API that maps SCORM 2004, IMS Caliper and Matomo traces into xAPIeditor-checked— source, opens in a new tab Checked GPL-3.0Open source
SCORM-to-xAPI WrapperADL's drop-in APIWrapper.js that re-emits SCORM calls as xAPI statementseditor-checked— source, opens in a new tab Checked noneOpen source

Testing, validation & conformance

Testing, validation & conformance that support xAPI
Tool Evidence Licence Pricing
PrismUnzips a SCORM, AICC, cmi5 or xAPI package and runs axe-core over every page in iteditor-checked— source, opens in a new tab Checked MITOpen source
xAPI LRS Conformance Test SuiteADL's Node.js suite that runs the MUST requirements of the xAPI spec against a live LRSeditor-checked— source, opens in a new tab Checked MITOpen source

Packagers, SDKs & libraries

Packagers, SDKs & libraries that support xAPI
Tool Evidence Licence Pricing
SCORM Cloud API v2 clientsRustici's generated client libraries for the SCORM Cloud REST API, in six languageseditor-checked— source, opens in a new tab Checked Apache-2.0Open source
TesseraAuthor a course as Svelte pages, then export the same source as SCORM, cmi5 or xAPIeditor-checked— source, opens in a new tab Checked MITOpen source
eLearning Module ParserJava library that detects and parses SCORM, AICC, cmi5 and xAPI packages into typed metadatavendor-stated— source, opens in a new tab Checked Apache-2.0Open source

LMS & LMS plugins

LMS & LMS plugins that support xAPI
Tool Evidence Licence Pricing
ILIASGerman open-source LMS carrying SCORM 1.2, SCORM 2004 and cmi5 objects in coreeditor-checked— source, opens in a new tab Checked GPL-3.0Open source
Open edXThe large self-hosted learning platform, with SCORM and xAPI arriving via pluginseditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
Chamilo LMSFull open-source LMS with SCORM 1.2 and AICC learning paths and a bundled LTI pluginvendor-stated— source, opens in a new tab Checked GPL-3.0Open source
Opigno LMSDrupal distribution turned LMS, with SCORM and xAPI handled by its own modulesvendor-stated— source, opens in a new tab Checked GPL-2.0-or-laterOpen source

xAPI & cmi5

xAPI & cmi5 that support xAPI
Tool Evidence Licence Pricing
@xapi/cmi5A typed JavaScript client that handles the cmi5 handshake for you inside a courseeditor-checked— source, opens in a new tab Checked MITOpen source
ADL LRSADL's own open-source learning record store, now tracking xAPI 2.0editor-checked— source, opens in a new tab Checked Apache-2.0Open source
ADL xAPIWrapperADL's own JavaScript wrapper for talking to an LRS, built against xAPI 1.0.1editor-checked— source, opens in a new tab Checked Apache-2.0Open source
Apereo OpenLRWJava learning record warehouse for xAPI, Caliper and OneRoster data, dormant since 2020editor-checked— source, opens in a new tab Checked ECL-2.0Open source
CATAPULTADL's cmi5 player, content test suite and LMS test suite in one repositoryeditor-checked Checked Apache-2.0Open source
cmi5 Client Library (ADL)ADL's archived JavaScript wrapper and example AU for the content side of cmi5editor-checked Checked Apache-2.0Open source
cmi5.jsRustici's JavaScript runtime for the assignable-unit side of a cmi5 courseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
cmi5launch for MoodleADL's Moodle activity module that launches cmi5 content via the CATAPULT playereditor-checked— source, opens in a new tab Checked Apache-2.0Open source
Learning Locker (Community)The best-known open-source LRS, with no commit on master since November 2021editor-checked— source, opens in a new tab Checked GPL-3.0Open source
lxHiveSmall PHP and MongoDB Learning Record Store for xAPI 1.0.xeditor-checked— source, opens in a new tab Checked GPL-2.0Open source
moodle-logstore_xapiTurns Moodle log events into xAPI statements and posts them to an LRSeditor-checked— source, opens in a new tab Checked GPL-3.0Open source
RalphA Python xAPI LRS, CLI and data-pipeline toolbox from France Universite Numeriqueeditor-checked— source, opens in a new tab Checked MITOpen source
RapidCMI5Desktop authoring tool that outputs cmi5 packages, aimed at TLA programmeseditor-checked— source, opens in a new tab Checked AGPL-3.0Open source
SQL LRSAn xAPI learning record store that runs on SQLite or your existing SQL databaseeditor-checked— source, opens in a new tab Checked Apache-2.0Open source
TinCanJSRustici's original JavaScript xAPI library — still the most-linked, unchanged since 2016editor-checked— source, opens in a new tab Checked Apache-2.0Open source
TRAX LRSA deliberately minimal self-hosted xAPI Learning Record Store built on Laraveleditor-checked— source, opens in a new tab Checked GPL-3.0Open source
xAPI JavaImmutable xAPI model and Spring-based LRS client for Java, actively releasededitor-checked— source, opens in a new tab Checked Apache-2.0Open source
xAPI.jsStrongly typed TypeScript client for the xAPI 1.0 Statement and State APIseditor-checked— source, opens in a new tab Checked MITOpen source

Choosing between them

xAPI or SCORM?

If the thing you are tracking is a course that an LMS launches and grades, SCORM already solves that and is supported everywhere. If it is anything else — or if you want the data somewhere other than the LMS — xAPI is the only one of the two that can express it.

xAPI or cmi5?

They are not alternatives. cmi5 is xAPI with the launch, packaging and completion rules filled in. If you are shipping a course to an LMS, you almost certainly want cmi5 rather than raw xAPI.

Questions people ask about xAPI

What is a Learning Record Store?

A service that implements the xAPI endpoints: it accepts statements, stores them, and returns them to authorised clients. Some LMSs include one; most LRSs are separate products, and several are open source.

Is Tin Can API the same as xAPI?

Yes. Tin Can was the project name during development; the specification was renamed the Experience API before 1.0. Products still using the old name are usually stating support for 1.0.x.

Does xAPI replace SCORM?

Not on its own. xAPI has no packaging format and no launch mechanism, so it cannot be dropped into an LMS the way a SCORM ZIP can. cmi5 is the piece that makes that comparison fair.

What changed in xAPI 2.0?

It was published as IEEE 9274.1.1-2023 after stewardship moved from ADL to the IEEE LTSC. The document was restructured and clarified rather than redesigned, and 1.0.3 content remains broadly compatible.

How do I know an LRS is conformant?

Check ADL’s adopters list, which records products that have passed the LRS conformance test suite. A vendor page saying "xAPI compliant" is a claim; the adopters list is a test result.

The other standards

SCORM 1.2
The oldest version of SCORM still in daily use, and still the safest export format when you do not control the target LMS.
SCORM 2004
The second generation of SCORM: a larger data model, and sequencing rules the LMS is required to enforce.
cmi5
The xAPI profile that supplies what xAPI deliberately left out: how an LMS launches a course and how the two agree it is finished.
AICC
The pre-SCORM interoperability rules, still worth knowing because HACP crosses domains where SCORM cannot.
LTI
A launch protocol, not a packaging format: the LMS sends the learner to a tool that stays where it is.