xAPI Reference
Understanding Key Concepts
Sending xAPI Statements
interface XAPIStatement {
actor: {
objectType: 'Agent';
name: string;
account: {
homePage: string;
name: string;
};
};
verb: {
id: string;
display: {
'en-US': string;
};
};
object: {
id: string;
definition: {
name: { 'en-US': string };
description: { 'en-US': string };
type: string;
};
};
}
async function sendXAPIStatement(
statement: XAPIStatement,
jwt: string,
endpoint: string = 'https://cloud.learncard.com/xapi'
) {
const response = await fetch(`${endpoint}/statements`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Experience-API-Version': '1.0.3',
'X-VP': jwt,
},
body: JSON.stringify(statement),
});
return response;
}Example: Tracking Game Activities
1. Tracking Activity Attempts
2. Tracking Skill Development
3. Tracking Achievements with Results
Common Gotchas and Tips
Testing Your Implementation
Reading xAPI Statements
Important Security Notes
Delegated Access
Contract-Scoped xAPI Statements
How It Works
Contract URI Injection
Querying Statements by Contract
Use Cases
Voiding Statements
Validation Tips
Advanced xAPI Statement Queries
Filtering Large Statement Sets
Basic Query Parameters
Key Filtering Parameters
Parameter
Description
Example
Using Pagination
Reducing Statement Size
Specialized Queries
Activity-Specific Statements
Timeline Analysis
Skill-Based Filtering
Completion Status
Aggregation Queries
Best Practices for Large Data Sets
Last updated
Was this helpful?