TXTRAX LRS
Community

xAPI 2.0

TRAX LRS 4.0 has successfully passed the xAPI 2.0 conformance test suite — the latest version of the standard.

With this milestone, TRAX LRS joins the very select club of LRS that support every historical version of the standard.

Let's look at why this matters.

A standard recognised by the IEEE

xAPI 2.0 is the first version of xAPI to be formally recognised by the IEEE, published as IEEE Std 9274.1.1-2023.

It is part of a much broader vision — the Total Learning Architecture (TLA), an overarching architecture model promoted by ADL that brings together learning experience tracking, the referencing of learning resources, competency management, and learner profiling.

All of these building blocks are now backed by the IEEE, providing a stable, vendor-neutral technical framework for the data infrastructure that powers modern learning ecosystems.

Dual support in TRAX LRS

xAPI does not require a Learning Record Store to support every version of the standard. An LRS can be 1.0-compliant only, 2.0-compliant only, or support both.

We chose the last option for TRAX LRS — and for good reasons.

Version 1.0, although it dates back to 2013, remains by far the most widely adopted version on the market. Since the LRS sits at the very heart of the learning ecosystem, preserving this compatibility was non-negotiable.

Version 2.0, on the other hand, carries the weight of IEEE recognition and enriches the standard with new capabilities. As TRAX LRS aims to be a cornerstone of modern learning data infrastructures, conformance with 2.0 was equally essential.

TRAX LRS 4.0 therefore offers dual support. You can choose to use a single version or both — and the choice is made independently for each store, giving you all the flexibility you need across your projects.

New possibilities

xAPI 2.0 stays largely compatible with 1.0: the changes are deliberately incremental. But the data model does gain a few welcome capabilities that we'd like to highlight here.

The most interesting one is the ability to associate several Agents and Groups with a learning record's context, while describing the exact role each of them played. Until now, the context could only name a single instructor and a single team. From now on, a single statement can faithfully capture the many people involved in an experience — and what each of them was there to do.

Here are a few examples.

Multi-role team training

In a healthcare simulation, a single event — "the resuscitation procedure was completed" — typically involves several people, each with a distinct role. xAPI 2.0 lets you record all of them on the same statement, instead of losing that information or splitting it across many records.

{
  "actor": { "name": "Dr. Lee", "mbox": "mailto:lee@example.com" },
  "verb": { "id": "http://adlnet.gov/expapi/verbs/completed" },
  "object": { "id": "https://example.com/activities/resuscitation-drill" },
  "context": {
    "contextAgents": [
      {
        "objectType": "contextAgent",
        "agent": { "name": "Nurse Patel", "mbox": "mailto:patel@example.com" },
        "relevantTypes": ["https://example.com/roles/assisting"]
      },
      {
        "objectType": "contextAgent",
        "agent": { "name": "Observer Garcia", "mbox": "mailto:garcia@example.com" },
        "relevantTypes": [
          "https://example.com/roles/assessor",
          "https://example.com/roles/debriefer"
        ]
      }
    ]
  }
}

Notice that a single agent can carry several roles at once — here, Observer Garcia was both the assessor and the debriefer.

Mentoring and coaching

Workplace learning is rarely a solo activity. With xAPI 2.0, you can record who mentored or coached a learner during an experience, beyond the formal "instructor" relationship.

{
  "actor": { "name": "Alice", "mbox": "mailto:alice@example.com" },
  "verb": { "id": "http://adlnet.gov/expapi/verbs/experienced" },
  "object": { "id": "https://example.com/activities/onboarding-week-1" },
  "context": {
    "contextAgents": [
      {
        "objectType": "contextAgent",
        "agent": { "name": "Bob", "mbox": "mailto:bob@example.com" },
        "relevantTypes": ["https://example.com/roles/mentor"]
      }
    ]
  }
}

Collaborative group work

When learning happens in teams, xAPI 2.0 lets you attach one or more groups to a statement — identified or anonymous — and describe their role in the activity.

{
  "actor": { "name": "Alice", "mbox": "mailto:alice@example.com" },
  "verb": { "id": "http://adlnet.gov/expapi/verbs/completed" },
  "object": { "id": "https://example.com/activities/group-project" },
  "context": {
    "contextGroups": [
      {
        "objectType": "contextGroup",
        "group": {
          "objectType": "Group",
          "name": "Cohort A",
          "member": [
            { "mbox": "mailto:alice@example.com" },
            { "mbox": "mailto:bob@example.com" }
          ]
        },
        "relevantTypes": ["https://example.com/roles/project-team"]
      }
    ]
  }
}

The real power comes afterwards: TRAX LRS indexes every agent and group mentioned in these new context properties — including group members. That means you can later retrieve every statement where a given person was involved, in any role — mentor, assessor, teammate or observer — and build richer reports than ever before.

This is exactly the kind of foundation modern learning ecosystems need. And it's available today, in TRAX LRS 4.0.