Get All Applications
Retrieve all educator applications with optional filtering by status.Authentication
string
required
Bearer token with admin role required
Query Parameters
string
Filter applications by status. Available values:
pending- Applications awaiting reviewapproved- Approved applicationsrejected- Rejected applications
Response
boolean
Indicates if the request was successful
array
Array of applications sorted by submission date (newest first)
Approve Application
Approve an educator application and grant the user educator role in Clerk.Authentication
string
required
Bearer token with admin role required
Path Parameters
string
required
Application ID (MongoDB ObjectId)
Response
boolean
Indicates if the approval was successful
string
Confirmation message
Side Effects
- Updates application status to
approved - Clears any existing
rejectionReason - Updates user’s Clerk public metadata with
role: 'educator' - User can now create and publish courses
Example Request
Reject Application
Reject an educator application with an optional reason.Authentication
string
required
Bearer token with admin role required
Path Parameters
string
required
Application ID (MongoDB ObjectId)
Request Body
string
Reason for rejection (will be visible to the applicant)
Response
boolean
Indicates if the rejection was successful
string
Confirmation message
Side Effects
- Updates application status to
rejected - Stores the rejection reason (if provided)
- User can resubmit a new application later
- Previous rejection reason will be cleared upon resubmission
Example Requests
Notes
- Applications can only be approved or rejected once they are in
pendingstatus - Rejected users can resubmit applications, which will overwrite their previous submission
- Approving an application automatically grants the
educatorrole in Clerk - The
reasonfield is optional but recommended to provide feedback to applicants - All admin endpoints require the
protectAdminmiddleware authentication