Contact Us Support Forum Get Email Updates

Thanks! Someone will be in touch with you shortly.

Rather just email us? Email us here.
Rather speak with someone in person?
Call any time with Experience API questions:


What’s the difference between the Experience API (xAPI) and SCORM?

Posted by

Categories: Standards, xAPI

Posted 11 January 2013


We have many folks that come to us from the SCORM world and want to know the difference between SCORM and xAPI. I answer this question so much that I thought its worth addressing (at a pretty high-level) in this blog post.

First, I’ll unpack the limitations of SCORM (much of this you may already be aware of).

  1. SCORM is reliant on a web browser. This means it’s impossible to track learning or job performance experiences that happen outside of a web browser using SCORM. Examples: a CPR dummy, a drivers ed simulation, etc.
  2. SCORM is usually reliant on a constant Internet connection. This means it’s extremely difficult to track disconnected learning or job performance experiences using SCORM. There are a couple of offline SCORM players out there. We have one that’s works really well, but most of them are typically unstable (SCORM just wasn’t intended to be used this way).
  3. SCORM content must be played via an LMS. We’re among those that believe most of our learning takes place outside of the LMS. With SCORM’s reliance on an LMS to play and track, the majority of our learning experiences (our most valuable learning experiences at that) are not being tracked today.
  4. SCORM can only track a single learner. This means it’s impossible to track team-based learning using SCORM.
  5. SCORM can only track a limited number of things, i.e. completion, time spent in course, pass/fail, a single score. This means there is no way for SCORM track anything beyond a course or assessment (and actually provides very little data for each).

There are other limitations of SCORM, but most are a result of the limitations listed above.

So how is xAPI different, and we would argue better, than SCORM? Simply put, it does away with all of the limitations listed above. Here are a few key benefits of the Experience API.

  1. The Experience API can track any experience, anywhere. We’re no longer reliant on a web browser, constant Internet connection or an LMS in order to play and track our experiences. This opens up a world of opportunities for organizations and institutions needing to train their folks. Organizations will now be able to supplement their LMS learning with learning experiences that live outside of the LMS, and use their LMS as the central repository for all of their learning records if they choose to. Some may decide to do away with their LMS entirely and replace with xAPI focused solutions.
  2. The Experience API uses a simple, flexible, but robust statement structure to track experiences. ‘I did this’ (Noun, Verb, Object) is the core of every xAPI Statement. Examples: ‘Andy attended DevLearn 2012’. ‘Andy resuscitated CPR dummy’. ‘Andy closed a $30,000 SCORM Engine deal’. This simple structure allows us to track any experience in any context.
  3. The data that the Experience API tracks is intended to be portable (unlike SCORM). xAPI Statements are sent to and stored in a Learning Record Store, which can be integrated with an LMS (see our xAPI Engine solution). The LRS is designed to store these statements, but is also designed to distribute these statements to other systems that have support for the Experience API, i.e. another LRS, an LMS, a reporting tool, a HR management system, a Talent Management System, etc.
  4. Because the Experience API can be used to track any experience, anywhere, organizations can also use it to track performance support and job performance. In our opinion, this is the holy grail of big data. When an organization is tracking their learning/training, performance support and job performance using the same language, i.e. xAPI, they will be able to determine the effectiveness of their training programs and measure ROI.

There are numerous other benefits of the Experience API, many of which can be found in our “Layers of the xAPI Onion” article on Here’s a PDF of this article if you’d like to take it with you.

If you still have questions after reading this about how the Experience API, and technologies that adopt it, can benefit your organization, please feel free to reach out. We’re always happy to help!

  • Andy, While I agree with your account of the limitations of SCORM, which TinCan solves, I think it is only fair to say that TinCan also aims to do less than SCORM (albeit it probably does the less it does better).

    A typical process for using SCORM might go like this:

    1. instructor logs onto LMS and assigns task to student;
    2. student logs onto LMS and selects assignment;
    3. LMS launches assigned activity, passing necessary parameters;
    4. activity suspends, saving state on LMS;
    5. student re-launches assigned activity at a later time, state being retrieved from LMS so no work is lost;
    6. activity terminates after completion, reporting learning outcomes to LMS;
    7. LMS makes sequencing decision, launching next activity automatically, passing appropriate parameters;
    8. second activity terminates, reporting learning activity outcomes to LMS;
    9. LMS rolls up reported outcome data from the two activities, reporting back to student & instructor.

    The equivalent process for TinCan would go like this:

    1. student launches learning activity on own initiative;
    2. activity terminates, reporting outcome data to LRS;
    3. LRS reports outcome data to instructor.

    This process does not offer any assignment or session management, which is normally an important part of formal education.

    Another limitation of TinCan is the complexity of data that is currently passed. Although the data that could be reported by SCORM is fixed, it did allow for a fairly full dataset. TinCan just allows one piece of data to be passed at any one time – the verb. In theory you can say , where [result] is a cut-down version of the SCORM dataset, this does not seem to be the version of TinCan that anyone is implementing.

    To take one of the examples that you quote,

    Subject: “Andy”
    Verb: “closed”
    Object: “a $30,000 SCORM Engine deal”

    – you are rather overloading the object. If I then report:

    Subject: “Crispin”
    Verb: “closed”
    Object: “a $40,000 SCORM Engine deal”

    the LRS is not aware that there is any relationship between what I did and what you did – they are two totally distinct “objects”. It is one thing to report this data, another to make use of it productively. We do not yet know that LRSs are going to be useful.

    A better approach to reporting this kind of information would surely be:

    Subject: “Andy”
    Verb: “closed”
    Object: “a deal”
    Context: “product = SCORM Engine”
    Result: “value= $30,000”

    Allowing analytics engines to search e.g. for all the other deals that Andy did, and all the different values…but this requires support for data model extensions as neither “product” nor “value” are part of the data models that TinCan has inherited from SCORM. And TinCan does not have such a thing at the moment.

    I think TinCan is a good initiative – but it only represents the first steps. I think it is important that it is marketed as a work-in-progress – and the ways in which it needs to develop are also discussed.

    Best, Crispin.

  • Hi Crispin,
    In Andy’s defence, as a fellow xAPI blogger I have also been guilty of oversimpliftying

  • hi Crispin,

    in Andy’s defence as a fellow xAPI blogger, I have also simplified statements to make the blog clearer. of course the structure you suggest would be how the statement was structured, but a blog is not a how to and sometimes things need to be simplified in order to make the point of what is possible more clearly.

    you also raise important points that xAPI does nothing to help with sequencing and launch. in fact these were deliberate decisions to get out of the way and allow learning activities to launch and sequence in any way they like. There are ways of doing both launch and sequencing with xAPI and I can direct you to guides if that would be helpful.crucially these methods are not required and xAPI allows you to report learning activities for which the concepts of sequencing and launch do not make sense.

    the assignments example you cite is an interesting one. A lot of people assume that everything their LMS does is powered by SCORM. Actually, many LMS features have nothing to do with SCORM and many could be improved by integrating with xAPI. Assignments are one such feature.

    I hope that helps relieve some of your fears. xAPI is currently in Beta, but we expect the 1.0 release due in the spring to be fairly similar to what we have now with 0.95. We are nearly there.

  • Hi Andrew,

    Your provisos about blogging understood and I don’t want to be a pedant or rain on anyone’s party. I do think TinCan is a very good way ahead and breaks the SCORM logjam. All I was raising a warning over what might be a misleading comparison with SCORM (which has suffered a great deal from misunderstanding already) I think what people should say is something along the lines of “TinCan does reporting in a much more flexible way than SCORM and opens a lot of interesting possibilities for new approaches to some of the other aspects of runtime interoperability that SCORM covers”.

    Re. sequencing and launch – it is not so much the launch itself (or the assignment functionality which is of course internal to the LMS) as the launch parameters that require an interoperable solution. Parameters are a key aspect of contextualisation and adaptability, which is in turn a key prerequisite for reusability – the great holy grail.

    Similarly with sequencing – anyone can implement a proprietary solution to sequencing but if a sequence (or composite activity) cannot be shared, then this becomes a serious barrier to collaboration in the creation of learning processes. It means, for example, that a K-12 teacher moving jobs is likely to have to leave all his/her digital schemes of work behind, if the new school uses a different LMS. I have been told by a Head Teacher that the accumulated schemes of work brought by a newly recruited but experienced member of staff is of serious value – and is a serious loss in the current non-interoperable state of digital learning.

    I have been involved in a lot of work on these problems through LETSI (see sequencing video at – and tracked Mike Rusticci’s work within LETSI on the Run Time Web Services project, which formed the basis for TinCan. You say that “xAPI allows you to report learning activities for which the concepts of sequencing and launch do not make sense” – I think “are irrelevant” rather than “do not make sense” may be more to the point. But they *are* relevant to SCORM (making my main point that TinCan addresses a different set of use cases to SCORM) and they are critical to formal education.

    So what we have is:

    * TinCan addresses informal (student initiated) learning;
    * TinCan + [extra pieces] may in the future address formal (instructor-initiated) learning already covered (unsatisfactorily) by SCORM.

    * TinCan + [structured extensions] will allow new types of data to be exchanged *and used*.

    That’s fine – these things take time. My fear is that over-exuberant marketing might kill TinCan as a long-term project by over-selling the early baby steps and sapping the project of forward momentum. A lot of people who might not have thought very deeply about this may not realise how much there is still to do. You are *not* nearly there – really – you have only just started…

  • AndyWhitaker

    Thanks guys for contributing to the conversation. We love seeing this level of engagement! Crispin, the collaboration with AICC CMI-5 is meant to help with a number of your concerns, like launch and sessions. We welcome you to join the xAPI ADL calls to share your thoughts and concerns, as well as become involved in the CMI-5 collaboration to the extent you feel comfortable:

  • P K Sengupta

    Can you please help me to understand why an organisation that wants to offer e-learning to its personnel should bother about SCORM and xAPI? Surely the organisation’s priority would be an LMS’ The contents of various courses would vary depending upon the trainers’ requirements. As long as the LMS supported various formats of contents, the LMS Administrator would let the trainers decide. It might even be PowerPoint converted to Flash

  • Yazid

    Using SCORM as a Standardization would help the companies in reusing their content in different LMSs, selling it to others, being independent of a specific LMS is the goal.
    TinCan Upgrade is interesting for tracking purposes, as Training process is not restricted to show content to a student, you should understand this student’s needs and requirements through an interactive plateform, which is provided by the TinCan Upgrade.

  • Yazid

    Hello Crispin,
    Does those limitations, you mentioned in your comment still applicable? or they are fixed after four years?

  • Crispin Weston

    Hi Yazid, no – I am not aware of any significant advances. I am not quite as close to the action as I was 3 or 4 years ago, but I think news would have filtered through if I was wrong. Let me know if you find out anything differently! Crispin.

  • Crispin Weston

    I would add to what Yazid says that it is not just about content reuse, but the whole idea of abstracting from the so-called “content” the software engines that can deliver rich interaction and feedback. This is a serious undertaking and most instructional software is deficient in this respect. So long as people think that they can develop useful content from scratch, this will continue to be the case. See for example Tyton Partners’ review of current courseware “High awareness and adoption of digital courseware…stand in stark contrast to broad dissatisfaction with courseware and significant barriers to ongoing courseware adoption”.

  • Crispin Weston

    Hello Andy – sorry, this reply is 4 years late! I was briefly involved in the AICC CMI-5 initiative before the AICC folded – but it did not seem to me to be getting to the core of the problem, which is 1. how to support structured data extensions, and 2. how to support structured ecosystem extensions – by this I mean different sorts of data exchange, including learning objective information, launch, sequencing etc. The basic EDI protocols, already worked out by TinCan, could remain the same.

    I started to develop my own proposals for such an extension mechanism under the auspices of LETSI but, as you can imagine, it is not a simple thing to implement and I judged that we did not then have the momentum, particularly with respect to interested implementers, to make real progress. I am now doing other things for my living and, as far as I am still trying to advance the cause of edtech interoperability, have backed away from the technical detail in order to make the case at a conceptual level (on my blog at I cannot see real progress being made without some sort of government support, as ADL had in the golden years.

    But I am always interested to track how things are going. I think the importance of making progress in this area cannot be overstated.

    Best, Crispin.