What does xAPI support mean in an LMS?
When an xAPI LMS claims support, it can mean three different things: it can launch xAPI content, it has a built-in learning record store (LRS) that stores statements, or it forwards statements to an external LRS. Many LMSs do one or two of these, not all three. Ask which, specifically, before you build.
The confusion comes from how xAPI is designed. SCORM defines both a package format and a runtime that the LMS provides, so "supports SCORM" has a fairly clear meaning. xAPI is different: it defines how learning activity is recorded as statements and sent to an LRS, but on its own it does not define how an LMS should launch content or track a course. So two platforms can both truthfully say "we support xAPI" and mean completely different features. A plain-language introduction to statements is in what is xAPI.
Launching xAPI packages
The first capability is launching. Content built for xAPI is often exported as a zip containing a tincan.xml file, a convention from the original Tin Can launch approach. The LMS reads that file to find the launch page, then opens it with extra information added to the URL: the LRS endpoint, credentials to post with, and who the learner is. Without that information, the content has nowhere to send statements.
An LMS that cannot do this can still host xAPI content as a link or web page, but the content will not know who the learner is or where to report, so nothing reaches a record store. That is a common way for xAPI pilots to fail quietly: the course plays and the reports are empty.
Launch support also tells you what the LMS does with the results. Some platforms read statements back to set course completion; others only pass them through and leave completion as a manual or separate rule.
Built-in LRS or external LRS?
Statements have to land in an LRS. There are three common arrangements:
| Setup | What it means | Watch for |
|---|---|---|
| Built-in LRS | The LMS includes its own LRS and stores statements itself | Whether you can query or export raw statements, or only see summary reports |
| External LRS | The LMS launches content but statements go to a separate LRS you choose | Whether the LMS can still mark completion from those statements |
| Both | A built-in LRS that can also forward statements to another LRS | Which store is the record of truth if they disagree |
A built-in LRS is convenient but can limit what you do with the data later. An external LRS keeps the data portable and lets several systems report to one place, at the cost of another system to run. What an LRS stores, and when you need a separate one, is covered in what is a learning record store.
Why cmi5 is the better question
If you want an LMS to assign, launch and track xAPI courses the way it does SCORM courses, the precise question is whether it supports cmi5. cmi5 is the xAPI profile that defines exactly that: a course structure file, how the LMS launches each unit, how the content gets its credentials, and which statements mean launched, completed, passed and failed.
That precision helps in two ways. A vendor that supports cmi5 has implemented a defined set of behaviours you can test, rather than a loose "xAPI support" claim. And content built for cmi5 behaves predictably across platforms that support it, which was the original promise of SCORM. The details are in what is cmi5.
If a platform supports xAPI statements but not cmi5, you can still collect rich activity data, but launch and completion will work in whatever way that vendor chose, and may not carry over to another platform.
Questions to ask your LMS vendor
Ask these in writing, and ask for the documentation that backs each answer:
- Can the LMS import and launch an xAPI package that uses
tincan.xml? - Does it support cmi5 course packages, and which version of the cmi5 specification?
- Does it include an LRS? If so, can we query statements directly through the xAPI interface or export them?
- Can it send statements to an external LRS we choose, and can it still set completion from them?
- Which statements does it use to mark a course complete or passed?
- Can xAPI and SCORM courses sit in the same catalogue and appear in the same reports?
Vague answers to questions three and five are the ones to press on. They decide whether you can actually use the data you are collecting.
A quick test you can run
Do not rely on a feature list. Before committing, run a small end-to-end test:
- Upload a simple xAPI package, and a cmi5 package if cmi5 support is claimed.
- Launch each as a test learner and complete it.
- Check the LMS shows the course as completed for that learner.
- Look in the LRS, built-in or external, for statements with that learner's identity and the expected verbs.
If the statements are there but the LMS shows the course as not started, launch works but completion tracking does not. If no statements arrive, launch is not passing the LRS details to the content. Either result tells you more than a sales call.
Where SCORM Central fits
SCORM Central converts files you already have — PDF, PowerPoint, Word, or video — into SCORM 1.2, SCORM 2004, cmi5, or xAPI, and shows you the manifest, the full runtime log, and a conformance report on every build, so you can see exactly what a package will report before an LMS does. See how it works, or start with one file.