> ## Documentation Index
> Fetch the complete documentation index at: https://hub.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.

<Warning>
  **Legacy documentation.** The Legacy Unified APIs are no longer in active development. Existing functionality remains supported, and no new features or enhancements will be added.

  For the current StackOne platform, connectors, and agent tooling, see [docs.stackone.com](https://docs.stackone.com).
</Warning>

## 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](https://docs.stackone.com/embed/call-actions/mcp), an [AI Toolset SDK](https://docs.stackone.com/embed/call-actions/agent-sdk), or the [Actions API (RPC)](https://docs.stackone.com/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](/legacy-unified-apis/common-guide/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](https://docs.stackone.com/platform-api/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                                                                               |
