API Catalog · admin tới parentModel
⚙️ Trang này sinh tự động từ source code bằng
scripts/gen-reference.mjs— đừng sửa tay, sửa code rồi chạynpm run gen:reference.
Thuộc API Catalog. 47 module, 514 endpoint, admin tới parentModel.
admin
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/audit-log | 🔐 role admin |
| GET | /v1/admin/courses | 🔐 role admin |
| PATCH | /v1/admin/courses/{courseId} | 🔐 role admin |
| PATCH | /v1/admin/courses/{courseId}/sessions/{sessionNo} | 🔐 role admin |
| GET | /v1/admin/dead-letters | 🔐 role admin |
| POST | /v1/admin/dead-letters/{deadLetterId}/replay | 🔐 role admin |
| GET | /v1/admin/email-catalog | 🔐 role admin |
| GET | /v1/admin/email-catalog/{id}/preview | 🔐 role admin |
| GET | /v1/admin/email-pass-preview | 🔐 role admin |
| GET | /v1/admin/email-person | 🔐 role admin |
| GET | /v1/admin/email-samples | 🔐 role admin |
| POST | /v1/admin/email-samples | 🔐 role admin |
| GET | /v1/admin/email-sends | 🔐 role admin |
| GET | /v1/admin/email-stats | 🔐 role admin |
| DELETE | /v1/admin/email-suppressions | 🔐 role admin |
| GET | /v1/admin/email-suppressions | 🔐 role admin |
| POST | /v1/admin/email-suppressions | 🔐 role admin |
| GET | /v1/admin/engine-runs | 🔐 role admin |
| GET | /v1/admin/evidence/{evidenceId} | 🔐 role admin |
| GET | /v1/admin/foundry/models | 🔐 role admin |
| GET | /v1/admin/foundry/runs | 🔐 role admin |
| POST | /v1/admin/foundry/runs | 🔐 role admin |
| GET | /v1/admin/foundry/runs/{runId} | 🔐 role admin |
| GET | /v1/admin/geography/province-backfill | 🔐 role admin |
| POST | /v1/admin/geography/province-backfill | 🔐 role admin |
| GET | /v1/admin/learners | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/ai-teen-model | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/context-events | 🔐 role admin |
| POST | /v1/admin/learners/{learnerId}/context-events | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/evidence | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/ielts-model | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/models | 🔐 role admin |
| GET | /v1/admin/learners/{learnerId}/models/{modelKind}/versions | 🔐 role admin |
| POST | /v1/admin/learners/{learnerId}/recompute-models | 🔐 role admin |
| GET | /v1/admin/membership-pricing | 🔐 role admin |
| PATCH | /v1/admin/membership-pricing/{code} | 🔐 role admin |
| POST | /v1/admin/mentor-assignments | 🔐 role admin |
| GET | /v1/admin/model-versions/{versionId} | 🔐 role admin |
| GET | /v1/admin/model-versions/{versionId}/compare | 🔐 role admin |
| GET | /v1/admin/overview | 🔐 role admin |
| GET | /v1/admin/retention-policies | 🔐 role admin |
| POST | /v1/admin/retention-policies/sync | 🔐 role admin |
| POST | /v1/admin/retention-refresh | 🔐 role admin |
| POST | /v1/admin/roles | 🔐 role admin |
| GET | /v1/admin/run-metrics | 🔐 role admin |
| GET | /v1/admin/workflow-runs | 🔐 role admin |
| GET | /v1/admin/workflow-runs/{runId} | 🔐 role admin |
aiTeen
| Method | Path | Auth |
|---|---|---|
| POST | /v1/ai-teen/courses/{courseId}/enroll | 🔒 session |
| GET | /v1/ai-teen/courses/{courseId}/gates | 🔒 session |
| POST | /v1/ai-teen/courses/{courseId}/gates | 🔒 session |
| GET | /v1/ai-teen/courses/{courseId}/results | 🔒 session |
| PUT | /v1/ai-teen/courses/{courseId}/results | 🔒 session |
| GET | /v1/ai-teen/courses/{courseId}/steps | 🔒 session |
| PUT | /v1/ai-teen/courses/{courseId}/steps | 🔒 session |
| POST | /v1/ai-teen/courses/{courseId}/unenroll | 🔒 session |
| GET | /v1/ai-teen/enrollments | 🔒 session |
| GET | /v1/ai-teen/journeys | 🔒 session |
| PUT | /v1/ai-teen/journeys | 🔒 session |
aiTeenContent
| Method | Path | Auth |
|---|---|---|
| GET | /v1/mentor/ai-teen/content | 🔐 role mentor |
| POST | /v1/mentor/ai-teen/content/courses/{courseId}/live | 🔐 role mentor |
| GET | /v1/mentor/ai-teen/content/courses/{courseId}/releases | 🔐 role mentor |
| POST | /v1/mentor/ai-teen/content/courses/{courseId}/releases | 🔐 role mentor |
| GET | /v1/mentor/ai-teen/content/docs/{docKey} | 🔐 role mentor |
| PUT | /v1/mentor/ai-teen/content/docs/{docKey} | 🔐 role mentor |
| GET | /v1/mentor/ai-teen/content/docs/{docKey}/versions | 🔐 role mentor |
| GET | /v1/mentor/ai-teen/content/docs/{docKey}/versions/{version} | 🔐 role mentor |
| POST | /v1/mentor/ai-teen/content/docs/{docKey}/versions/{version}/restore | 🔐 role mentor |
| GET | /v1/public/ai-teen/content/{courseId}/live | 🌐 public |
| GET | /v1/public/ai-teen/content/{courseId}/releases/{releaseId} | 🌐 public |
auth
| Method | Path | Auth |
|---|---|---|
| POST | /v1/auth/access-session | 🔐 role admin |
| POST | /v1/auth/apple | 🌐 public |
| POST | /v1/auth/google | 🌐 public |
| POST | /v1/auth/logout | 🔒 session |
| POST | /v1/auth/mentor-grant | 🔐 role mentor |
| GET | /v1/me | 🔒 session |
b21
| Method | Path | Auth |
|---|---|---|
| GET | /v1/b21/frameworks | 🌐 public |
| GET | /v1/b21/frameworks/{framework}/areas | 🌐 public |
| GET | /v1/b21/frameworks/{framework}/competencies/{code} | 🌐 public |
| GET | /v1/b21/frameworks/{framework}/translations | 🌐 public |
calendar
| Method | Path | Auth |
|---|---|---|
| GET | /v1/calendar/agenda | 🔒 session |
| GET | /v1/calendar/open-events | 🔒 session |
| GET | /v1/calendar/subscriptions | 🔒 session |
| POST | /v1/calendar/subscriptions | 🔒 session |
| DELETE | /v1/calendar/subscriptions/{token} | 🔒 session |
certificates
| Method | Path | Auth |
|---|---|---|
| GET | /v1/certificates/verify/{code} | 🌐 public |
| GET | /v1/learners/{learnerId}/certificates | 🔒 session |
| GET | /v1/learners/{learnerId}/certificates/{courseId} | 🔒 session |
content
| Method | Path | Auth |
|---|---|---|
| POST | /v1/content/backfill-quality | 🔐 role staff |
| GET | /v1/content/gaps | 🔐 role staff |
| GET | /v1/content/items/{itemId} | 🔐 role staff |
| PATCH | /v1/content/items/{itemId} | 🔐 role staff |
| POST | /v1/content/items/{itemId}/evaluate | 🔐 role staff |
| POST | /v1/content/items/{itemId}/publish | 🔐 role staff |
| POST | /v1/content/items/{itemId}/reject | 🔐 role staff |
| POST | /v1/content/items/{itemId}/report | 🔒 session |
| POST | /v1/content/items/{itemId}/rollback | 🔐 role staff |
| GET | /v1/content/items/{itemId}/versions | 🔐 role staff |
| POST | /v1/content/items/{itemId}/versions | 🔐 role staff |
| POST | /v1/content/promote-candidates | 🔐 role staff |
| GET | /v1/content/quality-coverage | 🔐 role staff |
| GET | /v1/content/subjects | 🔐 role staff |
| GET | /v1/content/subjects/{subjectId}/nodes | 🔐 role staff |
| GET | /v1/content/subjects/{subjectId}/nodes/{nodeId}/items | 🔐 role staff |
coral
| Method | Path | Auth |
|---|---|---|
| GET | /v1/coral/blueprints | 🔐 role staff |
| PATCH | /v1/coral/blueprints/{blueprintId} | 🔐 role staff |
| GET | /v1/coral/blueprints/{blueprintId}/experiences | 🔐 role staff |
| POST | /v1/coral/blueprints/{blueprintId}/generate | 🔐 role staff |
| PATCH | /v1/coral/course-lessons/{lessonId} | 🔐 role staff |
| PATCH | /v1/coral/course-units/{unitId} | 🔐 role staff |
| GET | /v1/coral/courses | 🔐 role staff |
| GET | /v1/coral/courses/{courseId} | 🔐 role staff |
| PATCH | /v1/coral/courses/{courseId} | 🔐 role staff |
| PUT | /v1/coral/courses/{courseId}/outcomes | 🔐 role staff |
| PUT | /v1/coral/courses/{courseId}/pains | 🔐 role staff |
| GET | /v1/coral/dq/lesson | 🔐 role staff |
| POST | /v1/coral/dq/mark | 🔐 role staff |
| GET | /v1/coral/dq/queue | 🔐 role staff |
| GET | /v1/coral/exams | 🔐 role staff |
| GET | /v1/coral/exams/{examId} | 🔐 role staff |
| GET | /v1/coral/experiences/{experienceId} | 🔐 role staff |
| GET | /v1/coral/foundry/blocked | 🔐 role staff |
| POST | /v1/coral/foundry/blocked/release | 🔐 role staff |
| GET | /v1/coral/foundry/courses | 🔐 role staff |
| POST | /v1/coral/foundry/drafts/apply | 🔐 role staff |
| GET | /v1/coral/foundry/feedback | 🔐 role staff |
| POST | /v1/coral/foundry/feedback | 🔐 role staff |
| POST | /v1/coral/foundry/feedback/act | 🔐 role staff |
| POST | /v1/coral/foundry/items/promote | 🔐 role staff |
| GET | /v1/coral/foundry/limits | 🔐 role staff |
| GET | /v1/coral/foundry/preflight | 🔐 role staff |
| GET | /v1/coral/foundry/priorities | 🔐 role staff |
| PUT | /v1/coral/foundry/priorities | 🔐 role staff |
| GET | /v1/coral/foundry/prompt-work | 🔐 role staff |
| GET | /v1/coral/foundry/prompts | 🔐 role staff |
| GET | /v1/coral/foundry/queue | 🔐 role staff |
| GET | /v1/coral/foundry/runs | 🔐 role staff |
| POST | /v1/coral/foundry/runs | 🔐 role staff |
| GET | /v1/coral/foundry/runs/{runId} | 🔐 role staff |
| POST | /v1/coral/foundry/runs/batch | 🔐 role staff |
| POST | /v1/coral/generate-items | 🔐 role staff |
| GET | /v1/coral/labs | 🔐 role staff |
| GET | /v1/coral/lesson-body/{lessonId} | 🔐 role staff |
| PATCH | /v1/coral/lesson-body/{lessonId}/examples/{kind}/{seq} | 🔐 role staff |
| PATCH | /v1/coral/lesson-body/{lessonId}/quiz/{seq} | 🔐 role staff |
| PATCH | /v1/coral/lesson-body/{lessonId}/story | 🔐 role staff |
| GET | /v1/coral/overview | 🔐 role staff |
| GET | /v1/coral/prompts | 🔐 role staff |
| GET | /v1/coral/review-queue | 🔐 role staff |
| PATCH | /v1/coral/review-queue/{reviewId} | 🔐 role staff |
| PATCH | /v1/coral/unit-concepts | 🔐 role staff |
| GET | /v1/coral/unit-prereqs | 🔐 role staff |
| PATCH | /v1/coral/unit-prereqs | 🔐 role staff |
| GET | /v1/coral/units | 🔐 role staff |
courses
| Method | Path | Auth |
|---|---|---|
| GET | /v1/courses | 🔒 session |
| GET | /v1/courses/{courseId} | 🔒 session |
| POST | /v1/courses/{courseId}/enroll | 🔒 session |
| POST | /v1/courses/{courseId}/unenroll | 🔒 session |
curriculum
| Method | Path | Auth |
|---|---|---|
| DELETE | /v1/admin/curriculum/articles/{articleId} | 🔐 role admin |
| GET | /v1/admin/curriculum/articles/{articleId} | 🔐 role admin |
| PUT | /v1/admin/curriculum/articles/{articleId} | 🔐 role admin |
| POST | /v1/admin/curriculum/articles/{articleId}/publish | 🔐 role admin |
| POST | /v1/admin/curriculum/articles/{articleId}/restore/{version} | 🔐 role admin |
| GET | /v1/admin/curriculum/articles/{articleId}/versions | 🔐 role admin |
| GET | /v1/admin/curriculum/lessons/{lessonId}/articles | 🔐 role admin |
| POST | /v1/admin/curriculum/lessons/{lessonId}/articles | 🔐 role admin |
| PUT | /v1/admin/curriculum/lessons/{lessonId}/articles/order | 🔐 role admin |
| GET | /v1/admin/curriculum/tree | 🔐 role admin |
| GET | /v1/curriculum/courses | 🔒 session |
| GET | /v1/curriculum/courses/{courseId} | 🔒 session |
| GET | /v1/curriculum/lessons/{lessonId}/articles/{slug} | 🔒 session |
| GET | /v1/curriculum/lessons/{lessonId}/parts | 🔒 session |
| PUT | /v1/curriculum/lessons/{lessonId}/parts/{part} | 🔒 session |
| GET | /v1/curriculum/lessons/{lessonId}/reflection | 🔒 session |
| PUT | /v1/curriculum/lessons/{lessonId}/reflection | 🔒 session |
| GET | /v1/curriculum/lessons/{lessonId}/stages | 🔒 session |
| PUT | /v1/curriculum/lessons/{lessonId}/stages/{stage} | 🔒 session |
| GET | /v1/curriculum/units/{unitId}/orientation-quiz | 🔒 session |
| GET | /v1/public/ielts/catalog | 🌐 public |
dashboards
| Method | Path | Auth |
|---|---|---|
| GET | /v1/mentor/dashboards | 🔒 session |
| GET | /v1/mentor/dashboards/{id} | 🔒 session |
desk
| Method | Path | Auth |
|---|---|---|
| GET | /v1/mentor/desk | 🔒 session |
| GET | /v1/mentor/desk/{cohort} | 🔒 session |
| GET | /v1/mentor/desk/{cohort}/{learnerId} | 🔒 session |
dictation
| Method | Path | Auth |
|---|---|---|
| POST | /v1/admin/dictation/build | 🔐 role admin |
| GET | /v1/admin/dictation/sets | 🔐 role admin |
| GET | /v1/admin/dictation/sets/{setId}/audio | 🔐 role admin |
| PUT | /v1/admin/dictation/sets/{setId}/status | 🔐 role admin |
| GET | /v1/curriculum/lessons/{lessonId}/dictation | 🔒 session |
| GET | /v1/dictation/leaderboard/{level} | 🔒 session |
| GET | /v1/dictation/options | 🔒 session |
| GET | /v1/dictation/practices | 🔒 session |
| POST | /v1/dictation/practices | 🔒 session |
| DELETE | /v1/dictation/practices/{practiceId} | 🔒 session |
| GET | /v1/dictation/practices/{practiceId}/audio | 🔒 session |
| POST | /v1/dictation/practices/{practiceId}/check | 🔒 session |
| GET | /v1/dictation/sets/{setId}/audio | 🔒 session |
| POST | /v1/dictation/sets/{setId}/check | 🔒 session |
email
| Method | Path | Auth |
|---|---|---|
| GET | /e/o/{file} | 🌐 public |
| POST | /e/one-click/{token} | 🌐 public |
| GET | /e/s/{token} | 🌐 public |
| POST | /e/s/{token} | 🌐 public |
| GET | /e/u/{token} | 🌐 public |
| POST | /e/u/{token} | 🌐 public |
| GET | /email/preferences/{token} | 🌐 public |
| POST | /email/preferences/{token} | 🌐 public |
essay
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/essay-orders | 🔒 session |
| POST | /v1/admin/essay-orders/{id}/paid | 🔒 session |
| POST | /v1/learners/{learnerId}/essay-enroll | 🔒 session |
| GET | /v1/learners/{learnerId}/essay-orders | 🔒 session |
| POST | /v1/learners/{learnerId}/essay-orders | 🔒 session |
| POST | /v1/learners/{learnerId}/essay/coach | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/drafts | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/drafts/{promptId} | 🔒 session |
| PUT | /v1/learners/{learnerId}/essay/drafts/{promptId} | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/drafts/{promptId}/diff | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/drafts/{promptId}/versions/{no} | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/drills | 🔒 session |
| POST | /v1/learners/{learnerId}/essay/drills/{drillId} | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/marks | 🔒 session |
| POST | /v1/learners/{learnerId}/essay/marks | 🔒 session |
| DELETE | /v1/learners/{learnerId}/essay/marks/{id} | 🔒 session |
| PATCH | /v1/learners/{learnerId}/essay/marks/{id} | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/process | 🔒 session |
| GET | /v1/learners/{learnerId}/essay/stories | 🔒 session |
| POST | /v1/learners/{learnerId}/essay/stories | 🔒 session |
| PUT | /v1/learners/{learnerId}/essay/stories/{storyId}/ladder/{rung} | 🔒 session |
| POST | /v1/mentor/essay/drafts/{draftId}/comments | 🔐 role admin |
| GET | /v1/mentor/essay/learners | 🔐 role admin |
| GET | /v1/mentor/essay/learners/{learnerId}/drafts | 🔐 role admin |
events
| Method | Path | Auth |
|---|---|---|
| GET | /v1/banner-usage | 🔒 session |
| GET | /v1/events | 🔒 session |
| GET | /v1/events/{eventId} | 🔒 session |
| PATCH | /v1/events/{eventId} | 🔒 session |
| GET | /v1/events/{eventId}/activities | 🔒 session |
| POST | /v1/events/{eventId}/activities | 🔒 session |
| DELETE | /v1/events/{eventId}/activities/{activityId} | 🔒 session |
| PATCH | /v1/events/{eventId}/activities/{activityId} | 🔒 session |
| POST | /v1/events/{eventId}/activities/{activityId}/answers | 🔒 session |
| POST | /v1/events/{eventId}/activities/{activityId}/start | 🔒 session |
| POST | /v1/events/{eventId}/activities/{activityId}/vote | 🔒 session |
| DELETE | /v1/events/{eventId}/answers/{answerId} | 🔒 session |
| POST | /v1/events/{eventId}/answers/{answerId}/upvote | 🔒 session |
| GET | /v1/events/{eventId}/backstage | 🔒 session |
| GET | /v1/events/{eventId}/banners | 🔒 session |
| POST | /v1/events/{eventId}/banners | 🔒 session |
| PUT | /v1/events/{eventId}/banners/{bannerId} | 🔒 session |
| GET | /v1/events/{eventId}/checklist | 🔒 session |
| PUT | /v1/events/{eventId}/checklist/{taskId} | 🔒 session |
| POST | /v1/events/{eventId}/checklist/tasks | 🔒 session |
| POST | /v1/events/{eventId}/register | 🔒 session |
| GET | /v1/events/{eventId}/resources | 🔒 session |
| DELETE | /v1/events/{eventId}/resources/{resourceId} | 🔒 session |
| GET | /v1/events/{eventId}/room | 🔒 session |
| GET | /v1/events/{eventId}/stage | 🔒 session |
| POST | /v1/events/{eventId}/unregister | 🔒 session |
| PUT | /v1/events/{eventId}/video | 🔒 session |
| GET | /v1/public/events | 🌐 public |
exams
| Method | Path | Auth |
|---|---|---|
| POST | /v1/exam-attempts/{attemptId}/submit | 🔒 session |
| POST | /v1/exams/{examId}/start | 🔒 session |
| GET | /v1/learners/{learnerId}/exam-attempts | 🔒 session |
| GET | /v1/subjects/{subjectId}/exams | 🌐 public |
families
| Method | Path | Auth |
|---|---|---|
| PATCH | /v1/mentor/contacts/{id} | 🔐 role mentor |
| POST | /v1/mentor/contacts/{id}/link | 🔐 role mentor |
| POST | /v1/mentor/contacts/{id}/unlink | 🔐 role mentor |
| GET | /v1/mentor/families | 🔐 role mentor |
| POST | /v1/mentor/families | 🔐 role mentor |
| GET | /v1/mentor/families/{id} | 🔐 role mentor |
| PATCH | /v1/mentor/families/{id} | 🔐 role mentor |
| POST | /v1/mentor/families/{id}/care | 🔐 role mentor |
| POST | /v1/mentor/families/{id}/children | 🔐 role mentor |
| POST | /v1/mentor/families/{id}/contacts | 🔐 role mentor |
| GET | /v1/mentor/families/{id}/journey | 🔐 role mentor |
| GET | /v1/mentor/families/{id}/notes | 🔐 role mentor |
| POST | /v1/mentor/families/{id}/notes | 🔐 role mentor |
| POST | /v1/mentor/families/{id}/photos | 🔐 role mentor |
| GET | /v1/mentor/families/{id}/scorecards | 🔐 role mentor |
| PATCH | /v1/mentor/family-learners/{id} | 🔐 role mentor |
| PUT | /v1/mentor/journey/{kind}/{memberId} | 🔐 role mentor |
| PATCH | /v1/mentor/notes/{id} | 🔐 role mentor |
| POST | /v1/mentor/notes/{id}/suggest-tags | 🔐 role mentor |
| PATCH | /v1/mentor/photos/{id} | 🔐 role mentor |
| GET | /v1/mentor/tag-stats | 🔐 role mentor |
forum
| Method | Path | Auth |
|---|---|---|
| POST | /v1/forum/{kind}/{id}/report | 🔒 session |
| POST | /v1/forum/{kind}/{id}/vote | 🔒 session |
| GET | /v1/forum/topics | 🔒 session |
| POST | /v1/forum/topics | 🔒 session |
| GET | /v1/forum/topics/{topicId} | 🔒 session |
| POST | /v1/forum/topics/{topicId}/replies | 🔒 session |
geography
| Method | Path | Auth |
|---|---|---|
| GET | /v1/mentor/geography | 🔒 session |
grammarLive
| Method | Path | Auth |
|---|---|---|
| GET | /v1/learners/{learnerId}/grammar-live | 🔒 session |
| DELETE | /v1/learners/{learnerId}/grammar-live/{sessionId} | 🔒 session |
| POST | /v1/learners/{learnerId}/grammar-live/{sessionId} | 🔒 session |
gull
| Method | Path | Auth |
|---|---|---|
| GET | /v1/public/gull/entities/{id}/history | 🌐 public |
| GET | /v1/public/gull/graph | 🌐 public |
ielts
| Method | Path | Auth |
|---|---|---|
| GET | /v1/ielts-live-classes | 🔐 role admin |
| GET | /v1/ielts-live-classes/{classId} | 🔐 role admin |
| DELETE | /v1/ielts-milestones/{milestoneId} | 🔒 session |
| PATCH | /v1/ielts-milestones/{milestoneId} | 🔒 session |
| GET | /v1/learners/{learnerId}/grammar-membership | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-assessment-brief | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-baseline | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-baselines | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-baselines | 🔒 session |
| DELETE | /v1/learners/{learnerId}/ielts-baselines/{baselineId} | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-declarations | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-diag4 | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-diag4/{skill}/start | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-diag4/attempts/{attemptId} | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-diag4/attempts/{attemptId}/submit | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-diag4/reports/{reportId} | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-diagnostic | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-diagnostic/submit | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-exam-quiz | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-exam-quiz/submit | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-goal | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-goal | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-goal/milestones | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-goal/milestones/apply | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-goal/milestones/suggest | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-learner-profile | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-learner-profile | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-learning-plan | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-learning-plan | 🔒 session |
| DELETE | /v1/learners/{learnerId}/ielts-learning-plan/share | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-learning-plan/share | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-learning-plan/share | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-membership | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-model | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-model/history | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-pathway | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-productions | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-productions/speaking | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-productions/speaking/{productionId}/choose | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-productions/writing | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-profile | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-setup | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-setup | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-study-rewards | 🔒 session |
| GET | /v1/public/ielts/learning-plans/{slug} | 🌐 public |
ieltsContent
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/ielts/content/clusters | 🔐 role admin |
| PATCH | /v1/admin/ielts/content/clusters/{id} | 🔐 role admin |
| GET | /v1/admin/ielts/content/items/{id} | 🔐 role admin |
| PATCH | /v1/admin/ielts/content/items/{id} | 🔐 role admin |
| PATCH | /v1/admin/ielts/content/questions/{id} | 🔐 role admin |
| POST | /v1/learners/{learnerId}/ielts-content/check | 🔒 session |
| GET | /v1/public/ielts/content/{skill}/{slug} | 🔐 role admin |
| GET | /v1/public/ielts/content/clusters | 🔒 session |
| GET | /v1/public/ielts/content/lexicon/{domain} | 🔒 session |
| GET | /v1/public/ielts/content/warmup | 🔐 role admin |
| GET | /v1/public/ielts/exam-papers | 🔒 session |
ieltsFullTests
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/ielts-full-tests/unlocks | 🔐 role admin |
| POST | /v1/admin/ielts-full-tests/unlocks | 🔐 role admin |
| GET | /v1/learners/{learnerId}/ielts-full-tests | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-full-tests/{n}/attempts | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-full-tests/attempts/{attemptId} | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-full-tests/attempts/{attemptId}/finish | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-full-tests/attempts/{attemptId}/report | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-full-tests/attempts/{attemptId}/sections/{skill} | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-full-tests/attempts/{attemptId}/sections/{skill}/start | 🔒 session |
ieltsPractice
| Method | Path | Auth |
|---|---|---|
| POST | /v1/learners/{learnerId}/ielts-practice-attempts | 🔒 session |
| GET | /v1/public/ielts/listening/{cluster}/{seq}/audio | 🔒 session |
| GET | /v1/public/ielts/micro-items/{itemId}/audio | 🔒 session |
| GET | /v1/public/ielts/reading/{cluster}/{seq}/audio | 🔒 session |
ieltsSkills
| Method | Path | Auth |
|---|---|---|
| GET | /v1/learners/{learnerId}/ielts-effort | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-grammar | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-grammar | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-ladder/speaking | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-ladder/writing | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-micro-attempts | 🔒 session |
| DELETE | /v1/learners/{learnerId}/ielts-micro-progress | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-micro-progress | 🔒 session |
| PUT | /v1/learners/{learnerId}/ielts-micro-progress | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-paper-bands | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-paper-parts | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-recordings | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-recordings/{productionId}/audio | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-reports | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-skills/{skill} | 🔒 session |
| POST | /v1/learners/{learnerId}/ielts-speaking-turns | 🔒 session |
| GET | /v1/learners/{learnerId}/ielts-vocabulary | 🔒 session |
| POST | /v1/learners/{learnerId}/learning-events | 🔒 session |
invitations
| Method | Path | Auth |
|---|---|---|
| GET | /v1/invitations | 🔒 session |
| POST | /v1/invitations | 🔒 session |
| POST | /v1/invitations/accept | 🔒 session |
| POST | /v1/invitations/accept-guardian | 🔒 session |
| POST | /v1/invitations/guardian | 🔒 session |
| PATCH | /v1/learners/{learnerId}/learning-priority | 🔒 session |
| POST | /v1/learners/self | 🔒 session |
journeySummary
| Method | Path | Auth |
|---|---|---|
| GET | /v1/me/journey-summary | 🌐 public |
journeys
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/journeys | 🔒 session |
| GET | /v1/admin/learners/{learnerId}/journeys | 🔒 session |
| GET | /v1/learners/{learnerId}/journeys | 🔐 role admin |
| POST | /v1/learners/{learnerId}/journeys/{journeyId}/actions/{actionId}/accept | 🔐 role admin |
| POST | /v1/learners/{learnerId}/journeys/{journeyId}/snooze | 🔐 role admin |
| POST | /v1/learners/{learnerId}/journeys/re-evaluate | 🔐 role admin |
knowledge
| Method | Path | Auth |
|---|---|---|
| POST | /v1/diagnostic/{sessionId}/next | 🔒 session |
| POST | /v1/diagnostic/{sessionId}/submit | 🔒 session |
| POST | /v1/diagnostic/start | 🔒 session |
| GET | /v1/learners/{learnerId}/cockpit | 🔒 session |
| POST | /v1/learners/{learnerId}/goal | 🔒 session |
| GET | /v1/learners/{learnerId}/units/gate | 🔒 session |
| POST | /v1/learners/{learnerId}/units/gate/ack | 🔒 session |
| GET | /v1/subjects | 🌐 public |
| GET | /v1/subjects/{subjectId}/graph | 🌐 public |
leaderboard
| Method | Path | Auth |
|---|---|---|
| POST | /v1/admin/leaderboard/close | 🔒 session |
| POST | /v1/admin/nemo-ledger/{ledgerId}/paid | 🔒 session |
| GET | /v1/ielts/leaderboard | 🔒 session |
| GET | /v1/ielts/leaderboard/weeks | 🔒 session |
| GET | /v1/ielts/leaderboard/weeks/{weekStart} | 🔒 session |
| GET | /v1/learners/{learnerId}/nemo-wallet | 🔒 session |
learner-profile
| Method | Path | Auth |
|---|---|---|
| DELETE | /v1/learners/{learnerId}/photo | 🔒 session |
| GET | /v1/learners/{learnerId}/photo | 🔒 session |
| POST | /v1/learners/{learnerId}/photo | 🔒 session |
| GET | /v1/learners/{learnerId}/self-profile | 🔒 session |
| PUT | /v1/learners/{learnerId}/self-profile | 🔒 session |
learning
| Method | Path | Auth |
|---|---|---|
| GET | /v1/labs/{labId} | 🔒 session |
| POST | /v1/labs/{labId}/evidence | 🔒 session |
| POST | /v1/learners/{learnerId}/experience/complete | 🔒 session |
| GET | /v1/learners/{learnerId}/lab-favorites | 🔒 session |
| DELETE | /v1/learners/{learnerId}/lab-favorites/{labId} | 🔒 session |
| PUT | /v1/learners/{learnerId}/lab-favorites/{labId} | 🔒 session |
| GET | /v1/learners/{learnerId}/labs | 🔒 session |
| POST | /v1/learners/{learnerId}/practice/start | 🔒 session |
| GET | /v1/learners/{learnerId}/xp | 🔒 session |
| POST | /v1/practice/{sessionId}/answer | 🔒 session |
| POST | /v1/practice/{sessionId}/warmup | 🔒 session |
| GET | /v1/subjects/{subjectId}/labs | 🔒 session |
liveSession
| Method | Path | Auth |
|---|---|---|
| GET | /v1/live/form | 🔒 session |
| POST | /v1/live/join | 🔒 session |
| GET | /v1/live/room/{id} | 🔒 session |
| POST | /v1/live/room/{id}/answer | 🔒 session |
| POST | /v1/live/room/{id}/checkin | 🔒 session |
| POST | /v1/live/room/{id}/reflection | 🔒 session |
| GET | /v1/live/sessions | 🔒 session |
| POST | /v1/live/sessions | 🔒 session |
| GET | /v1/live/sessions/{id} | 🔒 session |
| POST | /v1/live/sessions/{id}/control | 🔒 session |
| GET | /v1/live/sessions/{id}/progress | 🔒 session |
markmaps
| Method | Path | Auth |
|---|---|---|
| GET | /v1/markmaps | 🔒 session |
| POST | /v1/markmaps | 🔒 session |
| GET | /v1/markmaps/{id} | 🔒 session |
| PUT | /v1/markmaps/{id} | 🔒 session |
| PUT | /v1/markmaps/{id}/visibility | 🔒 session |
| GET | /v1/public/markmaps | 🌐 public |
| GET | /v1/public/markmaps/{id} | 🌐 public |
marlin-pains
| Method | Path | Auth |
|---|---|---|
| GET | /v1/marlin-pains | 🌐 public |
| GET | /v1/marlin-pains/{slug} | 🌐 public |
membership
| Method | Path | Auth |
|---|---|---|
| GET | /v1/me/membership | 🔒 session |
| PATCH | /v1/me/profile | 🔒 session |
mentor
| Method | Path | Auth |
|---|---|---|
| GET | /v1/learners/{learnerId}/mentor-notes | 🔐 role mentor |
| POST | /v1/learners/{learnerId}/mentor-notes | 🔐 role mentor |
| PATCH | /v1/mentor/ielts-productions/{productionId} | 🔐 role mentor |
| GET | /v1/mentor/ielts-productions/{productionId}/audio | 🔐 role mentor |
| GET | /v1/mentor/learners | 🔐 role mentor |
| GET | /v1/mentor/learners/{learnerId}/ai-teen-model | 🔐 role mentor |
| GET | /v1/mentor/learners/{learnerId}/ielts-report | 🔐 role mentor |
microSkills
| Method | Path | Auth |
|---|---|---|
| PATCH | /v1/admin/ielts/micro-skill-items/{id} | 🔐 role admin |
| GET | /v1/admin/ielts/micro-skills | 🔐 role admin |
| PATCH | /v1/admin/ielts/micro-skills/{id} | 🔐 role admin |
| GET | /v1/public/ielts/micro-skills | 🔒 session |
| GET | /v1/public/ielts/micro-skills/{skill}/{code} | 🔒 session |
| GET | /v1/public/ielts/micro-skills/{skill}/{code}/levels/{level}/{seq} | 🔒 session |
| GET | /v1/public/ielts/task-types | 🔒 session |
| GET | /v1/public/ielts/task-types/{skill}/{code} | 🔒 session |
models
| Method | Path | Auth |
|---|---|---|
| GET | /v1/context-event-kinds | 🌐 public |
| GET | /v1/learners/{learnerId}/context-events | 🔒 session |
| POST | /v1/learners/{learnerId}/context-events | 🔒 session |
| GET | /v1/learners/{learnerId}/learning-plan | 🔒 session |
| POST | /v1/learners/{learnerId}/learning-plan/replan | 🔒 session |
| GET | /v1/learners/{learnerId}/learning-plan/versions/{version} | 🔒 session |
| GET | /v1/learners/{learnerId}/lighthouse | 🔒 session |
| GET | /v1/learners/{learnerId}/model-versions | 🔒 session |
| GET | /v1/learners/{learnerId}/model-versions/{version} | 🔒 session |
onboarding
| Method | Path | Auth |
|---|---|---|
| PATCH | /v1/exam-targets/{targetId} | 🔒 session |
| PATCH | /v1/goal-dates/{dateId} | 🔒 session |
| GET | /v1/learners/{learnerId}/exam-schedule | 🔒 session |
| POST | /v1/learners/{learnerId}/exam-schedule | 🔒 session |
| GET | /v1/learners/{learnerId}/exam-targets | 🔒 session |
| POST | /v1/learners/{learnerId}/exam-targets | 🔒 session |
| GET | /v1/learners/{learnerId}/goal-dates | 🔒 session |
| POST | /v1/learners/{learnerId}/initialize-models | 🔒 session |
| PATCH | /v1/learners/{learnerId}/intensity | 🔒 session |
| GET | /v1/learners/{learnerId}/onboarding | 🔒 session |
| GET | /v1/learners/{learnerId}/profile | 🔒 session |
| PATCH | /v1/learners/{learnerId}/profile | 🔒 session |
| POST | /v1/learners/{learnerId}/schools | 🔒 session |
orca
| Method | Path | Auth |
|---|---|---|
| POST | /v1/orca/actions | 🔒 session |
| GET | /v1/orca/competitions | 🔒 session |
| GET | /v1/orca/competitions/{id} | 🔒 session |
outreach
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/outreach/blocks | 🔐 role admin |
| POST | /v1/admin/outreach/blocks | 🔐 role admin |
| DELETE | /v1/admin/outreach/blocks/{key} | 🔐 role admin |
| POST | /v1/admin/outreach/import | 🔐 role admin |
| GET | /v1/admin/outreach/orgs | 🔐 role admin |
| GET | /v1/admin/outreach/orgs/{orgId} | 🔐 role admin |
| PATCH | /v1/admin/outreach/orgs/{orgId} | 🔐 role admin |
| POST | /v1/admin/outreach/orgs/{orgId}/attempts | 🔐 role admin |
| POST | /v1/admin/outreach/preview | 🔐 role admin |
| POST | /v1/admin/outreach/send | 🔐 role admin |
| GET | /v1/admin/outreach/summary | 🔐 role admin |
| GET | /v1/admin/outreach/templates | 🔐 role admin |
| PATCH | /v1/admin/outreach/templates/{templateId} | 🔐 role admin |
parent
| Method | Path | Auth |
|---|---|---|
| GET | /v1/learners/{learnerId}/beliefs | 🔒 session |
| POST | /v1/learners/{learnerId}/beliefs | 🔒 session |
| GET | /v1/learners/{learnerId}/observations | 🔒 session |
| POST | /v1/learners/{learnerId}/observations | 🔒 session |
| GET | /v1/learners/{learnerId}/parent-recommendation | 🔒 session |
| GET | /v1/parent/next-steps | 🔒 session |
parentModel
| Method | Path | Auth |
|---|---|---|
| GET | /v1/admin/parents | 🔐 role admin |
| GET | /v1/admin/parents/{userId} | 🔐 role admin |
| GET | /v1/admin/parents/{userId}/evidence | 🔐 role admin |
| POST | /v1/admin/parents/{userId}/recompute | 🔐 role admin |
| POST | /v1/admin/parents/backfill-evidence | 🔐 role admin |
| POST | /v1/admin/parents/recompute | 🔐 role admin |