Table of Contents
What is xAPI and Why Use It?
xAPI (Experience API), also called Tin Can API, is a learning technology specification that tracks and stores learning experiences. Think of it as a universal language that lets different learning systems communicate about what learners do.
Why connect 7taps to your LRS?
Centralized analytics - View 7taps data alongside other learning platforms in one dashboard
Advanced reporting - Build custom reports combining data from multiple sources
Long-term storage - Keep detailed learning records beyond 7taps' built-in analytics
Compliance requirements - Meet organizational or regulatory data retention policies
Custom dashboards - Create visualizations that match your specific needs
Note: This is for organizations that already have or plan to implement an LRS. If you're just getting started with learning analytics, 7taps' built-in analytics may be sufficient for your needs.
What You Need to Get Started
Before setting up xAPI integration, ensure you have:
✅ 7taps Enterprise Edition - xAPI integration is only available on Enterprise plans
✅ A compatible LRS - Your LRS must accept xAPI statements via the standard xAPI specification
✅ LRS endpoint URL - Must end in /statements
(example: https://yourlrs.com/data/xapi/statements)
✅ LRS credentials - Username and password for authentication
Technical Requirements
Your LRS must support:
xAPI specification 1.0.0 or higher
HTTP PUT method for single statement submission
Basic authentication (username/password)
Statement ID for idempotency (7taps sets a unique statementId for each statement)
⚠️ Important: 7taps uses PUT to send individual xAPI statements rather than batch POST requests. This follows the xAPI specification when a client sets a unique statementId for idempotency. Make sure your LRS supports this pattern.
Security Requirements
To ensure secure data transmission and compliance with organizational policies:
Transport Layer Security (TLS): The LRS endpoint must use HTTPS. Connections over HTTP are not supported.
Credential Handling: We strongly recommend using a dedicated service account with the least privileges required to receive statements. Do not use personal credentials.
Encryption in Transit: All statements are encrypted during transmission using HTTPS/TLS 1.2 or higher.
Access Control: Only authorized 7taps system processes have access to stored LRS credentials; these are securely encrypted at rest.
What Data 7taps Sends to Your LRS
Tracked Activities
7taps sends xAPI statements for the following learner interactions:
Course-level activities:
Course started
Course completed
Card-level activities:
Quiz question answered (correct/incorrect)
Form submission
Statement Structure
Each xAPI statement includes the following standard properties, in line with the xAPI 1.0.3 specification.
Each xAPI statement includes:
Actor - The learner (identified by email or unique ID)
Verb - The action taken (viewed, completed, answered, etc.)
Object - What was interacted with (course, card, quiz question)
Result - Outcomes like scores, responses, completion status
Context - Additional information like course ID, card type, timestamps
Timestamp - When the activity occurred
Example Statement
json
{
"id": "unique-statement-id",
"actor": {
"mbox": "mailto:learner@company.com",
"name": "Jane Learner"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/completed",
"display": {"en-US": "completed"}
},
"object": {
"id": "https://app.7taps.com/course/abc123",
"definition": {
"name": {"en-US": "Product Safety Training"},
"type": "http://adlnet.gov/expapi/activities/course"
}
},
"result": {
"completion": true,
"duration": "PT5M30S"
},
"timestamp": "2025-01-15T14:30:00Z"
}
```
How to Set Up Your xAPI Integration
Step 1: Verify Your Plan
Confirm you're on 7taps Enterprise Edition. If you need to upgrade, contact your account manager or email sales@7taps.com.
Step 2: Prepare Your LRS Information
Gather the following details from your LRS provider:
Endpoint URL - Should look like: `https://yourlrs.com/data/xapi/statements`
Username - For authentication
Password - For authentication
Remember: The URL must end in `/statements` exactly as shown above.
Step 3: Submit Your Configuration Request
Email support@7taps.com with the subject line "xAPI Integration Setup" and include:
LRS Endpoint URL: [your URL ending in /statements]
Username: [your LRS username]
Password: [your LRS password]
Organization name: [your company name]
Primary contact: [name and email]
⚠️ Security note: We recommend using a dedicated service account for this integration rather than a personal user account.
Step 4: Confirmation and Testing
After our support team configures your integration (typically within 1-2 business days):
You'll receive a confirmation email
We recommend testing with a sample course completion
Check your LRS to verify statements are appearing correctly
Contact support@7taps.com if you don't see data within 15 minutes of learner activity
Understanding xAPI Statements from 7taps
Statement Delivery
Method: Individual statements sent via HTTP PUT
Frequency: Real-time (statements sent immediately as activities occur)
Idempotency: Each statement has a unique statementId to prevent duplicates
Retry logic: Failed statements are automatically retried (up to 3 attempts)
Content-Type: application/json
Header: X-Experience-API-Version: 1.0.3
If the LRS returns a 204 (No Content) response, the statement is considered successfully stored. Errors such as 400 (Bad Request), 401 (Unauthorized), or 500 (Server Error) are logged internally and retried.
Common Verbs Used
7taps uses standard xAPI verbs from the ADL vocabulary:
Verb | When It's Used |
initialized | Learner starts a course |
progressed | Learner advances through cards |
completed | Learner finishes a course or card |
answered | Learner responds to a quiz or poll |
interacted | Learner engages with interactive elements |
responded | Learner submits form or submit card content |
Activity Types
Objects in statements are categorized by type:
course - The entire 7taps course
question - Quiz or poll cards
assessment - Collections of quiz questions
interaction - Interactive elements like buttons, checklists
media - Video or audio cards
Troubleshooting Common Issues
Statements Not Appearing in Your LRS
Check these first:
URL format - Verify your endpoint ends in /statements
Credentials - Confirm username and password are correct
LRS compatibility - Ensure your LRS supports HTTP PUT for single statements
Firewall rules - Check if your LRS firewall allows incoming connections from 7taps
Authentication method - Verify your LRS uses basic authentication (not OAuth or other methods)
Still having issues? Email support@7taps.com and include these details:
Your LRS endpoint URL (without credentials)
A description of what you're seeing (or not seeing)
Screenshots from your LRS showing any error messages
Approximate time when you tested (with timezone)
Duplicate Statements
If you're seeing duplicate statements, this is typically an LRS configuration issue. 7taps uses statementId for idempotency, meaning the same statement ID shouldn't create duplicates. Contact your LRS provider to ensure their system properly handles idempotent PUT requests.
Missing Statement Types
If certain activities aren't being tracked:
Verify the activity is supported (see "What Data 7taps Sends" section above)
Check if you're testing with the latest version of your course
Confirm learners are interacting with published courses (not editor previews)
Common Questions
Q: Can I use xAPI if I'm on the Pro plan?
No, xAPI integration is exclusively available on Enterprise Edition. If you need this feature, contact sales@7taps.com to discuss upgrading.
Q: Does this replace 7taps' built-in analytics?
No, xAPI integration supplements 7taps analytics. Your data continues to appear in 7taps' statistics dashboard and can also flow to your LRS for additional analysis.
Q: Can I send data to multiple LRS systems?
Currently, 7taps supports one LRS endpoint per organization. If you need to send data to multiple systems, consider using an LRS that can forward statements or contact support@7taps.com to discuss your specific requirements.
Q: What happens if my LRS goes down?
7taps will retry failed statements up to 3 times with exponential backoff. If your LRS remains unavailable, those statements may not be delivered. However, learner data continues to be tracked in 7taps' own analytics system.
Q: Can I customize which statements get sent?
The current implementation sends all supported activity types automatically. If you need to filter specific statement types, this should be done at the LRS level through your LRS provider's filtering or reporting features.
Q: Why does 7taps use PUT instead of POST?
7taps uses HTTP PUT to send individual xAPI statements with a unique statementId, following the xAPI specification's pattern for idempotent statement submission. This ensures that if a statement needs to be retried (due to network issues, for example), it won't create duplicates in your LRS. This is a valid and recommended approach in the xAPI specification.
Q: Can I see xAPI statements before they're sent?
Not directly, but you can review the types of data collected in the "What Data 7taps Sends to Your LRS" section above. If you need to see the actual JSON structure for compliance or integration testing, contact support@7taps.com and we can provide sample statements.
Q: How do I change my LRS credentials?
Email support@7taps.com with your updated endpoint URL, username, and/or password. Include "xAPI Credential Update" in the subject line. Our team will update your configuration within 1-2 business days.
Q: Does xAPI tracking affect course performance for learners?
No. Statements are sent asynchronously in the background and don't impact the learner's experience or course loading times.
Q: Is there a limit to how many statements can be sent?
There are no enforced rate limits per learner, but 7taps recommends ensuring your LRS can handle bursts of up to 100 statements per minute per organization.
Related Resources
xAPI Specification Documentation (external)
Need Help?
Our support team is here to assist with your xAPI integration:
📧 Email: support@7taps.com
💬 In-app support: Click the help button in your 7taps dashboard
For sales inquiries about Enterprise Edition:
📧 Email: sales@7taps.com
This article was last updated to reflect the current xAPI implementation pattern using HTTP PUT with statement IDs for idempotent delivery.
