Skip to content

Returns the paginated course catalogue visible to the current user, each entry carrying its enrolment state, progress, section and lesson counts.

Only published courses are listed, except that course creators also see their own drafts. Secret courses appear only if the caller is enrolled. Filter with search, topic_slug and type=enrolled; sort with sort_by set to alphabetical (default), latest or oldest. Pass with_categories to receive the category list alongside the courses.

Endpoint

  • Method: GET

  • Path: /courses

  • Edition: Core

  • Controller: CourseController@getCourses

  • Route source: fluent-community/Modules/Course/Http/course_api.php:10

  • Controller source: fluent-community/Modules/Course/Http/Controllers/CourseController.php

  • Courses with hide_members_count enabled report a studentsCount of zero rather than omitting it.

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 List Courses

GET
/courses

Returns the paginated course catalogue visible to the current user, each entry carrying its enrolment state, progress, section and lesson counts.

Controller: CourseController@getCourses
Route source: fluent-community/Modules/Course/Http/course_api.php:10

Authorizations

ApplicationPasswords

WordPress Application Passwords — use Basic auth with username:application_password.

Type
API Key (header: Authorization)

Parameters

Query Parameters

search

Search read via $request->getSafe() in getCourses().

Type
string
topic_slug

Topic Slug read via $request->getSafe() in getCourses().

Type
string
type

Type read via $request->getSafe() in getCourses().

Type
string
sort_by

Sort By read via $request->getSafe() in getCourses().

Type
string
Default
"alphabetical"
with_categories

With Categories read via $request->get() in getCourses().

Type
string

Responses

Successful response

application/json
JSON
{
  
"course_categories": [
  
  
{
  
  
  
"additionalProperties": "string"
  
  
}
  
],
  
"courses": {
  
  
"current_page": 0,
  
  
"data": [
  
  
  
{
  
  
  
  
"cover_photo": "string",
  
  
  
  
"created_at": "string",
  
  
  
  
"created_by": "string",
  
  
  
  
"description": "string",
  
  
  
  
"id": 0,
  
  
  
  
"isEnrolled": true,
  
  
  
  
"lessonsCount": 0,
  
  
  
  
"logo": "string",
  
  
  
  
"parent_id": "string",
  
  
  
  
"privacy": "string",
  
  
  
  
"sectionsCount": 0,
  
  
  
  
"serial": "string",
  
  
  
  
"settings": {
  
  
  
  
  
"can_request_join": "string",
  
  
  
  
  
"course_details": "string",
  
  
  
  
  
"course_layout": "string",
  
  
  
  
  
"course_type": "string",
  
  
  
  
  
"custom_lock_screen": "string",
  
  
  
  
  
"disable_comments": "string",
  
  
  
  
  
"emoji": "string",
  
  
  
  
  
"hide_instructor_view": "string",
  
  
  
  
  
"hide_members_count": "string",
  
  
  
  
  
"layout_style": "string",
  
  
  
  
  
"links": [
  
  
  
  
  
  
{
  
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
  
}
  
  
  
  
  
],
  
  
  
  
  
"members_page_status": "string",
  
  
  
  
  
"og_image": "string",
  
  
  
  
  
"public_lesson_view": "string",
  
  
  
  
  
"restricted_post_only": "string",
  
  
  
  
  
"sequential_lesson_order": "string",
  
  
  
  
  
"shape_svg": "string",
  
  
  
  
  
"show_instructor_students_count": "string",
  
  
  
  
  
"show_sidebar": "string",
  
  
  
  
  
"topic_required": "string"
  
  
  
  
},
  
  
  
  
"slug": "string",
  
  
  
  
"status": "string",
  
  
  
  
"studentsCount": 0,
  
  
  
  
"title": "string",
  
  
  
  
"type": "string",
  
  
  
  
"updated_at": "string"
  
  
  
}
  
  
],
  
  
"first_page_url": "string",
  
  
"from": 0,
  
  
"last_page": 0,
  
  
"last_page_url": "string",
  
  
"links": [
  
  
  
{
  
  
  
  
"active": true,
  
  
  
  
"label": "string",
  
  
  
  
"url": "string"
  
  
  
}
  
  
],
  
  
"next_page_url": "string",
  
  
"path": "string",
  
  
"per_page": 0,
  
  
"prev_page_url": "string",
  
  
"to": 0,
  
  
"total": 0
  
}
}

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

FluentCommunity developer documentation