canonical: https://jentic.com/apis/lms.kz/lms-kz

# Lms Kz LMS Aqparattyq Sana - Course Service API

The LMS Aqparattyq Sana Course Service API organizes learning content on the lms.kz platform into courses, sections, and topics, with every title and description stored in four languages: Russian, Kazakh, English, and Uzbek. Courses can be global or belong to an organization, sections are ordered inside a course, and topics carry lesson content along with optional YouTube and Google Slides links. Progress tracking marks topics as completed for a user and returns a course status, progress percentage, and the list of completed topics.

## For AI agents

Create multilingual courses (RU, KZ, EN, UZ) on lms.kz, add ordered sections and topics with YouTube or Google Slides links, mark topics complete for a learner, and read course progress.

## Scope

Does not handle quizzes and grading, learner accounts and enrolment, or course payments. Use for building multilingual course structure and tracking topic completion only.

## Capabilities

- Create courses with titles and descriptions in Russian, Kazakh, English, and Uzbek through the title_ru, title_kz, title_en, and title_uz fields
- List an organization's courses or only global ones with listCourses using organization_id, is_global, and pagination
- Add ordered sections to a course with createSection using course_id and order_index
- Create lesson topics in a section with multilingual content plus youtube_url and google_slides_url links
- Enable certification and set a passing_score when updating a course
- Mark a topic as completed for a learner with completeTopicForUser
- Read a learner's course progress_percent, status, and completed_topics with getCourseProgress

## Use cases

### Agent-built multilingual courses through Jentic

An agent asks Jentic for the lms.kz course-creation operations, calls createCourse with titles and descriptions in Russian, Kazakh, English, and Uzbek, then adds sections with createSection and lesson topics with createTopic in the right order_index. The JWT bearer token stays in your self-hosted Jentic One instance.

Example prompt: Search Jentic for 'create a course on lms.kz', call createCourse with title_ru, title_kz, title_en, and created_by_user_id 7, then call createSection with the returned course id as course_id and order_index 1

### Lesson content with video and slides

Course authors create topics inside a section with createTopic, filling the per-language content fields and attaching a youtube_url for the lesson video or a google_slides_url for the deck. listTopics returns a section's topics so an agent can check order before adding more.

Example prompt: Call createTopic with section_id 12, order_index 3, title_en 'Variables', and youtube_url 'https://www.youtube.com/watch?v=abc123'

### Learner progress tracking

When a learner finishes a lesson, the application calls completeTopicForUser with user_id and topic_id. getCourseProgress with user_id and course_id then returns the course status, progress_percent, and completed_topics, which a reporting job can use to find learners who have stalled.

Example prompt: Call completeTopicForUser with user_id 42 and topic_id 502, then call getCourseProgress with user_id 42 and course_id 3 and report progress_percent

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/courses` | Create a course |
| POST | `/courses/list` | List courses |
| GET | `/courses/{id}` | Get a course |
| POST | `/courses/sections` | Create a section |
| POST | `/courses/topics` | Create a topic |
| POST | `/courses/progress/complete` | Mark a topic as completed |
| GET | `/courses/progress` | Get a learner's course progress |

## Key resources

- **Courses** — Global or organization courses with multilingual titles and certification settings
- **Sections** — Ordered parts of a course
- **Topics** — Lessons with multilingual content and YouTube or Google Slides links
- **Progress** — Per-learner completed topics and course progress percentage

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 78 / 100
- **Maturity:** AI-Ready
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 89 / 100
  - AI-Readiness & Agent Experience: 59 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 74 / 100
- **View full report:** https://jentic.com/apis/lms.kz/lms-kz/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring this course service by hand means attaching its JWT bearer token, filling four language variants per field, and sequencing course, section, and topic creation yourself. Through Jentic you install once, import it from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Course reads and updates put the course id in the URL path, but creating sections, topics, and progress records carries course_id, section_id, and user_id in the request body, so rules mainly bound which operations your agent may call. You choose the operations it may call, so destructive ones like deleteCourse are not included unless you add them.
- **Credential handling:** Your lms.kz token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a course section' or 'get learner progress', and Jentic returns the matching lms.kz operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Moodle API** — Open-source LMS with course, enrolment, and grade web services
- **TalentLMS API** — Hosted training LMS with users, courses, and enrolments
- **Complete LMS API** — Course builder with modules, assessments, and certificates
- **Canvas LMS API** — Institutional LMS for schools and universities

## FAQ

### What authentication does the LMS Aqparattyq Sana Course Service API use?

Per its OpenAPI spec, the API uses an HTTP bearer scheme with a JWT obtained at login, sent as `Authorization: Bearer`. Through Jentic the token is stored encrypted by your own Jentic One instance and injected at call time, so it never enters the agent's prompt or logs.

### Which languages does the lms.kz Course Service API support?

Courses, sections, and topics carry separate fields for Russian, Kazakh, English, and Uzbek, such as title_ru, title_kz, title_en, and title_uz, plus matching description and content fields. You can fill any subset when creating a course or topic.

### What are the rate limits for the lms.kz Course Service API?

The OpenAPI spec does not specify rate limits. Check with the lms.kz platform team for current limits before running large course imports.

### How do I record lesson completion with the lms.kz Course Service API through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, add the API from the Jentic API Directory, and have your agent search for 'mark a topic as completed'. Jentic returns completeTopicForUser (POST `/courses/progress/complete`) with its schema, and the agent sends user_id and topic_id. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there an lms.kz MCP server?

You don't need an MCP server to give your agent the lms.kz Course Service API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it, with operations discovered on demand.

### Can I limit what my agent is allowed to do with the lms.kz Course Service API?

Yes. For a progress-reporting agent, write a rule that allows only listCourses, getCourse, listSections, listTopics, and getCourseProgress. The agent can read course structure and learner progress, but deleteCourse, updateCourse, and completeTopicForUser are outside the allowed set, and every call it makes is logged.

### Can I add a YouTube video to a lesson with the lms.kz Course Service API?

Yes. POST `/courses/topics` accepts a youtube_url and a google_slides_url alongside the multilingual title and content fields. section_id and order_index are required to place the topic inside a section.
