---
title: "Classify a task and persist advisory case state"
method: POST
path: "/api/domain-router/classify"
tags: ["Domain Router"]
---

# Classify a task and persist advisory case state

`POST /api/domain-router/classify`

## Request

- Base URL: `https://api.cernion.de`
- URL: `https://api.cernion.de/api/domain-router/classify`
- Auth: none declared

Authenticated tenant, actor, energy role and sensitivity policy required. Advisory only. Local PouchDB case/event metadata; no operational execution. See docs/domain-router.md.

## Query parameters

- `token` string

## Request body

- union
  - object
    - `schemaVersion` '1.1'
    - `conversationId` string
    - `agentSessionId` string
    - `cetCaseId` string
    - `caseId` string
    - `tenantId` string
    - `actorId` string
    - `agentProfile` string
    - `roomId` string
    - `threadId` string
    - `userRequest` string, required
    - `conversationExcerpt` string
    - `priorCetStateRef` string
    - `forceReceipt` string
    - `clientId` string
    - `since` string
    - `openWebuiConversationId` string
    - `openWebuiUserId` string
    - `openWebuiOrgId` string
    - `requestId` string
    - `correlationId` string
    - `actorRoles` string[]
    - `sensitivityFlags` string[]
    - `preferredReceipts` string[]
    - `sharedWithRoles` string[]
    - `knownContext` object
      - `identifiers` object[]
        - `kind` string, required
        - `value` string, required
    - `requestedMode` 'classify' | 'continue' | 'answer' | 'dossier' | 'evidence' | 'handoff'
    - `channel` 'matrix' | 'hermes' | 'api' | 'web' | 'test' | 'open-webui'
    - `disableReceiptSelection` boolean
    - `disableKnowledgeRouting` boolean
    - `caseStateVersion` integer
    - `asyncDelivery` object
      - `mode` 'poll' | 'none', required
      - `clientId` string
      - `clientCorrelationId` string
      - `pollIntervalHintSec` integer
      - `supportedEventTypes` string[]
      - `ackMode` 'explicit'
      - `resumeToken` string
    - `taskEnvelope` object
      - `schemaVersion` '1.1'
      - `conversationId` string
      - `agentSessionId` string
      - `cetCaseId` string
      - `caseId` string
      - `tenantId` string
      - `actorId` string
      - `agentProfile` string
      - `roomId` string
      - `threadId` string
      - `userRequest` string, required
      - `conversationExcerpt` string
      - `priorCetStateRef` string
      - `forceReceipt` string
      - `clientId` string
      - `since` string
      - `openWebuiConversationId` string
      - `openWebuiUserId` string
      - `openWebuiOrgId` string
      - `requestId` string
      - `correlationId` string
      - `actorRoles` string[]
      - `sensitivityFlags` string[]
      - `preferredReceipts` string[]
      - `sharedWithRoles` string[]
      - `knownContext` object
        - `identifiers` object[]
          - `kind` string, required
          - `value` string, required
      - `requestedMode` 'classify' | 'continue' | 'answer' | 'dossier' | 'evidence' | 'handoff'
      - `channel` 'matrix' | 'hermes' | 'api' | 'web' | 'test' | 'open-webui'
      - `disableReceiptSelection` boolean
      - `disableKnowledgeRouting` boolean
      - `caseStateVersion` integer
      - `asyncDelivery` object
        - `mode` 'poll' | 'none', required
        - `clientId` string
        - `clientCorrelationId` string
        - `pollIntervalHintSec` integer
        - `supportedEventTypes` string[]
        - `ackMode` 'explicit'
        - `resumeToken` string
    - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.
  - object
    - `schemaVersion` '1.1'
    - `conversationId` string
    - `agentSessionId` string
    - `cetCaseId` string
    - `caseId` string
    - `tenantId` string
    - `actorId` string
    - `agentProfile` string
    - `roomId` string
    - `threadId` string
    - `userRequest` string
    - `conversationExcerpt` string
    - `priorCetStateRef` string
    - `forceReceipt` string
    - `clientId` string
    - `since` string
    - `openWebuiConversationId` string
    - `openWebuiUserId` string
    - `openWebuiOrgId` string
    - `requestId` string
    - `correlationId` string
    - `actorRoles` string[]
    - `sensitivityFlags` string[]
    - `preferredReceipts` string[]
    - `sharedWithRoles` string[]
    - `knownContext` object
      - `identifiers` object[]
        - `kind` string, required
        - `value` string, required
    - `requestedMode` 'classify' | 'continue' | 'answer' | 'dossier' | 'evidence' | 'handoff'
    - `channel` 'matrix' | 'hermes' | 'api' | 'web' | 'test' | 'open-webui'
    - `disableReceiptSelection` boolean
    - `disableKnowledgeRouting` boolean
    - `caseStateVersion` integer
    - `asyncDelivery` object
      - `mode` 'poll' | 'none', required
      - `clientId` string
      - `clientCorrelationId` string
      - `pollIntervalHintSec` integer
      - `supportedEventTypes` string[]
      - `ackMode` 'explicit'
      - `resumeToken` string
    - `taskEnvelope` object, required
      - `schemaVersion` '1.1'
      - `conversationId` string
      - `agentSessionId` string
      - `cetCaseId` string
      - `caseId` string
      - `tenantId` string
      - `actorId` string
      - `agentProfile` string
      - `roomId` string
      - `threadId` string
      - `userRequest` string, required
      - `conversationExcerpt` string
      - `priorCetStateRef` string
      - `forceReceipt` string
      - `clientId` string
      - `since` string
      - `openWebuiConversationId` string
      - `openWebuiUserId` string
      - `openWebuiOrgId` string
      - `requestId` string
      - `correlationId` string
      - `actorRoles` string[]
      - `sensitivityFlags` string[]
      - `preferredReceipts` string[]
      - `sharedWithRoles` string[]
      - `knownContext` object
        - `identifiers` object[]
          - `kind` string, required
          - `value` string, required
      - `requestedMode` 'classify' | 'continue' | 'answer' | 'dossier' | 'evidence' | 'handoff'
      - `channel` 'matrix' | 'hermes' | 'api' | 'web' | 'test' | 'open-webui'
      - `disableReceiptSelection` boolean
      - `disableKnowledgeRouting` boolean
      - `caseStateVersion` integer
      - `asyncDelivery` object
        - `mode` 'poll' | 'none', required
        - `clientId` string
        - `clientCorrelationId` string
        - `pollIntervalHintSec` integer
        - `supportedEventTypes` string[]
        - `ackMode` 'explicit'
        - `resumeToken` string
    - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

## Response `200`

Advisory routing or policy-filtered case metadata

- object
  - `schemaVersion` unknown, required
  - `cetCaseId` unknown, required
  - `caseStateVersion` unknown, required
  - `primaryDomain` unknown, required
  - `domainConfidence` unknown, required
  - `alternativeDomains` unknown, required
  - `ambiguityFlags` unknown, required
  - `matchedSignals` unknown, required
  - `roleInterpretation` unknown, required
  - `selectedCapabilities` unknown, required
  - `candidateCapabilities` unknown, required
  - `selectedReceipts` unknown, required
  - `candidateReceipts` unknown, required
  - `knowledgeRefs` unknown, required
  - `allowedActions` unknown, required
  - `blockedActions` unknown, required
  - `transition` unknown, required
  - `requiredClarifications` unknown, required
  - `evidenceRequirements` unknown, required
  - `nextState` unknown, required
  - `responseGuidance` unknown, required
  - `matchedLaufkarten` unknown, required
  - `currentStation` unknown, required
  - `candidateStations` unknown, required
  - `controlPoint` unknown, required
  - `nextSafeStep` unknown, required
  - `hitlBoundary` unknown, required
  - `readinessState` unknown, required
  - `readinessScore` unknown, required
  - `missingEvidence` unknown, required
  - `noCallGuards` unknown, required
  - `roleProjection` unknown, required

## Other responses

- `403`: Tenant, role or sensitivity denied
- `409`: Stale case revision; reload and retry
- `422`: Invalid task or forced receipt

---

[API](https://skmtc.dev/cernion/apis/cernion-energy-tools-api.md) · [All operations](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cernion/apis/cernion-energy-tools-api/revisions/cdb94473b538?raw)
