View on GitHub


A set of documents addressing the structure of and supporting services for xAPI Profiles.


This is a companion specification to the core xAPI Specification that addresses the structure and supporting services for xAPI Profiles.

A profile is the human and/or machine-readable documentation of application-specific concepts, statement patterns, extensions, and statement templates used when implementing xAPI in a particular context. In a nutshell, a profile documents the vocabulary concepts, extensions, statement templates, and patterns that are required for xAPI to be implemented consistently for a specific use case. A profile empowers designers and developers to establish a controlled, domain-specific vocabulary and determine what data should be captured/stored and reported on. In other words, a profile really is the blueprint for a successful, semantically interoperable xAPI implementation.

This Github repository contains the xAPI Profiles Specification. xAPI is a learning technologies interoperability specification that describes communication about learner activity and experiences between technologies. The xAPI Profiles Specification stands as a companion to xAPI, and is divided into three documents:

Specification versions

The current version of the specification is 1.0.

Authored Profiles

ADL maintains a public repository of authored xAPI profiles based on this specification and processes provided by ADL’s vocabulary and profile index,

What to do if the spec is unclear

If when implementing the specification you find something is unclear or unhelpful, you can help to improve the xAPI Profiles specification by raising an issue here. When raising an issue, please give as much detail as you can in regards to:

You’ll need to sign up for a GitHub account if you do not already have one in order to raise and comment on issues.

You can discuss any issues before or after raising them on the xAPI Profiles Google Group

How you can contribute

You’ll need to sign up for a GitHub account if you do not already have one in order to contribute to the specification.