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

# Learning (LMS)

> The seven LMS models, how they are grouped, and why the category is read-only.

Everything under `https://api.bindbee.dev/api/lms/v1/`. Seven models answering two questions: what training exists, and who has done it.

## The models

| Group        | Models                                                                                                                                                      | What it answers                       |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| **People**   | [Users](/lms/users/get-users)                                                                                                                               | Who the learners are                  |
| **Content**  | [Courses](/lms/courses/get-courses), [Contents](/lms/contents/get-contents), [Skills](/lms/skills/get-skills), [Categories](/lms/categories/get-categories) | What training exists                  |
| **Progress** | [Completions](/lms/completions/get-completions), [Enrollments](/lms/enrollments/get-enrollments)                                                            | Who was assigned it, and who finished |

<Warning>
  **An enrollment is not a completion.** An enrollment means the training was assigned, which is exactly what someone out of compliance also has. Mandatory training reporting needs completions, and the gap between the two is the report - see [LMS models](/guides/data-models/learning).
</Warning>

<Info>
  An LMS user is a separate identity from an HRIS employee, even when it is the same person. There is no automatic link between them; matching the two is your application's job.
</Info>

## Read-only

The LMS category has no write endpoints. Training records are created in the learning platform, and Bindbee reads them.

Where a write is genuinely required, [Passthrough](/guides/extending/passthrough) reaches the source system's own API directly - at the cost of a provider-specific request and response shape you maintain yourself.

## Coverage varies more than elsewhere

Skills in particular are unsupported by many LMS platforms, and the model will be empty for those integrations. Contents may be sparse where a system does not distinguish material within a course. Check against the integrations your customers actually use rather than assuming the full model set is populated - see [Scope & permissions](/get-started/scoping).

## Where to start

<CardGroup cols={2}>
  <Card title="LMS models" icon="network" href="/guides/data-models/learning">
    Assignment versus achievement, and the catalog.
  </Card>

  <Card title="Pagination" icon="list" href="/api-reference/basics/pagination">
    Every collection endpoint works this way.
  </Card>
</CardGroup>
