Skip to content

Spoke Plus API Endpoints

Last generated: 2026-03-05T11:58:02.303Z

Advisory: this is a generated inventory snapshot and may be stale between regenerations. For current runtime assumptions, prioritize docs/system/system-contract.md, docs/system/system-map.json, and docs/system/schema-current.json.

Lemma Editor API stabilization

A tela de edição de lemma consome os seguintes endpoints canônicos:

  • GET /admin/content-bank/lemmas/:id
  • PATCH /admin/content-bank/lemmas/:id
  • POST /admin/content-bank/lemmas/:id/editor-save
  • PUT /admin/content-bank/lemmas/:id/taxonomies
  • GET /admin/content-bank/lemmas/:id/sentences
  • POST /admin/content-bank/lemmas/:id/examples
  • DELETE /admin/content-bank/lemmas/:id/examples/:sentenceId
  • POST /admin/content-bank/lemmas/:id/morphology/forms
  • DELETE /admin/content-bank/lemmas/:id/morphology/forms/:formId
  • POST /admin/content-bank/lemmas/:id/collocations
  • DELETE /admin/content-bank/lemmas/:id/collocations/:relationId
  • POST /admin/content-bank/lemmas/ai-classify
  • POST /admin/tts/generate

Notas:

  • O fluxo de TTS deve usar lemma como texto fonte por padrão.
  • Assets de áudio/imagem persistidos no editor devem ser registrados em lemma_assets e/ou campos de compatibilidade em lemmas.

Scanned from routes/ directory.

GET /admin/

  • purpose: System status/health check.
  • handled by: getStatus
  • route file: routes/statusRoutes.js

GET /admin/admin-users

  • purpose: Handled by getAdminUsers.
  • handled by: getAdminUsers
  • route file: routes/adminDashboardRoutes.js

GET /admin/app-projects

  • purpose: Handled by listAppProjects.
  • handled by: listAppProjects
  • route file: routes/adminAppCmsRoutes.js

POST /admin/app-projects

  • purpose: Handled by createAppProject.
  • handled by: createAppProject
  • route file: routes/adminAppCmsRoutes.js

POST /admin/app-projects/:id/courses

  • purpose: Handled by bindProjectCourse.
  • handled by: bindProjectCourse
  • route file: routes/adminAppCmsRoutes.js

PUT /admin/app-projects/:id/pages

  • purpose: Handled by upsertAppPage.
  • handled by: upsertAppPage
  • route file: routes/adminAppCmsRoutes.js

PUT /admin/app-projects/:id/theme

  • purpose: Handled by upsertAppTheme.
  • handled by: upsertAppTheme
  • route file: routes/adminAppCmsRoutes.js

GET /admin/app-projects/domain/:domain

  • purpose: Handled by getProjectByDomain.
  • handled by: getProjectByDomain
  • route file: routes/adminAppCmsRoutes.js

POST /admin/approvals/fast-mode

  • purpose: Handled by issueFastModeApproval.
  • handled by: issueFastModeApproval
  • route file: routes/adminConfirmationRoutes.js

POST /admin/bootstrap-user

  • purpose: Handled by bootstrapUser.
  • handled by: bootstrapUser
  • route file: routes/authBootstrapRoutes.js

POST /admin/bootstrap/add-admin

  • purpose: Handled by bootstrapAddAdmin.
  • handled by: bootstrapAddAdmin
  • route file: routes/adminStudentsRoutes.js

POST /admin/confirmations/approve

  • purpose: Handled by approveDangerousAction.
  • handled by: approveDangerousAction
  • route file: routes/adminConfirmationRoutes.js

POST /admin/confirmations/resume

  • purpose: Handled by resumePendingAction.
  • handled by: resumePendingAction
  • route file: routes/adminConfirmationRoutes.js

POST /admin/confirmations/revoke

  • purpose: Handled by revokeDangerousApproval.
  • handled by: revokeDangerousApproval
  • route file: routes/adminConfirmationRoutes.js

GET /admin/content-bank/grammar-cards

  • purpose: Handled by responseCache(45.
  • handled by: responseCache(45
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/grammar-cards

  • purpose: Handled by createGrammarCard.
  • handled by: createGrammarCard
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/grammar-cards/:id

  • purpose: Handled by deleteGrammarCard.
  • handled by: deleteGrammarCard
  • route file: routes/adminGrammarContentBankRoutes.js

GET /admin/content-bank/grammar-cards/:id

  • purpose: Handled by getGrammarCard.
  • handled by: getGrammarCard
  • route file: routes/adminGrammarContentBankRoutes.js

PUT /admin/content-bank/grammar-cards/:id

  • purpose: Handled by updateGrammarCard.
  • handled by: updateGrammarCard
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/grammar-cards/:id/assets

  • purpose: Handled by addGrammarCardAsset.
  • handled by: addGrammarCardAsset
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/grammar-cards/:id/assets/:asset_id

  • purpose: Handled by removeGrammarCardAsset.
  • handled by: removeGrammarCardAsset
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/grammar-cards/:id/examples

  • purpose: Handled by addGrammarCardExample.
  • handled by: addGrammarCardExample
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/grammar-cards/:id/examples/:example_id

  • purpose: Handled by removeGrammarCardExample.
  • handled by: removeGrammarCardExample
  • route file: routes/adminGrammarContentBankRoutes.js

GET /admin/content-bank/grammar-cards/:id/qa

  • purpose: Handled by getGrammarCardQa.
  • handled by: getGrammarCardQa
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/grammar-cards/:id/qa

  • purpose: System status/health check.
  • handled by: setGrammarCardQaStatus
  • route file: routes/adminGrammarContentBankRoutes.js

GET /admin/content-bank/grammar-concepts

  • purpose: Handled by responseCache(45.
  • handled by: responseCache(45
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/grammar-concepts

  • purpose: Handled by createGrammarConcept.
  • handled by: createGrammarConcept
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/grammar-concepts/:id

  • purpose: Handled by deleteGrammarConcept.
  • handled by: deleteGrammarConcept
  • route file: routes/adminGrammarContentBankRoutes.js

GET /admin/content-bank/grammar-concepts/:id

  • purpose: Handled by getGrammarConcept.
  • handled by: getGrammarConcept
  • route file: routes/adminGrammarContentBankRoutes.js

PUT /admin/content-bank/grammar-concepts/:id

  • purpose: Handled by updateGrammarConcept.
  • handled by: updateGrammarConcept
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/senses/:senseId

  • purpose: Handled by deleteSense.
  • handled by: deleteSense
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/senses/:senseId

  • purpose: Handled by updateSense.
  • handled by: updateSense
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/senses/:senseId/mark-reviewed

  • purpose: Handled by markSenseReviewed.
  • handled by: markSenseReviewed
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/senses/:senseId/publish

  • purpose: Handled by publishSense.
  • handled by: publishSense
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/senses/:senseId/verb-conjugations

  • purpose: Handled by listVerbConjugations.
  • handled by: listVerbConjugations
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/senses/:senseId/verb-conjugations/generate

  • purpose: Handled by generateVerbConjugations.
  • handled by: generateVerbConjugations
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/sentences

  • purpose: Handled by responseCache(45.
  • handled by: responseCache(45
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/sentences

  • purpose: Handled by createSentence.
  • handled by: createSentence
  • route file: routes/adminGrammarContentBankRoutes.js

DELETE /admin/content-bank/sentences/:id

  • purpose: Handled by deleteSentence.
  • handled by: deleteSentence
  • route file: routes/adminGrammarContentBankRoutes.js

GET /admin/content-bank/sentences/:id

  • purpose: Handled by getSentence.
  • handled by: getSentence
  • route file: routes/adminGrammarContentBankRoutes.js

PUT /admin/content-bank/sentences/:id

  • purpose: Handled by updateSentence.
  • handled by: updateSentence
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/sentences/:id/mark-ready

  • purpose: Handled by markSentenceReady.
  • handled by: markSentenceReady
  • route file: routes/adminGrammarContentBankRoutes.js

POST /admin/content-bank/sentences/create

  • purpose: Handled by createSentenceOps.
  • handled by: createSentenceOps
  • route file: routes/adminContentBankOpsRoutes.js

GET /admin/content-bank/themes

  • purpose: Handled by listThemes.
  • handled by: listThemes
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/content-bank/verb-conjugations/:id

  • purpose: Handled by deleteVerbConjugation.
  • handled by: deleteVerbConjugation
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/verb-conjugations/:id

  • purpose: Handled by updateVerbConjugation.
  • handled by: updateVerbConjugation
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/lemmas

  • purpose: Vocabulary/content-bank management.
  • handled by: listWords
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas

  • purpose: Vocabulary/content-bank management.
  • handled by: createWord
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWord
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: getWord
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: updateWord
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/lemmas/:id/detail

  • purpose: Vocabulary/content-bank management.
  • handled by: getContentBankVocabularyDetail
  • route file: routes/adminContentEngineRoutes.js

POST /admin/content-bank/lemmas/:id/forms/generate

  • purpose: Vocabulary/content-bank management.
  • handled by: generateContentBankVocabularyForms
  • route file: routes/adminContentEngineRoutes.js

GET /admin/content-bank/lemmas

  • purpose: Vocabulary/content-bank management.
  • handled by: responseCache(45
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas

  • purpose: Vocabulary/content-bank management.
  • handled by: createWord
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWord
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: getWord
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/lemmas/:id

  • purpose: Vocabulary/content-bank management.
  • handled by: updateWord
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/assets

  • purpose: Vocabulary/content-bank management.
  • handled by: createWordAsset
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/enrich

  • purpose: Vocabulary/content-bank management.
  • handled by: enqueueWordEnrichmentJob
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/forms

  • purpose: Vocabulary/content-bank management.
  • handled by: createWordForm
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/generate-audio

  • purpose: TTS generation or queue operation.
  • handled by: generateWordTts
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/generate-image

  • purpose: Vocabulary/content-bank management.
  • handled by: generateWordImage
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/grammar-links

  • purpose: Vocabulary/content-bank management.
  • handled by: createWordGrammarLink
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/content-bank/lemmas/:id/grammar-links/:conceptId

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWordGrammarLink
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/content-bank/lemmas/:id/senses

  • purpose: Vocabulary/content-bank management.
  • handled by: listSenses
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/senses

  • purpose: Vocabulary/content-bank management.
  • handled by: createSense
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/:id/translations

  • purpose: Vocabulary/content-bank management.
  • handled by: createWordTranslation
  • route file: routes/adminWordContentBankRoutes.js

PATCH /admin/content-bank/lemmas/:lemmaId

  • purpose: Vocabulary/content-bank management.
  • handled by: patchWordOps
  • route file: routes/adminContentBankOpsRoutes.js

DELETE /admin/content-bank/lemmas/assets/:assetId

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWordAsset
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/audit

  • purpose: Vocabulary/content-bank management.
  • handled by: auditWordsOps
  • route file: routes/adminContentBankOpsRoutes.js

POST /admin/content-bank/lemmas/bootstrap-bulk

  • purpose: Vocabulary/content-bank management.
  • handled by: bootstrapWordsBulkOps
  • route file: routes/adminContentBankOpsRoutes.js

POST /admin/content-bank/lemmas/bootstrap

  • purpose: Vocabulary/content-bank management.
  • handled by: bootstrapWordOps
  • route file: routes/adminContentBankOpsRoutes.js

DELETE /admin/content-bank/lemmas/forms/:formId

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWordForm
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/lemmas/forms/:formId

  • purpose: Vocabulary/content-bank management.
  • handled by: updateWordForm
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/content-bank/lemmas/translations/:translationId

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteWordTranslation
  • route file: routes/adminWordContentBankRoutes.js

PUT /admin/content-bank/lemmas/translations/:translationId

  • purpose: Vocabulary/content-bank management.
  • handled by: updateWordTranslation
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/content-bank/lemmas/upsert

  • purpose: Vocabulary/content-bank management.
  • handled by: upsertWordOps
  • route file: routes/adminContentBankOpsRoutes.js

GET /admin/content/items

  • purpose: Handled by listContentBankItems.
  • handled by: listContentBankItems
  • route file: routes/adminContentEngineRoutes.js

POST /admin/content/items

  • purpose: Handled by createContentBankItem.
  • handled by: createContentBankItem
  • route file: routes/adminContentEngineRoutes.js

PUT /admin/content/items/:id

  • purpose: Handled by updateContentBankItem.
  • handled by: updateContentBankItem
  • route file: routes/adminContentEngineRoutes.js

POST /admin/content/items/:id/assets

  • purpose: Handled by registerContentBankAsset.
  • handled by: registerContentBankAsset
  • route file: routes/adminContentEngineRoutes.js

POST /admin/content/items/:id/semantic-relations

  • purpose: Handled by updateContentBankSemanticRelations.
  • handled by: updateContentBankSemanticRelations
  • route file: routes/adminContentEngineRoutes.js

POST /admin/content/items/:id/tags

  • purpose: Handled by updateContentBankItemTags.
  • handled by: updateContentBankItemTags
  • route file: routes/adminContentEngineRoutes.js

GET /admin/copilot/conversations

  • purpose: Copilot context and diagnostics payload.
  • handled by: getCopilotConversations
  • route file: routes/adminCopilotRoutes.js

DELETE /admin/copilot/conversations/:id

  • purpose: Copilot context and diagnostics payload.
  • handled by: deleteCopilotConversation
  • route file: routes/adminCopilotRoutes.js

GET /admin/copilot/history

  • purpose: Copilot context and diagnostics payload.
  • handled by: getCopilotHistory
  • route file: routes/adminCopilotRoutes.js

POST /admin/copilot/messages

  • purpose: Handled by requireDangerousApproval('all'.
  • handled by: requireDangerousApproval('all'
  • route file: routes/adminCopilotRoutes.js

POST /admin/copilot/messages/stream

  • purpose: Handled by requireDangerousApproval('all'.
  • handled by: requireDangerousApproval('all'
  • route file: routes/adminCopilotRoutes.js

GET /admin/courses

  • purpose: Handled by listCourses.
  • handled by: listCourses
  • route file: routes/adminContentEngineRoutes.js

POST /admin/courses

  • purpose: Handled by createCourse.
  • handled by: createCourse
  • route file: routes/adminContentEngineRoutes.js

GET /admin/courses/:courseId/content-bank/lemmas

  • purpose: Vocabulary/content-bank management.
  • handled by: listCourseWords
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/courses/:id

  • purpose: Handled by getCourse.
  • handled by: getCourse
  • route file: routes/adminContentEngineRoutes.js

PATCH /admin/courses/:id

  • purpose: Handled by updateCourse.
  • handled by: updateCourse
  • route file: routes/adminContentEngineRoutes.js

PUT /admin/courses/:id

  • purpose: Handled by updateCourse.
  • handled by: updateCourse
  • route file: routes/adminContentEngineRoutes.js

GET /admin/courses/:id/content-bank/:type

  • purpose: Handled by listCourseContentBank.
  • handled by: listCourseContentBank
  • route file: routes/adminContentEngineRoutes.js

POST /admin/courses/:id/content-bank/link

  • purpose: Handled by linkCourseContentItem.
  • handled by: linkCourseContentItem
  • route file: routes/adminContentEngineRoutes.js

GET /admin/courses/:id/structure

  • purpose: Handled by getCourseStructure.
  • handled by: getCourseStructure
  • route file: routes/adminContentEngineRoutes.js
  • response data shape:
  • course: object (course metadata)
  • units: array (empty when course has no units)
  • skills: array (empty when units/skills are absent)
  • lessons: array (empty when units/skills/lessons are absent)

POST /admin/courses/:id/unit

  • purpose: Handled by createUnit.
  • handled by: createUnit
  • route file: routes/adminContentEngineRoutes.js

GET /admin/dashboard

  • purpose: Handled by getDashboardMetrics.
  • handled by: getDashboardMetrics
  • route file: routes/adminDashboardRoutes.js

POST /admin/docs/editor/save

  • purpose: System documentation fetch/search/reindex.
  • handled by: saveDocsDraft
  • route file: routes/adminDocsEditorRoutes.js

GET /admin/docs/metadata

  • purpose: System documentation fetch/search/reindex.
  • handled by: getSystemDocsMetadata
  • route file: routes/adminSystemRoutes.js

GET /admin/docs/search

  • purpose: System documentation fetch/search/reindex.
  • handled by: searchSystemDocs
  • route file: routes/internalDocsRoutes.js

POST /admin/evaluate

  • purpose: Handled by evaluatePractice.
  • handled by: evaluatePractice
  • route file: routes/practiceRoutes.js

GET /admin/grammar-cards

  • purpose: Handled by listPublicGrammarCards.
  • handled by: listPublicGrammarCards
  • route file: routes/publicGrammarContentBankRoutes.js

GET /admin/grammar-cards/:id

  • purpose: Handled by getPublicGrammarCard.
  • handled by: getPublicGrammarCard
  • route file: routes/publicGrammarContentBankRoutes.js

GET /admin/internal/docs/search

  • purpose: System documentation fetch/search/reindex.
  • handled by: searchSystemDocs
  • route file: routes/adminSystemRoutes.js

GET /admin/reports/metrics

  • purpose: Handled by getReportsMetrics.
  • handled by: getReportsMetrics
  • route file: routes/adminStudentsRoutes.js

GET /admin/settings

  • purpose: Handled by getAdminSettings.
  • handled by: getAdminSettings
  • route file: routes/adminDashboardRoutes.js

POST /admin/settings/admins

  • purpose: Handled by addAdminUser.
  • handled by: addAdminUser
  • route file: routes/adminDashboardRoutes.js

DELETE /admin/settings/admins/:userId

  • purpose: Handled by removeAdminUser.
  • handled by: removeAdminUser
  • route file: routes/adminDashboardRoutes.js

POST /admin/skill/:id/lesson

  • purpose: Handled by createLesson.
  • handled by: createLesson
  • route file: routes/adminContentEngineRoutes.js

GET /admin/students

  • purpose: Handled by listStudents.
  • handled by: listStudents
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/activity

  • purpose: Handled by getStudentActivity.
  • handled by: getStudentActivity
  • route file: routes/adminStudentsRoutes.js

POST /admin/students/:userId/adjust-wallet

  • purpose: Handled by adjustWallet.
  • handled by: adjustWallet
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/due-items

  • purpose: Handled by getDueItems.
  • handled by: getDueItems
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/enrollments

  • purpose: Handled by getEnrollments.
  • handled by: getEnrollments
  • route file: routes/adminStudentsRoutes.js

POST /admin/students/:userId/enrollments

  • purpose: Handled by addEnrollment.
  • handled by: addEnrollment
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/overview

  • purpose: Handled by getStudentOverview.
  • handled by: getStudentOverview
  • route file: routes/adminStudentsRoutes.js

PUT /admin/students/:userId/profile

  • purpose: Handled by updateStudentProfile.
  • handled by: updateStudentProfile
  • route file: routes/adminStudentsRoutes.js

POST /admin/students/:userId/reset-password

  • purpose: Vocabulary/content-bank management.
  • handled by: resetStudentPassword
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/sessions

  • purpose: Handled by getStudentSessions.
  • handled by: getStudentSessions
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/skills

  • purpose: Handled by getSkillProgress.
  • handled by: getSkillProgress
  • route file: routes/adminStudentsRoutes.js

POST /admin/students/:userId/status

  • purpose: System status/health check.
  • handled by: updateStudentStatus
  • route file: routes/adminStudentsRoutes.js

GET /admin/students/:userId/weak-items

  • purpose: Handled by getWeakItems.
  • handled by: getWeakItems
  • route file: routes/adminStudentsRoutes.js

POST /admin/students/invite-link

  • purpose: Handled by generateInviteLink.
  • handled by: generateInviteLink
  • route file: routes/adminStudentsRoutes.js

GET /admin/system/copilot-context

  • purpose: Copilot context and diagnostics payload.
  • handled by: getCopilotContext
  • route file: routes/adminSystemRoutes.js

GET /admin/system/diagnostics

  • purpose: Handled by responseCache(5.
  • handled by: responseCache(5
  • route file: routes/adminSystemRoutes.js

GET /admin/system/docs

  • purpose: System documentation fetch/search/reindex.
  • handled by: getSystemDocs
  • route file: routes/adminSystemRoutes.js

POST /admin/system/docs/reindex

  • purpose: System documentation fetch/search/reindex.
  • handled by: reindexSystemDocs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/docs/search

  • purpose: System documentation fetch/search/reindex.
  • handled by: searchSystemDocs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/error-replay/:id

  • purpose: Handled by getSystemErrorReplay.
  • handled by: getSystemErrorReplay
  • route file: routes/adminSystemRoutes.js

GET /admin/system/errors

  • purpose: Handled by getSystemErrors.
  • handled by: getSystemErrors
  • route file: routes/adminSystemRoutes.js

GET /admin/system/events

  • purpose: Handled by getSystemEvents.
  • handled by: getSystemEvents
  • route file: routes/adminSystemRoutes.js

GET /admin/system/feature-flags

  • purpose: Handled by getSystemFeatureFlags.
  • handled by: getSystemFeatureFlags
  • route file: routes/adminSystemRoutes.js

PATCH /admin/system/feature-flags

  • purpose: Handled by updateSystemFeatureFlag.
  • handled by: updateSystemFeatureFlag
  • route file: routes/adminSystemRoutes.js

GET /admin/system/health

  • purpose: System status/health check.
  • handled by: getUnifiedSystemHealth
  • route file: routes/adminSystemRoutes.js

DELETE /admin/system/logs

  • purpose: Handled by clearSystemLogs.
  • handled by: clearSystemLogs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/logs

  • purpose: Handled by getSystemLogs.
  • handled by: getSystemLogs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/logs/explorer

  • purpose: Handled by getStructuredSystemLogs.
  • handled by: getStructuredSystemLogs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/logs/stream

  • purpose: Handled by streamSystemLogs.
  • handled by: streamSystemLogs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/monitor

  • purpose: Handled by getSystemMonitor.
  • handled by: getSystemMonitor
  • route file: routes/adminSystemRoutes.js

GET /admin/system/queues

  • purpose: Handled by getQueueStats.
  • handled by: getQueueStats
  • route file: routes/adminSystemRoutes.js

DELETE /admin/system/queues/:queueName/failed

  • purpose: Handled by clearFailedQueueJobs.
  • handled by: clearFailedQueueJobs
  • route file: routes/adminSystemRoutes.js

POST /admin/system/queues/:queueName/retry-failed

  • purpose: Handled by retryFailedQueueJobs.
  • handled by: retryFailedQueueJobs
  • route file: routes/adminSystemRoutes.js

GET /admin/system/queues/tts

  • purpose: System status/health check.
  • handled by: getTtsQueueStatus
  • route file: routes/adminSystemRoutes.js

GET /admin/system/status

  • purpose: System status/health check.
  • handled by: getSystemStatus
  • route file: routes/adminSystemRoutes.js

GET /admin/system/tts

  • purpose: System status/health check.
  • handled by: getTtsSystemStatus
  • route file: routes/adminSystemRoutes.js

GET /admin/themes

  • purpose: Handled by listThemes.
  • handled by: listThemes
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/themes

  • purpose: Handled by createTheme.
  • handled by: createTheme
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/themes/:id

  • purpose: Handled by deleteTheme.
  • handled by: deleteTheme
  • route file: routes/adminWordContentBankRoutes.js

PATCH /admin/themes/:id

  • purpose: Handled by updateTheme.
  • handled by: updateTheme
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/tts/generate

  • purpose: TTS generation or queue operation.
  • handled by: generateAudio
  • route file: routes/adminTtsRoutes.js

POST /admin/unit/:id/skill

  • purpose: Handled by createSkill.
  • handled by: createSkill
  • route file: routes/adminContentEngineRoutes.js

GET /admin/lemmas/:id/senses

  • purpose: Vocabulary/content-bank management.
  • handled by: listSenses
  • route file: routes/adminWordContentBankRoutes.js

POST /admin/lemmas/:id/senses

  • purpose: Vocabulary/content-bank management.
  • handled by: createSense
  • route file: routes/adminWordContentBankRoutes.js

DELETE /admin/lemmas/senses/:senseId

  • purpose: Vocabulary/content-bank management.
  • handled by: deleteSense
  • route file: routes/adminWordContentBankRoutes.js

PATCH /admin/lemmas/senses/:senseId

  • purpose: Vocabulary/content-bank management.
  • handled by: updateSense
  • route file: routes/adminWordContentBankRoutes.js

GET /admin/lemmas/senses/lookup

  • purpose: Vocabulary/content-bank management.
  • handled by: lookupSenses
  • route file: routes/adminWordContentBankRoutes.js