What this checks
- Required properties — actor, verb, and object must all be present.
- Actor identity — exactly one inverse functional identifier (mbox, mbox_sha1sum, openid, or account), correctly formed.
- Verb — a valid IRI id, plus a recommended display language map.
- Object — Activity (IRI id), Agent/Group, StatementRef (UUID), or SubStatement, validated by type.
- Result — score.scaled in −1…1, raw within min/max, ISO 8601 duration.
- Context — registration UUID, instructor/team agents, context activities.
- Identifiers & dates — statement id as a UUID, ISO 8601 timestamps with a timezone, version 1.0.x.
What is an xAPI statement?
xAPI — the Experience API, originally Tin Can API — records learning experiences as JSON in an actor–verb–object form: "who did what to what". Statements are sent to a Learning Record Store (LRS). Unlike SCORM, xAPI can track learning that happens anywhere — not just inside an LMS — which is why it's the backbone of modern learning-record tracking.
Why is my xAPI statement rejected?
The most common reasons an LRS rejects a statement — all checked here:
- Verb id isn't an IRI.
"completed"is invalid; it must be a full IRI likehttp://adlnet.gov/expapi/verbs/completed. - Actor has no identifier. An Agent needs exactly one of mbox, mbox_sha1sum, openid, or account.
- Object is missing its id. An Activity object must have an IRI id.
- score.scaled out of range. It must be between −1 and 1 (not 0–100).
- Bad timestamp. It must be ISO 8601 with a timezone, e.g.
2026-06-19T14:30:00Z.
Frequently asked questions
Is my data uploaded anywhere?
No. Everything runs in your browser with JavaScript — your statement never leaves your computer.
Which version does it validate against?
The xAPI 1.0.x specification, which covers the vast majority of statements in production today.
Does a "valid" result mean my LRS will accept it?
It means the statement is structurally conformant. Individual LRSs may enforce extra rules (profile requirements, extension schemas), so treat a valid result as a strong signal rather than a guarantee.
What's the difference between xAPI and SCORM?
SCORM packages and tracks courses inside an LMS; xAPI records any learning experience to an LRS. Need the other standard? Try our SCORM Validator and SCORM Debugger.