Aller au contenu

REST API Reference

Ce contenu n’est pas encore disponible dans votre langue.

Audience: developer integrating with the Cortex REST API.

All routes are mounted under /api (e.g. GET http://localhost:9096/api/atoms). The API uses the envelope format { ok: true, data: ... } for success and { ok: false, error: { message, code } } for errors.

Authentication is via API key passed in the Authorization header as Bearer <key>. Role-based access is enforced per route.


Cortex supports two modes controlled by the CORTEX_MODE environment variable:

  • full (default): all routes are mounted.
  • lib: read-only catalogue routes only (atoms, search, templates, governance, catalogue, library, navigation, documents, account).

Routes marked full below are only available in full mode.


MethodPathRoleModeDescription
GET/atoms—libSearch atoms by taxonomy. Query: famille, sousFamille, type (FEUILLE/COMPOSE), occurrence, limit.
GET/atoms/stats—libAtom distribution statistics (total, byFamille, bySousFamille, byType).
GET/atoms/governance—libGovernance atoms grouped by sous-famille.
GET/atoms/:id—libAtom detail (all 6 layers). Returns 404 if not found.

MethodPathRoleModeDescription
GET/catalogue/blocsreaderlibList blocs. Query: type (skill/expertise/methode/tool/scope, supports CSV), category, tags (CSV), limit, offset. Response includes usedByCount.
GET/catalogue/blocs/search?q=...readerlibFull-text search blocs. Query: q (required).
GET/catalogue/blocs/:idreaderlibGet a single bloc. Query: version (optional semver for history).
POST/catalogue/blocscontributorlibDeposit a new bloc. Body: DepositBlocBody. Returns 201.
PATCH/catalogue/blocs/:idcontributorlibUpdate an existing bloc. Body: UpdateBlocBody.
DELETE/catalogue/blocs/:idadminlibDelete an orphan bloc.
GET/catalogue/statsreaderlibCatalogue statistics by type/category.

MethodPathRoleModeDescription
GET/catalogue/modelesreaderlibList all modeles.
GET/catalogue/modeles/:idreaderlibGet a single modele. Returns 404 if not found.
POST/catalogue/modelescontributorlibDeposit a new modele. Body: DepositModeleBody. Returns 201.
DELETE/catalogue/modeles/:idadminlibDelete a modele.

MethodPathRoleModeDescription
GET/profilsreaderlibList profils. Query: origin (modele/sur_mesure/variante), owner, limit, summary (boolean, returns minimal fields).
GET/profils/search?q=...readerlibFull-text search profils. Query: q (required).
GET/profils/:idreaderlibGet a single profil with blocs and variantes.
GET/profils/:id/cardreaderlibGet a profil card (summary with bloc counts and variant count).
POST/profilscontributorlibCreate a profil (alias of forger). Body: ForgerProfilBody. Returns 201.
POST/profils/forgercontributorlibForge a new profil from blocs. Body: ForgerProfilBody. Returns 201.
POST/profils/pack-hyos—libPack HYOS for agent onboarding. Body: { id, project_id?, bloc_types? }. Returns profil + blocs + governance.
POST/profils/:id/enrichircontributorlibAdd blocs to a profil. Body: { blocIds: string[] }.
POST/profils/:id/detachercontributorlibDetach blocs from a profil. Body: { blocIds: string[] }.
POST/profils/:id/variantecontributorlibCreate a variante. Body: CreerVarianteBody. Returns 201.
PATCH/profils/:idcontributorlibEdit profil fields (role, mission, mindset, keywords, sectors, scope, responsibilities, metiers). Bumps semver.
PATCH/profils/:id/blocs/:blocIdcontributorlibChange the weight (poids) of an attached bloc. Body: { poids: 'core' | 'support' }.
DELETE/profils/:idadminlibDelete a profil (fails if it has variantes or active instances).

MethodPathRoleModeDescription
POST/blocscontributorfullIngest a single bloc via the ingestion pipeline. Body: arka.hcm.block.v1 JSON. Rate limited (600/min).
POST/blocs/dry-runcontributorfullValidate a bloc without persisting. Same body.
POST/blocs/batchadminfullBatch ingest up to 200 blocs. Body: JSON array.
POST/profils/ingestcontributorfullIngest a single profil via the ingestion pipeline. Body: arka.hcm.profil.v1 JSON. Rate limited (200/min).
POST/profils/ingest/batchadminfullBatch ingest profils. Body: JSON array.

MethodPathRoleModeDescription
POST/depositcontributorfullDeposit a single node + edges. Body: DepositBody. Returns 201.
POST/deposit/batchcontributorfullDeposit up to 100 nodes. Body: { items: DepositBody[] }. Returns 201.
POST/enrichcontributorfullMerge data into an existing node. Body: EnrichBody.
DELETE/nodes/:idcontributorfullRemove a node.

MethodPathRoleModeDescription
POST/search—libFaceted search (MeiliSearch). Body: { query, filters?, facets?, sort?, limit?, offset? }.
GET/search/atoms?q=...—libSearch atoms by occurrence.
GET/search/statsadminlibMeiliSearch index statistics.

MethodPathRoleModeDescription
GET/workspace/overview—fullWorkspace overview (projects, totals).
GET/workspace/scope—fullAdaptive scope. Query: project, mission, library (off/consumed/all).
GET/workspace/projects—fullList projects. Query: includeArchived (boolean).
GET/workspace/projects/:id—fullProject detail + missions + counts.
GET/workspace/projects/:id/agents—fullProject agents (team).
GET/workspace/projects/:id/mcts—fullProject MCT list.
GET/workspace/projects/:id/odms—fullProject ODM list.
GET/workspace/projects/:id/crs—fullProject CR list.
POST/workspace/projects—fullCreate a project. Body: CreateProjectBody.
PATCH/workspace/projects/:id—fullUpdate a project. Body: UpdateProjectBody.
GET/workspace/missions/:id—fullMission detail + ODMs + CRs.
GET/workspace/missions/:id/mct—fullMission MCT.
POST/workspace/missions—fullCreate a mission. Body: CreateMissionBody.
PATCH/workspace/missions/:id—fullUpdate a mission. Body: UpdateMissionBody.
POST/workspace/missions/:id/links—fullAdd a link to a mission. Body: MissionLinkBody.
DELETE/workspace/missions/:id/links/:targetId—fullRemove a link from a mission.
GET/workspace/missions/:id/links—fullList mission links.
GET/workspace/mcts/:id—fullMCT detail.
POST/workspace/odms—fullCreate an ODM. Body: CreateOdmBody.
GET/workspace/odms/:id—fullODM detail + tasks + CRs.
PATCH/workspace/odms/:id—fullUpdate an ODM. Body: PatchOdmBody.
POST/workspace/crs—fullCreate a CR. Body: CreateCrBody.
GET/workspace/crs/:id—fullCR detail.
PATCH/workspace/crs/:id—fullUpdate a CR. Body: PatchCrBody.

MethodPathRoleModeDescription
GET/memory/agent/:agentId/project/:projectId/resume—fullAgent memory resume for a project.
GET/memory/project/:projectId/resume—fullProject memory resume.
GET/memory/project/:projectId/decisions—fullProject decisions. Query: status, limit.
GET/memory/agent/:agentId/decisions—fullAgent decisions. Query: status, projectId.
GET/memory/agent/:agentId/erreurs—fullAgent errors. Query: status, projectId.
GET/memory/agent/:agentId/patterns—fullAgent patterns. Query: projectId.
GET/memory/agent/:agentId/feedbacks—fullAgent feedbacks. Query: projectId.
PUT/memory/agent/resume—fullUpdate agent resume.
PUT/memory/project/resume—fullUpdate project resume.
POST/memory/atoms—fullDeposit a memory atom (decision, erreur, pattern, feedback).
PATCH/memory/atoms/status—fullUpdate memory atom status.

MethodPathRoleModeDescription
GET/governance/praxis—libList Praxis bricks.
GET/governance/praxis/:id—libGet a single Praxis brick. Returns 404 if not found.
GET/governance/atoms—libGovernance atoms grouped by sous-famille.

MethodPathRoleModeDescription
GET/context/:id—lib360-degree context of an entity (node + edges + neighbors).
GET/impact/:id—libBlast radius analysis. Query: direction (upstream/downstream), maxDepth.
GET/nodes/:id—libGet a single node.
GET/edges/:id—libGet edges for a node.
GET/traverse/:id—libTraverse from a node. Query: direction, edgeType, depth.
GET/nodes/type/:type—libList nodes by type.
GET/subgraph/:id—libAlias for traverse.
POST/queryadminlibRaw SurrealQL query (SELECT only).
GET/diff—libGraph diff since timestamp.

MethodPathRoleModeDescription
GET/templates—libList all template types (17 types).
GET/templates/:type—libGet template definition by type.
POST/templates/build—fullBuild an entity from a template + data. Body: TemplateBuildBody.
GET/tasks—libList tasks. Query: odm (filter by ODM ID).

MethodPathRoleModeDescription
POST/documentscontributorlibIngest a document. Body: IngestDocumentBody. Returns 201.
GET/documents—libList documents. Query: tags (CSV), since, until, query, limit, offset.
GET/documents/search?q=...—libSearch documents.
GET/documents/:id—libGet a document.
GET/documents/ref/:ref—libGet a document by ref.
GET/documents/:id/history—libDocument version history.
DELETE/documents/:idcontributorlibDelete a document.

MethodPathRoleModeDescription
GET/library/families—libList families. Query: limit, offset.
GET/library/families/:id/children—libGet sub-families of a family.
GET/library/families/:fid/sub-families—libAlias for children.
GET/library/sub-families/:sfid/sub-sub-families—libGet sub-sub-families.
GET/library/sub-sub-families/:id/links—libGet links of a sub-sub-family.

MethodPathRoleModeDescription
GET/versioning/current/:nodeId—fullCurrent version of a node.
GET/versioning/history/:sourceId—fullVersion history. Query: since.
GET/versioning/instances/:projectId—fullProject instances.
GET/versioning/instances/context/:type/:id—fullContext instances.
GET/versioning/diff/:instanceId—fullDiff an instance. Query: includeFieldDiffs.
GET/versioning/drift/:projectId—fullProject drift analysis. Query: includeFieldDiffs. Rate limited (10/min).
GET/versioning/content/:instanceId—fullInstance content.
POST/versioning/instantiate—fullInstantiate a node. Body: InstantiateBody.

MethodPathRoleModeDescription
GET/divergence/snapshotadminfullExport instance snapshot. Query: include_content.
GET/divergence/soucheadminfullGet current souche.
GET/divergence/souche/versionreaderfullGet souche version.
POST/divergence/souche/updateadminfullUpdate souche.
POST/divergence/souche/initadminfullInitialize souche.
POST/divergence/compareadminfullCompare two snapshots.
GET/divergence/vs-soucheadminfullCompare instance vs souche.
POST/divergence/detect-cross-pollinationadminfullDetect cross-pollination signals.
GET/divergence/signalsadminfullList cross-pollination signals.
POST/divergence/signals/:id/promoteadminfullPromote a signal.
POST/divergence/signals/:id/ignoreadminfullIgnore a signal.

MethodPathRoleModeDescription
POST/audit/generateadminfullGenerate an audit document.
GET/audit—fullList audit documents. Query: type, projectId, limit.
GET/audit/:id—fullGet an audit document.
GET/audit/:id/verify—fullVerify an audit document.

MethodPathRoleModeDescription
GET/admin/statusadminfullSystem status (version, node/edge/document counts).
POST/admin/reindexadminfullReindex MeiliSearch.
GET/admin/audit-trailadminfullAudit trail. Query: limit.

MethodPathRoleModeDescription
POST/diff/snapshotcontributorfullCapture a diff snapshot. Body: { scope? }.
GET/diff/snapshots—fullList snapshots. Query: limit, offset.

MethodPathRoleModeDescription
Various/account/*varieslibAPI key management, OAuth client management, provider credentials (admin).

MethodPathRoleModeDescription
Various/events/*—fullServer-Sent Events token endpoint.

MethodPathDescription
GET/healthHealth check (mounted outside /api, at server root). Returns { status: 'ok' }.