API Documentation

Generated at 2026-08-04T07:08:47+08:00 • base https://staging.learnest.my

Api

Endpoint
Controller
App\Http\Controllers\API\AccountController@show
Middleware
api auth:sanctum account.status.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/account-settings" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AccountController@update
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
email: string first_name: string last_name: string
Body fields
Field Type Required Rules
profile_image file No nullable|image|mimes:jpg,jpeg,png|max:2048
first_name string No nullable|string|max:255
last_name string No nullable|string|max:255
phone string No nullable|string|max:20
email email No nullable|email|max:255
address string No nullable|string|max:255
country string No nullable|string|max:255
dob date No nullable|date
bio string No nullable|string
Content type: multipart/form-data
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/account-settings" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "profile_image=@/path/to/profile_image.bin" \
+  -F "first_name=<value>" \
+  -F "last_name=<value>" \
+  -F "phone=<value>" \
+  -F "email=<value>" \
+  -F "address=<value>" \
+  -F "country=<value>" \
+  -F "dob=<value>" \
+  -F "bio=<value>"

Endpoint
Controller
App\Http\Controllers\API\Admin\AiCostController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
from: string to: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/ai-costs?from=%3Cvalue%3E&to=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\CaptionSettingsController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "settings": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/captions/settings" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\CaptionSettingsController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "ok": "<boolean>",
        "updated_keys": "<object>"
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/admin/captions/settings" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\ChapterController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-chapter
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
course_id string Yes required|exists:courses,id
title string Yes required|string|max:255
order integer Yes required|integer|min:1
Content type: application/json
Responses
Status
201
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/chapters" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"course_id":"<value>","title":"<value>","order":0}'

Endpoint
Controller
App\Http\Controllers\Backend\ChapterController@create
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-chapter
Auth
Required
Request
Path params
courseId: string
Query params
None
Body fields
None
Responses
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/chapters/course/{courseId}/create" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\ChapterController@reorder
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:reorder-chapter
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
items array Yes required|array
items[].id string Yes required|exists:chapters,id
items[].order integer Yes required|integer|min:1
Content type: application/json
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/chapters/reorder" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"id":"<value>","order":0}]}'

Endpoint
Controller
App\Http\Controllers\Backend\ChapterController@deleteChapter
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:delete-chapter
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/chapters/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\ChapterController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:edit-chapter
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
order integer Yes required|integer|min:1
Content type: application/json
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/admin/chapters/{id}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"title":"<value>","order":0}'

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-course|edit-course|delete-course
Auth
Required
Request
Path params
None
Query params
search: string subject: string level: string status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/courses?search=%3Cvalue%3E&subject=%3Cvalue%3E&level=%3Cvalue%3E&status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-course
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
description string No nullable|string
subject_id string Yes required|exists:subjects,id
user_id string Yes required|exists:users,id
level_id string Yes required|exists:levels,id
thumbnail_url file No nullable|image|max:2048
Content type: multipart/form-data
Responses
Status
201
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/courses" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "subject_id=<value>" \
+  -F "user_id=<value>" \
+  -F "level_id=<value>" \
+  -F "thumbnail_url=@/path/to/thumbnail_url.bin"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:delete-course
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/courses/{course}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-course|edit-course|delete-course
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/courses/{course}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:edit-course
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
user_id string Yes required|exists:users,id
description string No nullable|string
subject_id string Yes required|exists:subjects,id
level_id string Yes required|exists:levels,id
thumbnail_url file No nullable|image|max:2048
Content type: multipart/form-data
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/admin/courses/{course}" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "title=<value>" \
+  -F "user_id=<value>" \
+  -F "description=<value>" \
+  -F "subject_id=<value>" \
+  -F "level_id=<value>" \
+  -F "thumbnail_url=@/path/to/thumbnail_url.bin"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@publish
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/courses/{course}/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\CourseController@unpublish
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/courses/{course}/unpublish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\DeviceController@fcmAccessToken
Middleware
api auth:sanctum account.status.api verified.api role.api:admin throttle:10,1
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>",
        "usage_example": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/firebase/access-token" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LessonController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:create-lesson
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
chapter_id string Yes required|exists:chapters,id
title string Yes required|string|max:255
description string No nullable|string
video file Yes required_without:video_key|nullable|file|mimes:mp4,mov,avi|max:2048000
video_key string Yes required_without:video|nullable|string|regex:/^lessons\/videos\//
video_duration integer No nullable|integer
resource file No nullable|file|mimes:pdf|max:10240
resource_key string No nullable|string|regex:/^lessons\/resources\//
Content type: multipart/form-data
Responses
Status
201
{
    "status": true,
    "message": "string",
    "data": "object"
}
Status
500
{
    "status": false,
    "message": "string"
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/lessons" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "chapter_id=<value>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "video=@/path/to/video.bin" \
+  -F "video_key=<value>" \
+  -F "video_duration=<value>" \
+  -F "resource=@/path/to/resource.bin" \
+  -F "resource_key=<value>"

Endpoint
Controller
App\Http\Controllers\Backend\LessonController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:delete-lesson
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "status": true,
    "message": "string",
    "data": "object"
}
Status
500
{
    "status": false,
    "message": "string"
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/lessons/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LessonController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth permission:edit-lesson
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
chapter_id string Yes required|exists:chapters,id
title string Yes required|string|max:255
description string No nullable|string
video file No nullable|file|mimes:mp4,mov,avi|max:2048000
video_key string No nullable|string|regex:/^lessons\/videos\//
resource file No nullable|file|mimes:pdf|max:10240
resource_key string No nullable|string|regex:/^lessons\/resources\//
Content type: multipart/form-data
Responses
Status
200
{
    "status": true,
    "message": "string",
    "data": "object"
}
Status
500
{
    "status": false,
    "message": "string"
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/admin/lessons/{id}" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "chapter_id=<value>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "video=@/path/to/video.bin" \
+  -F "video_key=<value>" \
+  -F "resource=@/path/to/resource.bin" \
+  -F "resource_key=<value>"

Endpoint
Controller
App\Http\Controllers\Backend\LessonController@publishLesson
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "status": true,
    "message": "string",
    "data": "object"
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/lessons/{id}/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LessonController@requestForUpdate
Middleware
api auth:sanctum account.status.api verified.api role.api:admin auth
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "status": true,
    "message": "string",
    "data": "object"
}
Status
500
{
    "status": false,
    "message": "string"
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/lessons/{id}/request-update" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AdminReferralController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/referrals?status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AdminReferralController@reprocessPaid
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "processed": "<object>",
        "skipped": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/referrals/reprocess-paid" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AdminReferralController@clawBack
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
reason string Yes required|string|min:5|max:500
Content type: application/json
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/referrals/{id}/claw-back" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"reason":"<value>"}'

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:673:"function (\Illuminate\Http\Request $request) { $data = $request->validate([ 'student_id' => ['required', 'integer', 'exists:users,id'], 'type' => ['required', 'string'], 'title' => ['required', 'string'], 'message' => ['required', 'string'], ]); \App\Services\NotificationService::notify( userId: $data['student_id'], type: $data['type'], title: $data['title'], message: $data['message'], ); return \response()->json(['status' => 'notification_created']); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000005ba0000000000000000";}}
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/reminders/test-send" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\TopicController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
subject_id: string status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/topics?subject_id=%3Cvalue%3E&status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\TopicController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
name string Yes required|string|max:120
parent_id integer No nullable|integer|Rule::exists('topics|id')
subject_id integer No nullable|integer|Rule::exists('subjects|id')
sort_order integer No nullable|integer|min:0
Content type: application/json
Responses
Status
422
{
    "example": {
        "message": "<string>",
        "errors": "<array>"
    }
}
Status
201
{
    "example": {
        "data": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/topics" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","parent_id":0,"subject_id":0,"sort_order":0}'

Endpoint
Controller
App\Http\Controllers\API\Admin\TopicController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
409
{
    "example": {
        "message": "<string>",
        "in_use_by": "<array>"
    }
}
Status
200
{
    "example": {
        "data": "<array>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/topics/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\TopicController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
name string No sometimes|string|max:120
parent_id integer No sometimes|nullable|integer|Rule::exists('topics|id')
status string No sometimes|Rule::in([Topic::STATUS_APPROVED|Topic::STATUS_PROPOSED|Topic::STATUS_REJECTED
sort_order integer No sometimes|integer|min:0
Content type: application/json
Responses
Status
200
{
    "example": {
        "data": "<object>"
    }
}
Status
422
{
    "success": false,
    "message": "Move would exceed MAX_DEPTH (D2)"
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/admin/topics/{id}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","parent_id":0,"status":"<value>","sort_order":0}'

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
status: string search: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/tutor-verifications?status=%3Cvalue%3E&search=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/tutor-verifications/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/tutor-verifications/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@approve
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/tutor-verifications/{id}/approve" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@reject
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
rejection_reason string Yes required|string|max:1000
Content type: application/json
Responses
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/tutor-verifications/{id}/reject" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"rejection_reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@requestResubmit
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
rejection_reason string Yes required|string|max:1000
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/tutor-verifications/{id}/resubmit" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"rejection_reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
status: string search: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/verifications?status=%3Cvalue%3E&search=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/admin/verifications/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/verifications/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@approve
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/verifications/{id}/approve" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@reject
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
rejection_reason string Yes required|string|max:1000
Content type: application/json
Responses
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/verifications/{id}/reject" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"rejection_reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@requestResubmit
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
rejection_reason string Yes required|string|max:1000
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/admin/verifications/{id}/resubmit" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"rejection_reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Admin\XpSettingsController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "settings": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/admin/xp/settings" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Admin\XpSettingsController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:admin
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "ok": "<boolean>",
        "updated_keys": "<object>"
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/admin/xp/settings" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\BBBWebhookController@handle
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/bbb/webhook"

Endpoint
Controller
App\Http\Controllers\API\AccountController@changePassword
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
old_password string Yes required
new_password string Yes required|string|confirmed|Password::min(8)->mixedCase()->numbers()->symbols()
Content type: application/json
Responses
Status
422
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/change-password" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"old_password":"<value>","new_password":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\ClientLogController@store
Middleware
api throttle:client-log
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
201
{
    "example": {
        "logged": "<boolean>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/client-log"

Endpoint
Controller
App\Http\Controllers\API\ConfigController@adaptive
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/config/adaptive"

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:313:"function () { return \response()->json([ 'success' => true, 'data' => [ 'weakness_detector_enabled' => \filter_var( \App\Models\SystemSetting::getValue('weakness_detector.enabled', '0'), FILTER_VALIDATE_BOOLEAN ), ], ]); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000005920000000000000000";}}
Middleware
api throttle:60,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/config/features"

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:447:"function () { $settings = \App\Models\SystemSetting::whereIn('key', [ 'quiz_passing_score', 'max_quiz_attempts_per_day', ])->pluck('value', 'key'); return \response()->json([ 'success' => true, 'data' => [ 'passing_score' => (int) ($settings['quiz_passing_score'] ?? 70), 'max_attempts_per_day' => (int) ($settings['max_quiz_attempts_per_day'] ?? 3), ], ]); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"000000000000058f0000000000000000";}}
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/config/quiz-defaults"

Endpoint
Controller
App\Http\Controllers\API\ConfigController@whatsappTemplates
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/config/whatsapp-templates"

Endpoint
Controller
App\Http\Controllers\API\APIController@getCoursesWithChapters
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/courses-with-chapters" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:408:"function(string $course) { // Accept either numeric id or slug — Laravel's default model binding only // handled id, so slug-based callers (mobile / web frontend) used to 404. $model = \ctype_digit($course) ? \App\Models\Course::findOrFail((int) $course) : \App\Models\Course::where('slug', $course)->firstOrFail(); return $model->chapters()->select('id', 'title')->get(); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"000000000000058d0000000000000000";}}
Middleware
api
Auth
Not required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/courses/{course}/chapters"

Endpoint
Controller
App\Http\Controllers\API\CurlecWebhookController@handle
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/curlec/webhook"

Endpoint
Controller
App\Http\Controllers\API\DeviceController@showPreferences
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/devices/preferences" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\DeviceController@updatePreferences
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
push_enabled boolean No sometimes|boolean
categories array No sometimes|array
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/devices/preferences" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"push_enabled":true,"categories":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\DeviceController@refresh
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
old_token string Yes required|string|max:512
new_token string Yes required|string|max:512|different:old_token
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/devices/refresh" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"old_token":"<value>","new_token":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\DeviceController@register
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
token string Yes required|string|max:512
platform string Yes required|Rule::in(['android|ios|web
app_version string No nullable|string|max:32
device_name string No nullable|string|max:128
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/devices/register" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"token":"<value>","platform":"<value>","app_version":"<value>","device_name":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\DeviceController@unregister
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
token string Yes required|string|max:512
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/devices/unregister" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Auth\EmailVerificationController@resend
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
email email Yes required|email
Content type: application/json
Responses
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/email/resend" \
  -H "Content-Type: application/json" \
  -d '{"email":"<value>"}'

Endpoint
Controller
\App\Http\Controllers\API\Auth\EmailVerificationController@notification
Middleware
api throttle:3,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
email email Yes required|email
Content type: application/json
Responses
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/email/verification-notification" \
  -H "Content-Type: application/json" \
  -d '{"email":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Auth\EmailVerificationController@verify
Middleware
api signed
Auth
Not required
Request
Path params
id: string hash: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/email/verify/{id}/{hash}"

Endpoint
Controller
App\Http\Controllers\API\AccountController@exportMyData
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/export-my-data" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
\App\Http\Controllers\API\Auth\PasswordResetController@forgot
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
email email Yes required|email
Content type: application/json
Responses
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/forgot-password" \
  -H "Content-Type: application/json" \
  -d '{"email":"<value>"}'

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:95:"function () { return \response()->json(['status' => 'ok', 'app' => \config('app.name')]); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000005ab0000000000000000";}}
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/health"

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:794:"function () { $locale = \app()->getLocale(); $supported = (array) \config('app.supported_locales', ['en']); // __() returns the key string (not an array) when no translation file exists. // Only include a section if it resolved to an actual array — a string value // would deepMerge-overwrite the frontend's static locale bundle for that key. $extra = []; $onboarding = \__('onboarding'); $studyPlan = \__('study-plan'); if (\is_array($onboarding)) $extra['onboarding'] = $onboarding; if (\is_array($studyPlan)) $extra['study_plan'] = $studyPlan; return \response()->json([ 'success' => true, 'locale' => $locale, 'supported' => $supported, 'data' => \array_merge((array) \__('ui'), $extra), ]); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"000000000000059e0000000000000000";}}
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/i18n/ui"

Endpoint
Controller
App\Http\Controllers\API\APIController@getLevels
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "levels": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/levels"

Endpoint
Controller
App\Http\Controllers\API\AuthController@login
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
401
{
    "example": {
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>",
        "user": "<object>",
        "token": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/login"

Endpoint
Controller
App\Http\Controllers\API\AuthController@loginSims
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
student_uid: string password: string
Body fields
None
Responses
Status
422
{
    "example": {
        "status": "<string>",
        "message": "<object>",
        "errors": "<object>"
    }
}
Status
401
{
    "example": {
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<string>",
        "message": "<string>",
        "user": "<array>",
        "sims_details": "<value>",
        "token": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/login/sims"

Endpoint
Controller
App\Http\Controllers\API\AuthController@logout
Middleware
api auth:sanctum
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/logout" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AuthController@me
Middleware
api auth:sanctum
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "user": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/me" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
O:55:"Laravel\SerializableClosure\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\SerializableClosure\Serializers\Native":5:{s:3:"use";a:0:{}s:8:"function";s:299:"function (\Illuminate\Http\Request $request) { $user = $request->user(); return \response()->json([ 'success' => true, 'verified' => $user->hasVerifiedEmail(), 'verified_at' => $user->email_verified_at?->toIso8601String(), ]); }";s:5:"scope";s:37:"Illuminate\Routing\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"000000000000057d0000000000000000";}}
Middleware
api auth:sanctum
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/me/email-verification-status" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\FeatureFlagController@forCurrentUser
Middleware
api auth:sanctum
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/me/flags" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AccountController@updatePreferredLocale
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
preferred_locale string Yes required|string|in:' . implode(||$supported)
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "preferred_locale": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/me/preferred-locale" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"preferred_locale":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\NotificationController@index
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
type: string unread_only: string
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "unread_count": "<value>",
        "notifications": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/notifications?type=%3Cvalue%3E&unread_only=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\NotificationController@markAllRead
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/notifications/mark-all-read" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\NotificationController@unreadCount
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "unread_count": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/notifications/unread-count" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\NotificationController@destroy
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/notifications/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\NotificationController@markAsRead
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "redirect_url": "<object>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/notifications/{id}/read" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@banks
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/banks"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@cities
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/cities"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@citiesByState
Middleware
api
Auth
Not required
Request
Path params
state_id: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/cities/{state_id}"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@educationLevels
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/education-levels"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@levels
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/levels"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@preferableLocations
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/preferable-locations"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@relationships
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/relationships"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@states
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/states"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@subjects
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/subjects"

Endpoint
Controller
App\Http\Controllers\API\OpenLookupController@tutoringModes
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/open/tutoring-modes"

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@dashboard
Middleware
api
Auth
Not required
Request
Path params
token: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/parent-access/{token}"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@cancelSubscription
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
cancel_type string Yes required|in:immediate,end_of_period
Content type: application/json
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "subscription": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/payment/cancel-subscription" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"cancel_type":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\PaymentController@createOrder
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
plan string Yes required|in:monthly
Content type: application/json
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/payment/create-order" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"plan":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\PaymentController@history
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/history" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@invoices
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/invoices" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@showInvoice
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/invoices/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@downloadInvoiceUrl
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "download_url": "<object>",
        "expires_in": "<number>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/invoices/{id}/download-url" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@plans
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "plans": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/plans" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@status
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "is_premium": "<value>",
        "subscription": "<object>",
        "last_payment": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/payment/status" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\PaymentController@verifyPayment
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
razorpay_order_id string Yes required|string
razorpay_payment_id string Yes required|string
razorpay_signature string Yes required|string
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "idempotent": "<boolean>"
    }
}
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/payment/verify" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"razorpay_order_id":"<value>","razorpay_payment_id":"<value>","razorpay_signature":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\ReferralController@lookupCode
Middleware
api throttle:30,1
Auth
Not required
Request
Path params
code: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "referrer_name": "<object>",
        "discount": "<number>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/referral/lookup/{code}"

Endpoint
Controller
App\Http\Controllers\API\ReferralController@myCode
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "code": "<object>",
        "link": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/referral/my-code" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\ReferralController@tally
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "tally": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/referral/tally" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AuthController@refreshToken
Middleware
api auth:sanctum
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "message": "<string>",
        "token": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/refresh-token" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\AuthController@register
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
name string Yes required|string|max:255
email email Yes required|email|max:255|unique:users
password string Yes required|string|min:8|confirmed|regex:/[A-Z]/|regex:/[0-9]/
pdpa_terms boolean No accepted
pdpa_privacy boolean No accepted
pdpa_consent boolean No accepted
user_type string Yes required|in:student,tutor,parent
children[] array No required|array|min:1 (when user_type=parent)
children[].name string Yes required|string|max:255 (when user_type=parent)
children[].form_level string Yes required|in:primary,secondary,college (when user_type=parent)
children[].email email No nullable|email|max:255 (when provided, unique:users,email)
form_level string No required|string|max:255 (when user_type=student)
Content type: application/json
Responses
Status
422
{
    "example": {
        "status": "<string>",
        "message": "<string>",
        "errors": "<array>"
    }
}
Status
200
{
    "example": {
        "status": "<string>",
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "status": "<string>",
        "message": "<string>",
        "parent": "<array>",
        "children": "<object>",
        "user_full": "<object>",
        "token": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","email":"<value>","password":"<value>","pdpa_terms":true,"pdpa_privacy":true,"pdpa_consent":true,"user_type":"<value>","form_level":"<value>","children":["<value>"]}'

Endpoint
Controller
App\Http\Controllers\API\SimsRegistrationController@legacy
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
410
{
    "example": {
        "status": "<string>",
        "code": "<string>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register/sims"

Endpoint
Controller
App\Http\Controllers\API\SimsRegistrationController@complete
Middleware
api throttle:sims-registration
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": []
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register/sims/complete"

Endpoint
Controller
App\Http\Controllers\API\SimsRegistrationController@resend
Middleware
api throttle:sims-registration
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
202
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register/sims/resend"

Endpoint
Controller
App\Http\Controllers\API\SimsRegistrationController@start
Middleware
api throttle:sims-registration
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
202
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register/sims/start"

Endpoint
Controller
App\Http\Controllers\API\SimsRegistrationController@verify
Middleware
api throttle:sims-registration
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/register/sims/verify"

Endpoint
Controller
\App\Http\Controllers\API\Auth\PasswordResetController@reset
Middleware
api throttle:5,1
Auth
Not required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
token string Yes required
email email Yes required|email
password string Yes required|confirmed|min:8
Content type: application/json
Responses
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/reset-password" \
  -H "Content-Type: application/json" \
  -d '{"token":"<value>","email":"<value>","password":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIController@getSubjects
Middleware
api
Auth
Not required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "subjects": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/subjects"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonTopicTaggingController@update
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
Field Type Required Rules
topic_ids array No present|array
topic_ids[] integer No integer|Rule::exists('topics|id')->where('status|Topic::STATUS_APPROVED)
Content type: application/json
Responses
Status
422
{
    "example": {
        "message": "<string>",
        "errors": "<array>"
    }
}
Status
200
{
    "example": {
        "data": "<array>"
    }
}
Status
401
{
    "success": false,
    "message": "Authentication required."
}
Status
403
{
    "view": "backend.errors.403",
    "message": "Tutor or admin role required."
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/{lesson}/topics" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"topic_ids":[0]}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuestionTopicTaggingController@update
Middleware
api auth:sanctum account.status.api verified.api
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
Field Type Required Rules
topic_id integer Yes required|integer|Rule::exists('topics|id')->where('status|Topic::STATUS_APPROVED)
Content type: application/json
Responses
Status
200
{
    "example": {
        "data": "<array>"
    }
}
Status
401
{
    "success": false,
    "message": "Authentication required."
}
Status
403
{
    "view": "backend.errors.403",
    "message": "Tutor or admin role required."
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/tutor/quiz-questions/{question}/topic" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"topic_id":0}'

Parent API

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@addChild
Middleware
api auth:sanctum account.status.api role.api:parent
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
name string Yes required|string|max:255
form_level string Yes required|string|in:primary|secondary|college
email email No nullable|email|max:255|unique:users|email
Content type: application/json
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/parent/children" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","form_level":"<value>","email":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@updateChild
Middleware
api auth:sanctum account.status.api role.api:parent
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
name string No sometimes|string|max:255
form_level string No sometimes|string|in:primary|secondary|college
email email No nullable|email|max:255|unique:users|email| . $child->id
password string No nullable|string|min:6|max:128
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/parent/children/{id}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","form_level":"<value>","email":"<value>","password":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@childQuizResults
Middleware
api auth:sanctum account.status.api role.api:parent
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/parent/children/{id}/quiz-results" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@childReport
Middleware
api auth:sanctum account.status.api role.api:parent
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/parent/children/{id}/report" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\ParentDashboardController@myDashboard
Middleware
api auth:sanctum account.status.api role.api:parent
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/parent/dashboard" \
  -H "Authorization: Bearer <API_TOKEN>"

Student API

Endpoint
Controller
App\Http\Controllers\Backend\AiChatController@ask
Middleware
api auth:sanctum account.status.api verified.api role.api:student throttle:30,1 ai.quota
Auth
Required
Request
Path params
None
Query params
chat_id: string subject: string lesson_context.subject: string lesson_context: string
Body fields
None
Responses
Status
503
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "chat_id": "<object>",
        "chat_name": "<object>",
        "is_new_chat": "<object>",
        "answer": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/ai/ask" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@ai_chats
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<object>",
        "meta": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/ai/get/chats" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@getBadges
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/badges" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@browseCourses
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
search: string subject: string level: string tutor: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>",
        "filters": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/browse/courses?search=%3Cvalue%3E&subject=%3Cvalue%3E&level=%3Cvalue%3E&tutor=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@browseLiveClasses
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
upcoming_days: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>",
        "filters": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/browse/live-classes?upcoming_days=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@overallProgress
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/courses/{course}/overall-progress" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "code": "<string>",
        "payment_required": "<boolean>",
        "is_premium": "<boolean>",
        "is_enrolled": "<boolean>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "course": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/courses/{slug}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@acknowledgeCompletion
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/courses/{slug}/completion-acknowledged" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@enrollNow
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
409
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "is_enrolled": "<boolean>",
        "already_enrolled": "<boolean>",
        "code": "<string>"
    }
}
Status
201
{
    "example": {
        "message": "<string>",
        "data": "<array>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/courses/{slug}/enroll" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@reportCourse
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
Field Type Required Rules
reason string Yes required|string|max:1000
Content type: application/json
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
409
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/courses/{slug}/report" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@unEnroll
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/courses/{slug}/unenroll" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@removeFromWishlist
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "is_saved": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/courses/{slug}/wishlist" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@addToWishlist
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "is_saved": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/courses/{slug}/wishlist" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@deleteVideoBookmark
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/lesson/{id}/bookmark" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@videoBookmark
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
Field Type Required Rules
timestamp integer Yes required|integer|min:0
note string No nullable|string|max:1000
Content type: application/json
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/lesson/{id}/bookmark" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"timestamp":0,"note":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@deleteVideoBookmark
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
id: string bookmarkId: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/lesson/{id}/bookmark/{bookmarkId}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@updateVideoProgress
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
Field Type Required Rules
last_position integer Yes required|integer|min:0
duration_delta integer Yes required|integer|min:1|max:10
Content type: application/json
Responses
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/lessons/{lesson}/video-progress" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"last_position":0,"duration_delta":0}'

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@join
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
503
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/live-classes/{liveClass}/join" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\SocraticModeController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
socratic_mode boolean Yes required|boolean
Content type: application/json
Responses
Status
402
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "socratic_mode": "<value>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/me/socratic-mode" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"socratic_mode":true}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@myCourses
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
search: string subject: string level: string tutor: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>",
        "filters": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/my-courses?search=%3Cvalue%3E&subject=%3Cvalue%3E&level=%3Cvalue%3E&tutor=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentCourseController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
slug: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "code": "<string>",
        "payment_required": "<boolean>",
        "is_premium": "<boolean>",
        "is_enrolled": "<boolean>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "course": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/my-courses/{slug}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/parent-access" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@generate
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/parent-access/generate" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@regenerate
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/parent-access/regenerate" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@revoke
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/parent-access/revoke" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@questions
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
attempt: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "attempt_id": "<object>",
        "total_questions": "<object>",
        "time_remaining": "<object>",
        "questions": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/quiz-attempts/{attempt}/questions" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@review
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
attempt: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/quiz-attempts/{attempt}/review" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@submit
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
attempt: string
Query params
answers: string
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "score": "<object>",
        "total_questions": "<object>",
        "correct_answers": "<object>",
        "wrong_answers": "<object>",
        "percentage": "<object>",
        "passed": "<object>",
        "feedback": "<object>",
        "show_results": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/quiz-attempts/{attempt}/submit" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@attempts
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/quizzes/{quiz}/attempts" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@overview
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "quiz": "<array>",
        "attempts": "<array>",
        "attempts_remaining": "<object>",
        "can_attempt": "<object>",
        "can_check_result": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/quizzes/{quiz}/overview" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentQuizController@start
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "attempt_id": "<object>",
        "attempt_number": "<object>",
        "started_at": "<object>",
        "time_limit": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/quizzes/{quiz}/start" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\CertificateController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/certificates" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\CertificateController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
uuid: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<object>"
    }
}
Status
403
{
    "view": "backend.errors.403",
    "message": null
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/certificates/{uuid}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\CertificateController@download
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
uuid: string
Query params
None
Body fields
None
Responses
Status
403
{
    "view": "backend.errors.403",
    "message": null
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/certificates/{uuid}/download" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\DailyChallengeController@today
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/daily-challenge" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\DailyChallengeController@answer
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/daily-challenge/answer" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\DailyChallengeController@history
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/daily-challenge/history" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\DailyChallengeController@skip
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/daily-challenge/skip" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\DailyChallengeController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
id: string
Query params
None
Body fields
None
Responses
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/daily-challenge/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIController@student_dashboard_analytics
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "courses_enrolled": "<array>",
        "videos_watched": "<array>",
        "quiz_average": "<array>",
        "learning_time": "<array>",
        "exam_countdown": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/dashboard-analytics" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\ExamCountdownController@activate
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/exam-countdown/activate" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\ExamCountdownController@setDate
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
exam_date_month integer Yes required|integer|between:1|12
exam_date_year integer Yes required|integer|min:' . now()->year
Content type: application/json
Responses
Status
200
{
    "example": {
        "data": "<array>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/student/exam-countdown/date" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"exam_date_month":0,"exam_date_year":0}'

Endpoint
Controller
App\Http\Controllers\API\Student\ExamCountdownController@dismiss
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/exam-countdown/dismiss" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/handoff/requests" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
201
{
    "example": {
        "_value": "<response expression>"
    }
}
Status
422
{
    "example": {
        "message": "<object>"
    }
}
Status
403
{
    "example": {
        "message": "<object>"
    }
}
Status
500
{
    "example": {
        "message": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/handoff/requests" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
handoffRequest: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": []
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/handoff/requests/{handoffRequest}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@cancel
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
handoffRequest: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/handoff/requests/{handoffRequest}/cancel" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@confirm
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
handoffRequest: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/handoff/requests/{handoffRequest}/confirm" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudentHandoffController@declineTime
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
handoffRequest: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/handoff/requests/{handoffRequest}/decline-time" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@current
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/league/current" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@updateDisplayName
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
display_name string No nullable|string|max:50
Content type: application/json
Responses
Status
200
{
    "example": {
        "ok": "<boolean>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/student/league/display-name" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"display_name":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@history
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>",
        "meta": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/league/history" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@optIn
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "opted_out": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/league/opt-in" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@optOut
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "opted_out": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/league/opt-out" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\LeagueController@updateSettings
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
opt_out boolean No sometimes|boolean
display_name string No sometimes|nullable|string|max:50
Content type: application/json
Responses
Status
200
{
    "example": {
        "ok": "<boolean>",
        "opted_out": "<value>",
        "display_name": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/student/league/settings" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"opt_out":true,"display_name":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Student\CaptionController@streamVtt
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/lessons/{lesson}/captions.vtt" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\CaptionController@signedUrl
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "url": "<object>",
        "expires_at": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/lessons/{lesson}/captions/signed-url" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIPracticeSessionController@start
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice.ff
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/lessons/{lesson}/practice" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\CaptionController@transcript
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "language": "<object>",
        "duration_seconds": "<value>",
        "segments": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/lessons/{lesson}/transcript" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\MasteryHeatmapController@heatmap
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/mastery/heatmap" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\MasteryHeatmapController@subjects
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/mastery/heatmap/subjects" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\MasteryHeatmapController@topic
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
topic: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/mastery/heatmap/topics/{topic}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\MasteryController@topics
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/mastery/topics" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\MasteryController@weakAreas
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/mastery/weak-areas" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\NotificationPreferencesController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/notification-preferences" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\NotificationPreferencesController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X PATCH "{{BASE_URL}}/api/student/notification-preferences" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\NotificationPreferencesController@deleteQuietHours
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/student/notification-preferences/quiet-hours" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\NotificationPreferencesController@showQuietHours
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/notification-preferences/quiet-hours" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\NotificationPreferencesController@updateQuietHours
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
message string No Your quiet hours have been set by an administrator and cannot be changed.
Content type: application/json
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<object>"
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/student/notification-preferences/quiet-hours" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"message":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\NotificationController@markOpened
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
notification_id: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "opened_at": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/notifications/{notification_id}/opened" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\OnboardingController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/onboarding" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\OnboardingController@save
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/onboarding" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\OnboardingController@skip
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/onboarding/skip" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIPracticeSessionController@flag
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice.ff
Auth
Required
Request
Path params
session: string question: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/practice-sessions/{session}/questions/{question}/flag" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIPracticeSessionController@submit
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice.ff
Auth
Required
Request
Path params
session: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/student/practice-sessions/{session}/submit" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\PracticeModeController@history
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice-mode.ff
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/practice/history" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\PracticeModeController@startSession
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice-mode.ff
Auth
Required
Request
Path params
None
Query params
topic_id: string
Body fields
None
Responses
Status
429
{
    "example": {
        "success": "<boolean>",
        "error": "<string>",
        "message": "<string>",
        "resets_at": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/practice/sessions" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\PracticeModeController@answer
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice-mode.ff
Auth
Required
Request
Path params
session: string
Query params
selected_option_id: string
Body fields
None
Responses
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/practice/sessions/{session}/answer" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\PracticeModeController@topics
Middleware
api auth:sanctum account.status.api verified.api role.api:student practice-mode.ff
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/practice/topics" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\WeaknessReportController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
attempt: string
Query params
None
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
202
{
    "example": {
        "status": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/quiz-attempts/{attempt}/weakness-report" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/study-plans" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
status string No active
source string No ai
Content type: application/json
Responses
Status
202
{
    "example": {
        "plan_id": "<object>",
        "status": "<string>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/study-plans" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"status":"<value>","source":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@widget
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/study-plans/widget" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
plan: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/study-plans/{plan}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@updateItem
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
plan: string item: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>"
    }
}
Status
403
{
    "view": "backend.errors.403",
    "message": null
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/student/study-plans/{plan}/items/{item}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@rebalance
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
plan: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/study-plans/{plan}/rebalance" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\StudyPlanController@regenerate
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
plan: string
Query params
None
Body fields
None
Responses
Status
429
{
    "example": {
        "_value": "<response expression>"
    }
}
Status
200
{
    "example": {
        "data": "<value>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/study-plans/{plan}/regenerate" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\WeaknessReportController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
per_page: string
Body fields
None
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>",
        "meta": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/weakness-reports?per_page=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\XpController@events
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/xp/events" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\XpController@markMilestoneSeen
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
badge: string
Body fields
Field Type Required Rules
badge string Yes required|string|in:' . implode(||self::STREAK_BADGES)
Content type: application/json
Responses
Status
200
{
    "example": {
        "ok": "<boolean>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/student/xp/milestone-seen" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"badge":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Student\XpController@streakCalendar
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/student/xp/streak-calendar" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Student\XpController@summary
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X GET "{{BASE_URL}}/api/student/xp/summary" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
filter: string
Body fields
Field Type Required Rules
lesson_id string Yes required|exists:lessons,id
Content type: application/json
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "total_comments": "<object>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/video-qna?filter=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
lesson_id string Yes required|exists:lessons,id
question_text string Yes required|string
Content type: application/json
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/video-qna" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"lesson_id":"<value>","question_text":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@unflag
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
flaggable_type string Yes required|in:video_question,video_answer
flaggable_id integer Yes required|integer
Content type: application/json
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/video-qna/flag" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@flag
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
flaggable_type string Yes required|in:video_question,video_answer
flaggable_id integer Yes required|integer
reason string No nullable|string|max:1000
Content type: application/json
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/video-qna/flag" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"flaggable_type":"<value>","flaggable_id":0,"reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@recentUserQA
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
401
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "total_comments": "<object>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/video-qna/recent" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/video-qna/{question}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@reply
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
Field Type Required Rules
answer_text string Yes required|string
Content type: application/json
Responses
Status
201
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/video-qna/{question}/reply" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"answer_text":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
Field Type Required Rules
question_text string Yes required|string
is_anonymous boolean No nullable|boolean
Content type: application/json
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/video-qna/{question}/update-qa" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"question_text":"<value>","is_anonymous":true}'

Endpoint
Controller
App\Http\Controllers\API\APIStudentVideoQAController@upvote
Middleware
api auth:sanctum account.status.api verified.api role.api:student
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/video-qna/{question}/upvote" \
  -H "Authorization: Bearer <API_TOKEN>"

Tutor API

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@updateSegment
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
segment: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "segment": "<object>"
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/tutor/captions/segments/{segment}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
search: string subject: string level: string status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "courses": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/courses?search=%3Cvalue%3E&subject=%3Cvalue%3E&level=%3Cvalue%3E&status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
description string No nullable|string
subject_id string Yes required|exists:subjects,id
level_id string Yes required|exists:levels,id
thumbnail_url file No nullable|image|max:2048
access_type boolean Yes required|boolean
Content type: multipart/form-data
Responses
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/courses" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "subject_id=<value>" \
+  -F "level_id=<value>" \
+  -F "thumbnail_url=@/path/to/thumbnail_url.bin" \
+  -F "access_type=<value>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/tutor/courses/{course}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "course": "<array>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/courses/{course}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
description string No nullable|string
subject_id string Yes required|exists:subjects,id
level_id string Yes required|exists:levels,id
thumbnail_url file No nullable|image|max:2048
access_type boolean Yes required|boolean
Content type: multipart/form-data
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/courses/{course}" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "subject_id=<value>" \
+  -F "level_id=<value>" \
+  -F "thumbnail_url=@/path/to/thumbnail_url.bin" \
+  -F "access_type=<value>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CourseController@publish
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
course: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/courses/{course}/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorDashboardController@stats
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/dashboard-stats" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorHandoffController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<value>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/handoff/requests" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorHandoffController@complete
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
handoff: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/handoff/requests/{handoff}/complete" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorHandoffController@decline
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
handoff: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/handoff/requests/{handoff}/decline" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorHandoffController@propose
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
handoff: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "_value": "<response expression>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/handoff/requests/{handoff}/propose" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
chapter_id: string status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "lessons": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/lessons?chapter_id=%3Cvalue%3E&status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
chapter_id string Yes required|exists:chapters,id
title string Yes required|string|max:255
description string No nullable|string
video file Yes required_without:video_key|nullable|file|mimes:mp4,mov,avi|max:2048000
video_key string Yes required_without:video|nullable|string|regex:/^lessons\/videos\//
video_duration integer No nullable|integer
resource file No nullable|file|mimes:pdf|max:10240
resource_key string No nullable|string|regex:/^lessons\/resources\//
is_review boolean No nullable|boolean
Content type: multipart/form-data
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "chapter_id=<value>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "video=@/path/to/video.bin" \
+  -F "video_key=<value>" \
+  -F "video_duration=<value>" \
+  -F "resource=@/path/to/resource.bin" \
+  -F "resource_key=<value>" \
+  -F "is_review=<value>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@uploadInit
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
filename string Yes required|string|max:255
content_type string Yes required|string|max:100
kind string Yes required|in:video,resource
chapter_id integer Yes required|integer|exists:chapters,id
Content type: application/json
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "key": "<object>",
        "upload_url": "<object>",
        "headers": "<value>",
        "expires_at": "<value>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/upload-init" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"filename":"<value>","content_type":"<value>","kind":"<value>","chapter_id":0}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/tutor/lessons/{lesson}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/lessons/{lesson}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
Field Type Required Rules
chapter_id string Yes required|exists:chapters,id
title string Yes required|string|max:255
description string No nullable|string
video file No nullable|file|mimes:mp4,mov,avi|max:2048000
video_key string No nullable|string|regex:/^lessons\/videos\//
video_duration integer No nullable|integer
resource file No nullable|file|mimes:pdf|max:10240
resource_key string No nullable|string|regex:/^lessons\/resources\//
is_review boolean No nullable|boolean
Content type: multipart/form-data
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/lessons/{lesson}" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "chapter_id=<value>" \
+  -F "title=<value>" \
+  -F "description=<value>" \
+  -F "video=@/path/to/video.bin" \
+  -F "video_key=<value>" \
+  -F "video_duration=<value>" \
+  -F "resource=@/path/to/resource.bin" \
+  -F "resource_key=<value>" \
+  -F "is_review=<value>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "caption": "<value>",
        "segments": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/lessons/{lesson}/captions" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
Field Type Required Rules
language string Yes required|string|in:en|ms|zh
Content type: application/json
Responses
Status
404
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "caption": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PATCH "{{BASE_URL}}/api/tutor/lessons/{lesson}/captions" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"language":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@publish
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "caption": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/{lesson}/captions/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@revertSegment
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string segment: string
Query params
None
Body fields
None
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "segment": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/{lesson}/captions/revert-segment/{segment}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\CaptionController@transcribe
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
409
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "caption_status": "<object>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "caption_status": "<object>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "caption": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/{lesson}/captions/transcribe" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\LessonController@publish
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
lesson: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/lessons/{lesson}/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
date: string tutor_id: string course_id: string status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/live-classes?date=%3Cvalue%3E&tutor_id=%3Cvalue%3E&course_id=%3Cvalue%3E&status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
course_id string Yes required|exists:courses,id
scheduled_at date Yes required|date|after:now
duration integer Yes required|integer|min:1
description string No nullable|string
Content type: application/json
Responses
Status
201
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/live-classes" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"title":"<value>","course_id":"<value>","scheduled_at":"2026-01-01","duration":0,"description":"<value>"}'

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/live-classes/{liveClass}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
Field Type Required Rules
title string Yes required|string|max:255
course_id string Yes required|exists:courses,id
scheduled_at date Yes required|date|after:now
duration integer Yes required|integer|min:1
description string No nullable|string
Content type: application/json
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/live-classes/{liveClass}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"title":"<value>","course_id":"<value>","scheduled_at":"2026-01-01","duration":0,"description":"<value>"}'

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@attendanceLog
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/live-classes/{liveClass}/attendance-log" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@cancel
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/live-classes/{liveClass}/cancel" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@edit
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/live-classes/{liveClass}/edit" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@join
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
None
Responses
Status
400
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
503
{
    "example": {
        "status": "<boolean>",
        "message": "<object>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<object>",
        "error": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/live-classes/{liveClass}/join" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\LiveClassController@uploadRecording
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
liveClass: string
Query params
None
Body fields
Field Type Required Rules
chapter_id string Yes required|exists:chapters,id
title string Yes required|string|max:255
video file Yes required_without:video_key|nullable|file|mimes:mp4|max:2048000
video_key string Yes required_without:video|nullable|string|regex:/^lessons\/videos\//
Content type: multipart/form-data
Responses
Status
403
{
    "example": {
        "status": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "lesson": "<object>"
    }
}
Status
500
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "error": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/live-classes/{liveClass}/upload-recording" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "chapter_id=<value>" \
+  -F "title=<value>" \
+  -F "video=@/path/to/video.bin" \
+  -F "video_key=<value>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
status: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/quizzes?status=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
lesson_id string Yes nullable|required_if:quiz_type,lesson_quiz|exists:lessons,id
chapter_ids array Yes nullable|required_if:quiz_type,exam_quiz|array|min:1
chapter_ids[] string No exists:chapters,id
title string Yes required|string|max:255
quiz_type string Yes required|in:lesson_quiz,exam_quiz
time_limit integer No nullable|integer|min:1|max:60
total_marks integer Yes required|integer|min:1
attempts_allowed integer Yes required|integer|min:1|max:3
show_results boolean No nullable|boolean
shuffle_questions boolean No nullable|boolean
questions array Yes required|array|min:5|max:20
questions[].text string Yes required
questions[].type string Yes required|in:mcq,true_false
questions[].correct string Yes required
questions[].topic_id integer No nullable|integer|exists:topics,id
Content type: application/json
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/quizzes" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"lesson_id":"<value>","chapter_ids":["<value>"],"title":"<value>","quiz_type":"<value>","time_limit":0,"total_marks":0,"attempts_allowed":0,"show_results":true,"shuffle_questions":true,"questions":[{"text":"<value>","type":"<value>","correct":"<value>","topic_id":0}]}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@destroy
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/tutor/quizzes/{quiz}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/quizzes/{quiz}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
Field Type Required Rules
lesson_id string No nullable|exists:lessons,id
chapter_ids array Yes nullable|required_if:quiz_type,exam_quiz|array|min:1
chapter_ids[] string No exists:chapters,id
title string Yes required|string|max:255
quiz_type string Yes required|in:lesson_quiz,exam_quiz
time_limit integer No nullable|integer|min:1|max:60
total_marks integer Yes required|integer|min:1
attempts_allowed integer Yes required|integer|min:1|max:3
questions array Yes required|array|min:5|max:20
questions[].text string Yes required
questions[].type string Yes required|in:mcq,true_false
questions[].correct string Yes required
questions[].topic_id integer No nullable|integer|exists:topics,id
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "data": "<object>"
    }
}
Status
500
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/quizzes/{quiz}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"lesson_id":"<value>","chapter_ids":["<value>"],"title":"<value>","quiz_type":"<value>","time_limit":0,"total_marks":0,"attempts_allowed":0,"questions":[{"text":"<value>","type":"<value>","correct":"<value>","topic_id":0}]}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\QuizController@publish
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
quiz: string
Query params
None
Body fields
None
Responses
No explicit responses found in source code.
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/quizzes/{quiz}/publish" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\ReferralController@giftMonth
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
student_id integer Yes required|integer|exists:users,id
Content type: application/json
Responses
Status
422
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/referral/gift-month" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"student_id":0}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorStudentController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/students" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorStudentController@studentResults
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<object>",
        "filters": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/students/quiz-results" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TutorStudentController@show
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
student: string
Query params
None
Body fields
None
Responses
Status
403
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "status": "<boolean>",
        "message": "<string>",
        "data": "<array>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/students/{student}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TopicController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
subject_id: string search: string
Body fields
None
Responses
Status
200
{
    "example": {
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/topics?subject_id=%3Cvalue%3E&search=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\TopicController@propose
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
name string Yes required|string|max:120
parent_id integer No nullable|integer|Rule::exists('topics|id')->where('status|Topic::STATUS_APPROVED)
subject_id integer No nullable|integer|Rule::exists('subjects|id')
Content type: application/json
Responses
Status
422
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "data": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/topics/propose" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"name":"<value>","parent_id":0,"subject_id":0}'

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@myVerification
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<value>",
        "message": "<string>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/verification" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@store
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
levels: string subjects: string
Body fields
None
Responses
Status
400
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "errors": "<object>"
    }
}
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/verification" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\Backend\TutorVerificationController@update
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
id: string
Query params
levels: string subjects: string
Body fields
None
Responses
Status
403
{
    "example": {
        "success": "<boolean>",
        "message": "<string>"
    }
}
Status
422
{
    "example": {
        "success": "<boolean>",
        "errors": "<object>"
    }
}
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
404
{
    "success": false,
    "message": "The requested resource was not found."
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/verification/{id}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@index
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
filter: string course_id: string subject_id: string form_level: string
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "filters": "<array>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/video-qa?filter=%3Cvalue%3E&course_id=%3Cvalue%3E&subject_id=%3Cvalue%3E&form_level=%3Cvalue%3E" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@updateAnswer
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
answer: string
Query params
None
Body fields
Field Type Required Rules
answer_text string Yes required|string|min:1
Content type: application/json
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X PUT "{{BASE_URL}}/api/tutor/video-qa/answers/{answer}" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"answer_text":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@reply
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
answer: string
Query params
None
Body fields
Field Type Required Rules
reply_text string Yes required|string|min:1
Content type: application/json
Responses
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/video-qa/answers/{answer}/reply" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"reply_text":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@unflag
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
flaggable_type string Yes required|in:video_question,video_answer
flaggable_id integer Yes required|integer
Content type: application/json
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
200
{
    "example": {
        "message": "<string>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X DELETE "{{BASE_URL}}/api/tutor/video-qa/flag" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@flag
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
None
Query params
None
Body fields
Field Type Required Rules
flaggable_type string Yes required|in:video_question,video_answer
flaggable_id integer Yes required|integer
reason string No nullable|string|max:1000
Content type: application/json
Responses
Status
404
{
    "example": {
        "message": "<string>"
    }
}
Status
201
{
    "example": {
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/video-qa/flag" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"flaggable_type":"<value>","flaggable_id":0,"reason":"<value>"}'

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@thread
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "data": "<object>"
    }
}
cURL Example
curl -X GET "{{BASE_URL}}/api/tutor/video-qa/{question}" \
  -H "Authorization: Bearer <API_TOKEN>"

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@submitAnswer
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
Field Type Required Rules
answer_text string Yes required|string
image file No nullable|image|mimes:jpeg,png,jpg,gif|max:5120
Content type: multipart/form-data
Responses
Status
201
{
    "example": {
        "success": "<boolean>",
        "message": "<string>",
        "data": "<object>"
    }
}
Status
422
{
    "message": "The given data was invalid.",
    "errors": {
        "field": [
            "validation_rule_failed"
        ]
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/video-qa/{question}/answer" \
+  -H "Authorization: Bearer <API_TOKEN>" \
+  -F "answer_text=<value>" \
+  -F "image=@/path/to/image.bin"

Endpoint
Controller
App\Http\Controllers\API\Tutor\VideoQAController@togglePin
Middleware
api auth:sanctum account.status.api verified.api role.api:tutor
Auth
Required
Request
Path params
question: string
Query params
None
Body fields
None
Responses
Status
200
{
    "example": {
        "success": "<boolean>",
        "message": "<object>",
        "data": "<object>"
    }
}
cURL Example
curl -X POST "{{BASE_URL}}/api/tutor/video-qa/{question}/toggle-pin" \
  -H "Authorization: Bearer <API_TOKEN>"