> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Unified LMS API

> Unified LMS API for learning management across platforms, with consistent data models for course delivery, user progress tracking, and content management.

## What is a Unified API?

A **unified API** provides a single, standardized interface to interact with multiple third-party providers. Instead of learning each provider's unique API format, authentication scheme, and data model, you write code once, and StackOne handles the differences.

**What StackOne normalizes:**

* **Data models** – Consistent field names and structures across providers (e.g., `files` in Google Drive, SharePoint, and Dropbox all return the same schema; `users` in Google Workspace, Okta, and 1Password all return the same schema)
* **Authentication** – OAuth, API keys, and tokens are managed per-provider; you just pass an `x-account-id` header
* **Pagination** – Cursor-based pagination works the same regardless of whether the provider uses offsets, pages, or cursors
* **Error formats** – Standardized error responses with provider-specific details when available

<Tip>
  **Building AI agents?** Use the [MCP Server](/mcp/quickstart), an [AI Toolset SDK](/agents/typescript/introduction), or the [Actions API (RPC)](/platform/api-reference/actions/make-an-rpc-call-to-an-action) instead — same data, optimized for LLM tool calling.
</Tip>

## Benefits of the LMS API

<AccordionGroup>
  <Accordion title="Real-Time Data Synchronization">
    StackOne's APIs support real-time data polling, allowing for immediate updates and synchronization across platforms.
  </Accordion>

  <Accordion title="Privacy-First Design Ensuring Compliance">
    With a [focus on security](https://www.stackone.com/blog/why-your-choice-of-unified-api-could-make-or-break-compliance), StackOne's architecture avoids unnecessary data storage, maintaining compliance with data protection regulations.
  </Accordion>

  <Accordion title="Synthetic and Native Webhooks for Updates">
    The platform provides both [synthetic and native webhooks](/guides/webhooks), enabling real-time notifications for course updates and user progress tracking.
  </Accordion>

  <Accordion title="Comprehensive LMS Integration Coverage">
    StackOne offers [pre-built connectors](https://www.stackone.com/integrations) with a wide range of LMS platforms, simplifying the integration process.
  </Accordion>
</AccordionGroup>

## Key Features

The table below highlights key features of the LMS API that enhance learning and content management:

| **Feature**             | **Description**                                                                                                           |    |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | :- |
| Comprehensive User Sync | Synchronize users data across LMS, HRIS and other platforms, including skills, activity and learning.                     |    |
| Course Management       | List and manage courses, access detailed descriptions, metadata, and learning objectives.                                 |    |
| Content Management      | Create, organize, and manage educational materials like videos, quizzes, and documents across multiple courses.           |    |
| Real-Time Webhooks      | Receive instant notifications for changes in data such as user progress, course updates, or content modifications.        |    |
| Assignment Tracking     | Monitor and manage user assignments, statuses, and progress across various courses.                                       |    |
| Progress Tracking       | Track user progress, completion statuses, and award certificates upon completion.                                         |    |
| Category Management     | Organize courses into categories for easy discovery and retrieval based on themes or topics.                              |    |
| Skills Management       | Enhanced skills tracking across jobs, users and learning content to help embed skills first people management more deeply |    |

## StackOne SDKs & OpenAPI Specification

<p class="sdk-text">Use our official SDKs for faster integration. Build with language-native libraries. Full list [here](/guides/stackone-api-sdks).</p>

<CardGroup cols={2}>
  <Card title="OpenAPI Specification" icon="link" href="https://api.eu1.stackone.com/oas/lms.json" arrow="true" cta="Click here" />

  <Card title="Popular SDKs" icon="download" class="sdk-card">
    [Node.js](https://www.npmjs.com/package/@stackone/stackone-client-ts)
    [Java (JVM)](https://mvnrepository.com/artifact/com.stackone/stackone-client-java)
    [PHP](https://packagist.org/packages/stackone/client-sdk)
    [Ruby](https://rubygems.org/gems/stackone_client)
  </Card>
</CardGroup>

## Entity Model and Relationships

The following diagram illustrates the key entities within the LMS API:

```mermaid theme={null}
erDiagram
    User ||--o{ Assignment : ""
    User ||--o{ Completion : ""
    Course ||--o{ Assignment : ""
    Content ||--o{ Assignment : ""
    Collection ||--o{ Assignment : ""
    Course ||--o{ Content : ""
    Content ||--o{ Course : ""
    Course ||--o{ Completion : ""
    Content ||--o{ Completion : ""
    Collection ||--o{ Completion : ""
    Collection ||--o{ Content : ""
    Collection ||--o{ Course : ""
    Collection ||--o{ Skill : ""
    Collection ||--o{ Category : ""
        Course ||--o{ Skill : ""
    Course ||--o{ Category : ""
        Content ||--o{ Skill : ""
    Content ||--o{ Category : ""

    User {
        string id
        string remote_id
    }

    Assignment {
        string id
        string remote_id
        string user_id
        string learning_object_external_reference
    }

    Completion {
        string id
        string remote_id
        string user_id
        string learning_object_external_reference
    }

    Course {
        string external_reference
        array content_ids
        array Categories
        array Skills
    }

    Content {
        string external_reference
        array Content
        array Categories
        array Skills
    }

    Collection {
        string external_reference
        array learning_object_external_reference
        array Categories
        array Skills
    }

    Category {
        string id
    }

    Skill {
        string id
    }
```

The following table outlines the key entities within the LMS system represented in the diagram and provides a brief description of each:

| Entity     | Description                                                                                                                                                                                     |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| User       | Represents an individual interacting with the LMS, encompassing attributes like unique identifiers, personal information, and roles within the system.                                          |
| Course     | Denotes a structured learning program, including details such as course ID, title, description, duration, and associated metadata.                                                              |
| Content    | Refers to the educational materials within a course, which can include various types such as videos, articles, quizzes, and documents, each with specific attributes like content type and URL. |
| Assignment | Represents tasks or activities assigned to users within a course, including details like due dates, instructions, and submission requirements.                                                  |
| Completion | Records the completion status of courses or modules by users, capturing information such as completion dates, scores, and certificates awarded.                                                 |
| Category   | Classifies courses into different groups or subjects, aiding in the organization and retrieval of courses based on topics or themes.                                                            |
| Skills     | Identifies key skills for content and users to help identify skills gaps and provide tailored content suggestions                                                                               |
