Skip to main content

xAPI Integration: Sending Learning Data to Your LRS

Connect 7taps to your Learning Record Store (LRS) to track detailed learner activity and analyze performance data in your own analytics system. This guide explains what xAPI is, what data gets sent, and how to set up the integration with your LRS.

Updated yesterday

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

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:

  1. Endpoint URL - Should look like: `https://yourlrs.com/data/xapi/statements`

  2. Username - For authentication

  3. 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):

  1. You'll receive a confirmation email

  2. We recommend testing with a sample course completion

  3. Check your LRS to verify statements are appearing correctly

  4. 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:

  1. URL format - Verify your endpoint ends in /statements

  2. Credentials - Confirm username and password are correct

  3. LRS compatibility - Ensure your LRS supports HTTP PUT for single statements

  4. Firewall rules - Check if your LRS firewall allows incoming connections from 7taps

  5. 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


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.

Did this answer your question?