M17 · REST API reference

Every endpoint in the Academy surface, one page.

M17 ships 38 pre-built REST endpoints organized into 5 functional areas. Course lifecycle, lessons, chapters + media, learner notes, and badges + certifications. Skim any area below.

At a glance

38 endpoints. Learner and admin, one surface.

Everything is POST + JSON body — no verb quirks. Learner endpoints (enroll, syllabus, notes, progress, certificate) and admin endpoints (Save, clone, delete, reorder, badge requirements) share the same request/response envelope used everywhere else in the CleenUI API.

38
endpoints across the Academy surface
5
functional areas (courses, lessons, chapters & media, notes, badges & certifications)
2
faces share one API — learner consumption + admin authoring
POST
the only method — consistent JSON body across every endpoint (plus one unauth /academy/verify)
Courses

Courses.

Course lifecycle plus the learner-facing course extras: syllabus, notes, next-suggestion, assessment, certificate. Every Academy workflow starts here.

12 endpoints
POST/academy/course/SaveCreate or update an academy course.
POST/academy/course/detailGet a single academy course for the course-overview screen.
POST/academy/course/filterGet the academy course catalog for the calling user.
POST/academy/course/cloneClone an academy course.
POST/academy/course/deleteDelete an academy course.
POST/academy/course/code-existsCheck whether an academy course code already exists.
POST/academy/course/enrollEnroll the calling user in a course.
POST/academy/course/syllabusGet an academy course syllabus.
POST/academy/course/notesGet course notes.
POST/academy/course/suggestionGet the single next-suggested academy course for the calling user.
POST/academy/course/assessmentResolve a course’s knowledge-check assessment + latest attempt.
POST/academy/course/certificateGet the caller’s certificate for a course.
Lessons

Lessons.

Lesson CRUD, drag-reorder, learner mark-complete, and the progress upsert that powers pick-up-where-you-left-off (resume position + furthest-watched).

7 endpoints
POST/academy/course/lesson/saveCreate or update an academy lesson.
POST/academy/course/lesson/detailGet a single lesson for the video-lesson screen.
POST/academy/course/lesson/filterGet the lessons for a course.
POST/academy/course/lesson/deleteDelete an academy lesson.
POST/academy/course/lesson/reorderReorder academy lessons.
POST/academy/course/lesson/completeMark a lesson complete for the caller.
POST/academy/course/lesson/progress/saveUpsert the caller’s lesson progress (resume + furthest-watched).
Chapters & media

Chapters & media.

Chapters group videos within a lesson; media is the video itself. Uploaded media triggers the background transcription worker that produces the VTT file.

6 endpoints
POST/academy/course/lesson/chapter/saveCreate or update an academy chapter.
POST/academy/course/lesson/chapter/detailGet a single academy chapter.
POST/academy/course/lesson/chapter/filterGet the chapters for a lesson.
POST/academy/course/lesson/chapter/deleteDelete an academy chapter.
POST/academy/course/lesson/chapter/cloneClone an academy chapter.
POST/academy/chapter/media/saveSave academy chapter media.
Notes

Notes.

Learner-facing notes pinned to a video timestamp inside a chapter’s media. Auto-pause / auto-resume behavior lives in the player; this is the persistence surface.

2 endpoints
POST/academy/course/chapter/media/notes/saveCreate or update academy lesson notes.
POST/academy/course/chapter/media/notes/deleteDelete an academy lesson note.
Badges & certifications

Badges & certifications.

Two credential shapes on the same foundation. Badges are earned via configurable requirements (completion, scoring, engagement); certifications recognize course completion + passing the knowledge check. Both are verifiable publicly.

11 endpoints
POST/academy/badge/saveCreate or update an academy badge.
POST/academy/badge/detailGet academy badge details.
POST/academy/badge/filterGet the caller’s badges.
POST/academy/badge/deleteDelete an academy badge.
POST/academy/badge/checkRun the badge-earned evaluation for the calling user.
POST/academy/badge/requirement/saveCreate or update a badge requirement.
POST/academy/badge/requirement/detailGet a single badge requirement.
POST/academy/badge/requirement/filterGet all requirements for a badge.
POST/academy/badge/requirement/deleteDelete a badge requirement.
POST/academy/certification-pathGet the caller’s overall certification progress.
POST/academy/verifyPublicly verify an academy credential (no auth).

Want a walkthrough of any endpoint?

Book a 30-minute review and we’ll trace any operation end to end — from React component to stored procedure — using your team’s actual use case.