Returns one course by numeric id with its sections, the lessons the caller may see, per-lesson lock state and the current progress track.
Sections with no visible lessons are omitted entirely. Lesson bodies are not parsed unless intended_lesson_slug matches, which is what makes the deep-link into a lesson render immediately while the rest lazy-load. Private courses the caller is not enrolled in come back with a lockscreen_config instead of content; secret courses return an error.
Endpoint
Method:
GETPath:
/courses/{course_id}Edition: Core
Controller:
CourseController@getCourseRoute source:
fluent-community/Modules/Course/Http/course_api.php:11Controller source:
fluent-community/Modules/Course/Http/Controllers/CourseController.phpUnpublished courses are visible only to their course admins.
Live sample
The request and response below were recorded against a running FluentCommunity install and then anonymised — member names, emails, avatars and post content are fictional, and long collections are trimmed to a few entries.
GET Get Course
Returns one course by numeric id with its sections, the lessons the caller may see, per-lesson lock state and the current progress track.
Controller: CourseController@getCourse
Route source: fluent-community/Modules/Course/Http/course_api.php:11
Authorizations
WordPress Application Passwords — use Basic auth with username:application_password.
Parameters
Path Parameters
Course ID extracted from the URL path.
Query Parameters
Intended Lesson Slug read via $request->get() in getCourse().
Responses
Successful response