Skip to Content
ArchitectureAPI Surface

API Surface

All routes require authentication unless noted. Tenant-scoped routes enforce WHERE organization_id = req.user.organizationId via scopeToOrg middleware.

Student / Tenant Routes

/api/users

MethodPathDescriptionAuth
GET/meCalling user’s profileauth
GET/me/enrollmentEnrollment contextauth
GET/me/active-courseActive enrolled courseauth
GET/me/quiz-attemptsAll quiz attemptsauth
GET/me/exam-readinessDomain readiness breakdownauth
GET/me/statsDashboard statsauth
GET/me/checklistChecklist itemsauth
POST/me/enrollment-stateUpdate enrollment stateauth

/api/progress

MethodPathDescriptionAuth
POST/:lessonId/completeMark lesson complete + seat timeauth
POST/:lessonId/quizSubmit quiz attemptauth
POST/highlight-failureLog highlight failureauth
GET/highlight-failuresList highlight failuresauth + admin

/api/diagnostic

MethodPathDescriptionAuth
GET/questionsPlacement exam questionsauth
POST/submitSubmit placement assessmentauth + rate limited
GET/resultsPlacement resultsauth

/api/admin (tenant admin, org-scoped)

MethodPathDescriptionAuth
GET/compliance/studentsAll students — compliance viewauth + orgAdmin
GET/list-usersAll users in orgauth + orgAdmin
GET/exports/tprELDT certificate exportauth + orgAdmin
POST/reset-curriculumWipe student progressauth + orgAdmin

Platform Admin Routes (/api/platform/*)

Require requirePlatformAdmin. Only accessible to users in the gritcert-internal organization with role owner or support.

MethodPathDescription
GET/tenantsAll tenant orgs
POST/tenantsCreate new tenant
GET/tenants/:idTenant detail
PATCH/tenants/:idUpdate org name, billing contact
GET/coursesPlatform course catalog
GET/statsCross-tenant dashboard stats
GET/studentsCross-tenant student search
Last updated on
© 2026 GritCert. Internal platform documentation.