LearnWorlds

LearnWorlds is an online course and learning management (LMS) platform that lets creators, trainers, and businesses build, sell, and run branded online schools. Its REST API (v2) is served per-school from https://{school}.learnworlds.com/admin/api/v2 and exposes school entities - users, courses, enrollments, subscriptions, payments, course progress, tags, bundles, and certificates - plus webhooks for real-time events. Requests are authenticated with OAuth2 client credentials (a bearer access token) together with an Lw-Client header identifying the client application. API and webhook access is a plan-gated feature available on the Learning Center and High Volume & Corporate plans.

7 APIs 0 Features
Online CoursesLMSeLearningEducationCourse PlatformCreator Economy

APIs

LearnWorlds Users API

Create, read, update, and list school users (students / members), manage their profile fields, and attach or detach tags. Users are the core identity entity that enrollments, pr...

LearnWorlds Courses API

List the school's courses, retrieve a single course, and read a course's sections and learning units. Courses are the primary sellable product in a LearnWorlds school.

LearnWorlds Enrollments API

Enroll and unenroll users on products - courses, bundles, and subscriptions - and list a user's current enrollments. Supports recording a price and justification for manual enro...

LearnWorlds Payments API

Read payment transactions and subscriptions for the school. A payment can include multiple products (cart orders and bundle purchases); subscriptions carry status and billing-pe...

LearnWorlds Progress API

Read per-user course progress and completion status across the courses a user is enrolled in, for reporting and downstream analytics.

LearnWorlds Tags API

Attach and detach tags on users to segment audiences for automations, reporting, and targeted access. Tags are a lightweight labeling primitive across the school.

LearnWorlds Webhooks API

Create, list, and delete webhook subscriptions that POST event payloads (user registration, enrollment, course completion, certificate awarded, payment created, subscription eve...

Collections

Pricing Plans

Rate Limits

Learnworlds Rate Limits

2 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: LearnWorlds API
  version: '2.0'
request:
  auth:
    type: bearer
    token: '{{accessToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Get access token (client credentials).
      type: http
    http:
      method: POST
      url: https://yourschool.learnworlds.com/admin/api/oauth2/access_token
      headers:
      - name: Content-Type
        value: application/x-www-form-urlencoded
      - name: Lw-Client
        value: '{{clientId}}'
      body:
        type: text
        data: client_id={{clientId}}&client_secret=YOUR_CLIENT_SECRET&grant_type=client_credentials
    docs: Exchanges client_id and client_secret for a bearer access token at the per-school token endpoint.
- info:
    name: Users
    type: folder
  items:
  - info:
      name: List users.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/users
    docs: Lists the school's users.
  - info:
      name: Create a user.
      type: http
    http:
      method: POST
      url: https://yourschool.learnworlds.com/admin/api/v2/users
      body:
        type: json
        data: '{"email":"student@example.com"}'
    docs: Creates a new user in the school.
  - info:
      name: Get a user.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id
      params:
      - name: id
        value: ''
        type: path
        description: The user id or email.
    docs: Retrieves a single user by ID or email.
  - info:
      name: Update a user.
      type: http
    http:
      method: PUT
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id
      params:
      - name: id
        value: ''
        type: path
        description: The user id or email.
      body:
        type: json
        data: '{}'
    docs: Updates an existing user's profile fields.
- info:
    name: Courses
    type: folder
  items:
  - info:
      name: List courses.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/courses
    docs: Lists the school's courses.
  - info:
      name: Get a course.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/courses/:id
      params:
      - name: id
        value: ''
        type: path
        description: The course identifier.
    docs: Retrieves a single course by its identifier.
  - info:
      name: Get course contents.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/courses/:id/contents
      params:
      - name: id
        value: ''
        type: path
        description: The course identifier.
    docs: Retrieves the sections and learning units of a course.
- info:
    name: Enrollments
    type: folder
  items:
  - info:
      name: Enroll a user.
      type: http
    http:
      method: POST
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/enrollment
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
      body:
        type: json
        data: '{"productId":"course_123","productType":"course"}'
    docs: Enrolls a user on a course, bundle, or subscription.
  - info:
      name: Unenroll a user.
      type: http
    http:
      method: DELETE
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/enrollment
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
      body:
        type: json
        data: '{"productId":"course_123","productType":"course"}'
    docs: Removes a user's enrollment from a product.
  - info:
      name: List a user's enrollments.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/enrollments
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
    docs: Lists all products a user is enrolled in.
- info:
    name: Progress
    type: folder
  items:
  - info:
      name: Get a user's progress.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/progress
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
    docs: Returns the user's progress and completion status across enrolled courses.
- info:
    name: Tags
    type: folder
  items:
  - info:
      name: Attach tags to a user.
      type: http
    http:
      method: POST
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/tags
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
      body:
        type: json
        data: '{"tags":["vip"]}'
    docs: Attaches one or more tags to a user.
  - info:
      name: Detach tags from a user.
      type: http
    http:
      method: DELETE
      url: https://yourschool.learnworlds.com/admin/api/v2/users/:id/tags
      params:
      - name: id
        value: ''
        type: path
        description: The user id.
      body:
        type: json
        data: '{"tags":["vip"]}'
    docs: Detaches one or more tags from a user.
- info:
    name: Payments
    type: folder
  items:
  - info:
      name: List payments.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/payments
    docs: Lists payment transactions for the school.
  - info:
      name: List subscriptions.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/subscriptions
    docs: Lists the school's subscriptions.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhooks.
      type: http
    http:
      method: GET
      url: https://yourschool.learnworlds.com/admin/api/v2/webhooks
    docs: Lists configured webhook subscriptions.
  - info:
      name: Create a webhook.
      type: http
    http:
      method: POST
      url: https://yourschool.learnworlds.com/admin/api/v2/webhooks
      body:
        type: json
        data: '{"endpoint":"https://example.com/hooks/learnworlds","triggers":["course.completed"]}'
    docs: Creates a webhook subscription.
  - info:
      name: Delete a webhook.
      type: http
    http:
      method: DELETE
      url: https://yourschool.learnworlds.com/admin/api/v2/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The webhook identifier.
    docs: Deletes a webhook subscription.