Salam Academy
Developers

Salam Academy API v1

JSON over HTTPS. Browser clients authenticate with the session cookie; mobile apps send Authorization: Bearer <token>. State-changing cookie requests must be same-origin. Errors return { error: { code, message } }.

MethodPathAccessDescription
POST/api/v1/auth/registerPublicCreate an account { name, email, password, role } and sign in.
POST/api/v1/auth/loginPublicSign in { email, password }. Sets an httpOnly session cookie.
POST/api/v1/auth/logoutSigned inEnd the current session.
POST/api/v1/auth/password/forgotPublicEmail a one-hour reset link { email }. Same response whether or not the account exists.
POST/api/v1/auth/password/resetPublicSet a new password { token, password }. Signs out all sessions.
GET/api/v1/auth/googlePublicStart Google sign-in (when configured).
GET/api/v1/meSigned inCurrent user and learner profile.
PATCH/api/v1/me/profileSigned inUpdate course: versionId, optionComponentIds, targetGrade, examDate, confidence, hintMode.
GET/api/v1/me/exportSigned inDownload all learner data as JSON.
DELETE/api/v1/meSigned inDelete the account { confirmEmail }.
GET/api/v1/questionsSigned inPublished questions. Query: concept, skill, difficulty. Never includes answers.
POST/api/v1/attemptsSigned inMark an answer { questionId, response: { partKey: value }, assignmentId? }. Returns per-part feedback and the first point of error.
POST/api/v1/questions/:id/hintsSigned inReveal the next hint.
GET/api/v1/questions/:id/solutionSigned inWorked solution, after one attempt or all hints.
POST/api/v1/questions/:id/similarSigned inGenerate a verified variant testing the same skill.
PUT/api/v1/progress/lessons/:idSigned inMerge completed lesson items { completed: string[] }.
POST/api/v1/bookmarksSigned inSave or remove { entityType, entityId, folder?, remove? }.
POST/api/v1/planSigned inAdd or remove a concept from the study plan { conceptId, remove? }.
POST/api/v1/testsSigned inCreate a timed test { conceptIds, minutes }.
POST/api/v1/tests/:id/submitSigned inSubmit answers { answers: { questionId: { partKey: value } } } and receive the analysis.
POST/api/v1/issuesSigned inReport a problem with a lesson or question.
GET/api/v1/search?q=PublicFull-text search over lessons, syllabus topics and questions.
GET/POST/api/v1/tutorSigned inSalam Tutor { mode, message, questionId?, history? } (requires an AI provider key).
POST/api/v1/classesTeacherCreate a class { name, versionId? }.
POST/api/v1/classes/joinSigned inJoin a class { code }.
POST/api/v1/teacher/generateTeacherSelect questions for an assignment { conceptSlug, difficulty[], count, exclude? }.
POST/api/v1/assignmentsTeacherAssign reviewed questions { classId, title, questionIds, dueAt? }.
GET/api/v1/healthPublicLiveness and database check.
API · Salam Academy