Import an xAPI Course

How-to guide
6 min readUpdated March 26, 2026xapi, tin-can, import, content, e-learning

xAPI (also called Tin Can API) is a modern e-learning standard that tracks a broader range of learning experiences than SCORM. SkillStream LMS includes a built-in Learning Record Store (LRS) that receives and stores xAPI statements from imported content.

What is xAPI?#

xAPI content sends "statements" to the LRS in the format: actor → verb → object (e.g., "Jane completed Module 3"). Unlike SCORM, xAPI can track offline activity, mobile learning, simulations, and branching scenarios with detailed granularity.

Before You Import#

  • Export your content as a .zip file from your authoring tool (Articulate Storyline 360, Adobe Captivate, Lectora, etc.) using the xAPI/Tin Can export option.
  • The zip must contain a tincan.xml (or cmi5.xml for cmi5 content) at the root level.
  • Maximum upload size: 500 MB.

Step 1: Start the Import#

  1. Go to Admin → Course Management → Import Course.
  2. Select xAPI / Tin Can as the content type.
  3. Click Choose file and select your .zip.
  4. Click Upload.

SkillStream validates the package and reads the activity list from tincan.xml.

Step 2: Configure the Import#

SettingDescription
TitlePre-filled from tincan.xml; edit as needed
DescriptionShown in the course library
Cover imageThumbnail for the course card
Completion statement verbThe xAPI verb that triggers completion (default: http://adlnet.gov/expapi/verbs/completed)
Passing verbThe verb that triggers a pass result (default: http://adlnet.gov/expapi/verbs/passed)
Mastery scoreMinimum score percentage for a pass, if the content sends score statements

Common completion verbs:

VerbIRI
completedhttp://adlnet.gov/expapi/verbs/completed
passedhttp://adlnet.gov/expapi/verbs/passed
masteredhttp://adlnet.gov/expapi/verbs/mastered
satisfiedhttps://w3id.org/xapi/adl/verbs/satisfied

Check your authoring tool's documentation to confirm which verb your content sends on completion.

Step 3: Publish#

  1. Click Import course to create the course in draft mode.
  2. Click Preview to open the content in the xAPI player and verify it runs correctly.
  3. Confirm that completing the content sends a statement visible in the preview console.
  4. Click Publish when ready.

View xAPI Statements#

Go to Admin → Courses → [Course] → xAPI Statements to see a live feed of all statements sent by enrolled learners. Each row shows the actor, verb, object, and timestamp.

This view is useful for debugging — if a learner claims they completed the course but SkillStream shows no completion, check whether the expected completion verb appears in the statements log.

Troubleshooting#

Error: "No tincan.xml or cmi5.xml found" Re-export from your authoring tool using the xAPI/Tin Can export option and ensure the manifest is at the root of the zip.

Course plays but never marks complete Open the xAPI statements log for that learner and check which verbs are being sent. The completion verb in your import settings may not match what the content sends. Update the completion statement verb to match.

Content launches but shows a blank screen This usually indicates a cross-origin (CORS) issue with an external resource the content tries to load. Check your authoring tool's export settings to ensure all assets are bundled locally, not loading from an external URL.

Scores are not recording Verify your content sends a result.score.scaled or result.score.raw value with the completion statement. Some authoring tools require a result slide or scoring object to be configured explicitly.

Was this article helpful?

Still need help?

Our support team is ready to assist with anything not covered here.

Contact support