Integrations

Connect LearnBuilder with Stripe, LTI, SSO, SCIM, REST API, and webhooks.

LearnBuilder integrates with external platforms and standards for payments, LMS connectivity, content portability, enterprise authentication, and HR system integration.


Stripe Connect (sell courses)

Connect your Stripe account to charge learners for course access.

Setup

  1. Go to User Menu → Account → Integrations tab → Stripe Connect
  2. Click Connect with Stripe
  3. You'll be redirected to Stripe to create or connect an account
  4. Authorize the connection and return to LearnBuilder

Once connected, you can set a price on any course from the course settings page.

Setting a course price

  1. Open the course and go to the Settings tab
  2. Scroll to the Pricing section
  3. Set a price and currency
  4. Learners are charged at enrollment

Payouts

Revenue is paid out to your Stripe account on your Stripe payout schedule. LearnBuilder charges a 10% platform fee on each transaction.

Disconnecting Stripe

Go to User Menu → Account → Integrations tab → Stripe Connect and click Disconnect. Existing paid enrollments are not affected, but new learners can no longer purchase.


SCORM Export

Export any course as a SCORM package to use in an external LMS (Moodle, Canvas, Blackboard, etc.).

Exporting a course

  1. Open the course
  2. Click Export → SCORM
  3. Choose SCORM version: SCORM 1.2 or SCORM 2004
  4. Click Export
  5. Download the .zip file

The exported package can be imported into any SCORM-compliant LMS. Completion status and scores will be tracked by the external LMS.

Note: AI Tutor and AI Dialogue features are not available in SCORM exports — these require the LearnBuilder platform. All other block types export correctly.


LTI Integration

LTI (Learning Tools Interoperability) allows you to embed LearnBuilder courses inside an external LMS — learners access them through their existing LMS without a separate LearnBuilder login.

Supported LTI version

LearnBuilder supports LTI 1.3.

Setup

LTI configuration requires credentials from both sides:

In LearnBuilder:

  1. Go to User Menu → Account → Integrations tab → LTI 1.3 Integration
  2. Under Tool Configuration, use the Copy buttons to copy the Login URL, Launch URL, JWKS URL, and Redirect URI

In your LMS:

  1. Add a new External Tool / LTI 1.3 tool
  2. Paste the Tool Configuration URLs (Login URL, Launch URL, JWKS URL, Redirect URI) from LearnBuilder
  3. Complete the registration (steps vary by LMS)
  4. Copy the Platform ID, Deployment ID, and Auth endpoint from your LMS

Back in LearnBuilder:

  1. In the Registered Platforms section, click + Add Platform
  2. Enter the platform details from your LMS
  3. Save the configuration

Tip: LearnBuilder includes collapsible Moodle Setup Instructions directly on the Integrations page. Expand them for step-by-step guidance specific to Moodle.

Linking a course via LTI

Once LTI is configured, add a LearnBuilder course as an LTI activity in your LMS. Learners who launch it from the LMS are automatically authenticated and taken directly to the course.

Tip: LTI setup requires admin access to your LMS. If you're not the LMS admin, share the LearnBuilder credentials with whoever manages the LMS and ask them to complete the LMS-side configuration.


SSO (Single Sign-On)

SSO allows learners to sign in using your organization's identity provider (IdP) — no separate LearnBuilder password needed.

Note: SSO is available on the Business plan.

LearnBuilder supports two SSO protocols:

  • OIDC (OpenID Connect) — works with Azure AD, Google Workspace, Okta, Auth0, Keycloak, and most modern IdPs
  • SAML 2.0 — works with ADFS, Shibboleth, and enterprise IdPs that only support SAML

Setting up OIDC SSO

  1. Go to User Menu → Account → Integrations tab → Single Sign-On
  2. Click Add OIDC
  3. Enter a name (e.g., "Azure AD" or "Okta")
  4. Fill in the configuration from your IdP:
    • Issuer URL — the OpenID Connect discovery endpoint (e.g., https://login.microsoftonline.com/{tenant}/v2.0)
    • Client ID — from your IdP's application registration
    • Client Secret — from your IdP
    • Scopes — defaults to openid email profile
  5. Toggle Active to enable
  6. Click Create

In your IdP, add the redirect URI:

https://your-domain.com/api/auth/sso/{account-slug}/oidc/callback

Setting up SAML SSO

  1. Go to User Menu → Account → Integrations tab → Single Sign-On
  2. Click Add SAML
  3. Enter a name
  4. Provide your IdP metadata:
    • IdP Metadata URL — if your IdP publishes a metadata endpoint, paste the URL
    • IdP Metadata XML — alternatively, paste the raw XML
  5. Toggle Active and click Create

Copy these URLs into your IdP configuration:

  • SP Metadata URL: https://your-domain.com/api/auth/sso/{account-slug}/saml/metadata
  • ACS URL: https://your-domain.com/api/auth/sso/{account-slug}/saml/acs

SSO login experience

Once SSO is configured, the login page for your account shows a Sign in with SSO button. Clicking it redirects to your IdP, and after authentication, the learner is returned to LearnBuilder and signed in.

Enforce SSO

Enable Enforce SSO in the SSO configuration to hide the email/password login form and OAuth buttons. Learners will only be able to sign in through SSO.

Auto-provisioning

When a user signs in via SSO for the first time:

  1. A LearnBuilder account is automatically created using their IdP email and name
  2. They are added as a learner to your account
  3. Optionally, they are auto-enrolled in configured courses

REST API

The REST API provides programmatic access to your account's courses, enrollments, progress, and user data. Use it for HR system integration, custom reporting, or automation.

Note: The REST API is available on the Business plan.

Authentication

All API requests use Bearer token authentication with an API key:

Authorization: Bearer lb_ak_your_api_key_here

Creating an API key

  1. Go to User Menu → Account → Integrations tab → REST API
  2. Click Create Key
  3. Enter a name (e.g., "HR Integration")
  4. Copy the key immediately — it is only shown once
  5. Store the key securely

API endpoints

Base URL: https://your-domain.com/api/v1

Courses

MethodEndpointDescription
GET/coursesList courses. Filter: ?status=published
GET/courses/:idGet course details with lesson count
GET/courses/:id/lessonsList lessons in a course

Enrollments

MethodEndpointDescription
GET/enrollmentsList enrollments. Filter: ?course_id=, ?user_id=, ?status=
GET/enrollments/:idGet enrollment with lesson-by-lesson progress
POST/enrollmentsEnroll a user by email (auto-creates account if needed)
DELETE/enrollments/:idRemove an enrollment

Enroll a user:

POST /api/v1/enrollments
{
  "courseId": "abc123",
  "email": "jane@company.com",
  "name": "Jane Smith"
}

Progress

MethodEndpointDescription
GET/progressList lesson progress records. Filter: ?enrollment_id=, ?course_id=

Users

MethodEndpointDescription
GET/usersList users enrolled in your courses

Groups

MethodEndpointDescription
GET/groupsList learner groups
POST/groupsCreate a group
GET/groups/:idGet group details with members and courses
POST/groups/:id/membersAdd a member by email

Learning Paths

MethodEndpointDescription
GET/learning-pathsList learning paths. Filter: ?status=published
GET/learning-paths/:idGet path details with courses
POST/learning-paths/:id/enrollEnroll a user by email in a path (enrolls in all courses)

Pagination

All list endpoints support pagination:

  • ?page=1&perPage=20 (default: page 1, 20 items)
  • Maximum 100 items per page

Response format:

{
  "data": [...],
  "meta": {
    "page": 1,
    "perPage": 20,
    "totalItems": 150,
    "totalPages": 8,
    "timestamp": "2025-01-15T10:30:00.000Z"
  }
}

Revoking an API key

Go to Integrations → REST API, find the key, and click Revoke. Any systems using the key will immediately lose access.


Webhooks

Webhooks send real-time HTTP POST notifications to your server when events occur in LearnBuilder.

Note: Webhooks are available on the Business plan.

Subscribing to events

POST /api/v1/webhooks
{
  "url": "https://your-server.com/webhook",
  "events": ["enrollment.created", "course.completed", "lesson.completed"]
}

The response includes a secret — store it to verify webhook signatures.

Available events

EventTriggered when
enrollment.createdA user is enrolled in a course
course.completedA user completes all lessons in a course
lesson.completedA user completes a lesson
assignment.overdueA mandatory enrollment passes its due date
assignment.due_soonA mandatory enrollment is within 7 days of its due date
assignment.recertification_dueA recertification deadline is approaching

Webhook payload

{
  "event": "course.completed",
  "data": {
    "enrollmentId": "abc123",
    "courseId": "def456",
    "userId": "ghi789"
  },
  "timestamp": "2025-01-15T10:30:00.000Z"
}

Signature verification

Each webhook request includes an X-Webhook-Signature header containing an HMAC-SHA256 signature of the request body, signed with your webhook secret. Verify this to ensure the request came from LearnBuilder.

Managing webhooks

MethodEndpointDescription
GET/api/v1/webhooksList webhook subscriptions
POST/api/v1/webhooksCreate a webhook subscription
DELETE/api/v1/webhooks/:idDelete a webhook subscription

SCIM (User Provisioning)

SCIM 2.0 (System for Cross-domain Identity Management) enables automatic user provisioning from your HR system or identity provider. When employees join, change roles, or leave your organization, their LearnBuilder access is updated automatically.

Note: SCIM is available on the Business plan.

Authentication

SCIM endpoints use the same API key authentication as the REST API:

Authorization: Bearer lb_ak_your_api_key_here

Base URL

https://your-domain.com/api/scim/v2

Users

SCIM Users map to learners in your LearnBuilder account.

MethodEndpointDescription
GET/UsersList users. Supports filter, startIndex, count
POST/UsersCreate a user (provisions account + membership)
GET/Users/:idGet a user
PATCH/Users/:idUpdate user (name, active status)
DELETE/Users/:idRemove user from account

Filter example: ?filter=userName eq "jane@company.com"

Create user:

POST /api/scim/v2/Users
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
  "userName": "jane@company.com",
  "name": { "givenName": "Jane", "familyName": "Smith" },
  "active": true
}

Deactivate user (PATCH):

PATCH /api/scim/v2/Users/:id
{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [{ "op": "replace", "path": "active", "value": false }]
}

Groups

SCIM Groups map to courses. Adding members to a group enrolls them in the course; removing members unenrolls them.

MethodEndpointDescription
GET/GroupsList courses as SCIM groups
GET/Groups/:idGet a course/group with members
PATCH/Groups/:idAdd or remove members (enrollments)

Add a member to a course:

PATCH /api/scim/v2/Groups/:courseId
{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [{
    "op": "add",
    "path": "members",
    "value": [{ "value": "user-id-here" }]
  }]
}

Discovery

EndpointDescription
GET /ServiceProviderConfigSCIM capabilities and configuration

Configuring SCIM in your IdP

Most identity providers (Okta, Azure AD, OneLogin) have built-in SCIM provisioning. In your IdP's SCIM configuration:

  1. Set the SCIM Base URL to https://your-domain.com/api/scim/v2
  2. Set the Authentication to Bearer Token and paste your API key
  3. Enable provisioning for Users and Groups as needed
  4. Map your IdP's user attributes to SCIM attributes (userName → email, name.givenName, name.familyName)