This blog post is part of our “Ask Andy” series in which we publish Andy’s plain-spoken, straight shooting answers to common or uniquely interesting (eLearning) questions. If you have a question, you can always fill out this form and ask Andy too.

Hey Andy,

We’ve done the big work of building our own LMS. Now we need to answer the question, how do we add xAPI support?

Andy, what do you recommend?


Hey xAPI-Less LMS,

Thank you for reaching out! When it comes to adding xAPI support to your LMS, you have a couple of options.

  1. Implement the xAPI specification yourself.
  2. Leverage a third-party software, like Rustici Engine or SCORM Cloud, which implement xAPI on your system’s behalf.

Implement the xAPI specification yourself

In order for your LMS to be able to import and launch xAPI packaged content, you need to implement the xAPI Launch spec. This is not a formal component of the xAPI spec, but it is the spec that all major authoring tools, such as Captivate, have implemented in order to publish xAPI packages.

In addition to implementing the xAPI Launch spec, you’ll need to decide how to support the Learning Record Store (LRS) endpoint. The LRS endpoint is needed to receive and store xAPI statements issued by xAPI content. You can choose to build your own LRS or you can use an existing LRS. If you use an existing LRS, you can select an integrated option (such as Rustici LRS or SCORM Cloud) or a standalone option (such as Watershed or Learning Locker).

We would also recommend that in addition to supporting xAPI packaged content you also add support for xAPI’s “companion spec,” cmi5. cmi5 is the preferred way to package and launch xAPI content because it clarifies a number of processes around importing, launching and tracking xAPI content. Most authoring tools that support publishing xAPI content will also support cmi5 as a publishing option.

Leverage third-party software to implement xAPI on your system’s behalf

Your other option is to use third-party software to offload standards support. Both Rustici Engine and SCORM Cloud can help your LMS import, launch and track xAPI packaged content. Once integrated with your software, they’ll also ensure you support cmi5, SCORM and AICC.

Rustici Engine

Rustici Engine is a tightly integrated eLearning content player that provides your application with support for SCORM 1.2, SCORM 2004 (2nd, 3rd and 4th Editions), AICC, xAPI and cmi5. Integrating Engine usually takes 4-8 weeks to complete and we work closely with your team to assist with the integration process. Rustici Engine also provides your application with an integrated, xAPI conformant LRS.

Rustici Engine is integrated with your application via a RESTful web service API and is responsible for handling the import and launch of all eLearning standards-based content, as well as tracking the learner’s progress through the eLearning content. Data collected by Rustici Engine is normalized (so that data from a variety of eLearning standards “looks” the same) and shared with your application for reporting purposes.


SCORM Cloud is a SaaS version of Rustici Engine’s integrated content player. The SCORM Cloud API helps you import, launch and track standards-based eLearning content within your application. Like Engine, Cloud supports SCORM 1.2, SCORM 2004 (2nd, 3rd and 4th Editions), AICC, xAPI and cmi5. And SCORM Cloud also provides your LMS with an xAPI conformant LRS.

SCORM Cloud includes a free trial for you to build an integration with. You can sign up and get started today if you’d like.

Let me know how I can help

Both Rustici Engine and SCORM Cloud included unlimited support by our eLearning standards experts and software developers plus access to all software updates (major releases occur once per year).

I’m happy to speak with you further about either option, or both for that matter. Reach out and let me know when you’d like to connect.


Andy joined our team to evangelize xAPI. Now he talks to people about all of the eLearning standards all day because he is considered a “salesperson.” He’s also our office jokester – he’s a punny guy.