GET /courses
List the authenticated customer’s enrolled courses.Authentication
Requires Bearer token (auth:customer_api).
Headers
Query Parameters
Example Request
Response
Success (200)
GET /courses/
Get details of a specific course enrollment, including module listing.Authentication
Requires Bearer token (auth:customer_api).
Path Parameters
Example Request
Response
Success (200)
Error Responses
GET /courses//progress
Get detailed progress for a course enrollment, including per-module completion status and estimated remaining time.Authentication
Requires Bearer token (auth:customer_api).
Path Parameters
Example Request
Response
Success (200)
The
estimated_remaining_time is in minutes and is calculated from the duration_minutes of incomplete modules.Error Responses
GET /courses//modules/
Get the full content of a specific course module.Authentication
Requires Bearer token (auth:customer_api).
Path Parameters
Example Request
Response
Success (200)
Error Responses
POST /courses//modules//complete
Mark a course module as completed and update progress.Authentication
Requires Bearer token (auth:customer_api).
Path Parameters
Example Request
Response
Success (200)
Error Responses
Legacy Course Endpoints
The following endpoints are maintained for backward compatibility. They use thecustomer/courses prefix and are handled by the OrderController.
GET /customer/courses
List the customer’s course enrollments. Same functionality asGET /courses.
GET /customer/courses/
Get a specific course enrollment. Same functionality asGET /courses/{id}.
GET /customer/courses//modules/
Get a course module with pagination-style navigation (previous/next module links). Returns the module content alongside anavigation object.
Response
POST /customer/courses//modules//complete
Mark a course module as completed. Same functionality asPOST /courses/{courseId}/modules/{moduleId}/complete.
New integrations should use the
/courses/* endpoints instead of /customer/courses/*. The legacy endpoints remain available for backward compatibility.
