---
title: "Recommend read-only evidence endpoints for a request (never executes, never answers)"
method: POST
path: "/api/evidence-router/route"
tags: ["Evidence Router"]
---

# Recommend read-only evidence endpoints for a request (never executes, never answers)

`POST /api/evidence-router/route`

## Request

- Base URL: `https://api.cernion.de`
- URL: `https://api.cernion.de/api/evidence-router/route`
- Auth: none declared

Infers which evidence type(s) (resultKind, e.g. time_series, asset_table, market_signal) the request needs, then matches them against a curated read-only endpoint catalog. Recommends one or more approved read-only endpoints with fachliche result semantics, and reports coverage/missing evidence types. Never substitutes an unrelated endpoint when the required evidence type is unavailable (coverage.noSubstitution is always true). Never mutates state, never creates process side effects, never synthesizes the final user-facing answer — that remains the responsibility of the consuming agent/orchestrator. Distinct from the Process Intake / Write Boundary contract (POST /api/copilot-process/intents): this action only ever recommends GET/POST read-only lookups, never process/write intents.

## Query parameters

- `token` string

## Request body

- object
  - `question` string, required: Natural-language request describing the evidence needed.
  - `context` object: Optional canonical input values (location, dateFrom, dateTo, assetType, ...).
  - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

## Response `200`

Evidence Router response — recommendation, never an executed result or final answer.

- object
  - `success` boolean, required
  - `resolved` object, required
    - `kind` string
    - `source` string
  - `requiredEvidenceTypes` string[], required
  - `recommendedEndpoints` object[], required
    - `purpose` string
    - `method` string
    - `path` string
    - `query` object
    - `resultKind` string
    - `semanticFacts` string[]
    - `freshness` string
    - `granularity` string
    - `timeRangeSupport` boolean
    - `requiredInputs` string[]
    - `optionalInputs` string[]
    - `policy` object
      - `readOnly` boolean
      - `sideEffects` string
      - `tenantScoped` boolean
      - `externalSideEffects` boolean
  - `coverage` object, required
    - `coveredEvidenceTypes` string[]
    - `missingEvidenceTypes` string[]
    - `noSubstitution` boolean
  - `nextStep` string, required

---

[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)
