---
title: "Validate pseudonymous 2020–2025 PT15M datasets"
method: POST
path: "/api/forecast-sandbox/consumption/evaluation/validate"
tags: ["Forecast Sandbox"]
---

# Validate pseudonymous 2020–2025 PT15M datasets

`POST /api/forecast-sandbox/consumption/evaluation/validate`

## Request

- Base URL: `https://api.cernion.de`
- URL: `https://api.cernion.de/api/forecast-sandbox/consumption/evaluation/validate`
- Auth: none declared

Stateless sandbox evaluation. Explicit timezone, DST-aware local days. JSON export includes curves, training cutoffs, metrics and readiness dossier. No SLA or commercial commitment. API body limit: 25 MB; split series across requests when necessary.

## Query parameters

- `token` string

## Request body

- object
  - `datasets` object[], required
    - `series_id` string, required: Pseudonymous identifier; no personal data.
    - `timezone` string, required
    - `unit` 'kW' | 'kWh', required
    - `customer_type` string
    - `segment` string
    - `weather_region` string
    - `period_from` string, date
    - `period_until` string, date
    - `field_mapping` object
      - `timestamp` string
      - `value` string
    - `values` object[], required
      - `timestamp` string, date-time, required: Interval start with explicit offset or Z.
      - `value` number, nullable, required
      - `available_at` string, date-time: Actual historical availability of this measurement/revision.
      - `quality_flag` string
  - `token` string: Optional Cernion MCP token for this request. Overrides CERNION_TOKEN when provided.

## Response `200`

Evaluation or data validation result.

- object
  - `status` string, required
  - `testcaseBoundary` object, required
  - `validations` object[]
  - `results` object[]
    - `forecast_run` object
    - `validation` object
    - `forecast_values` object[]
      - `timestamp` string, date-time
      - `predicted_value` number: Final prediction after optional threshold filtering.
      - `raw_predicted_value` number: Unfiltered prediction; present when prediction_threshold_w > 0.
      - `prediction_zeroed` boolean: True only when a nonzero raw prediction was set to zero.
      - `actual_value` number, nullable
      - `deviation` number, nullable
      - `training_data_until` string, date-time
    - `daily_results` object[]
    - `backtest` object: Metrics for final predictions against unchanged actual measurements.
    - `filter_evaluation` object: Present when filtering is enabled: threshold_w, threshold_value, unit, changed_intervals, actuals_modified=false, raw_backtest and filtered_backtest.
    - `deviation_energy` object
    - `readiness_dossier` object
    - `relationship_analysis` object, nullable
      - `version` string
      - `causal_claim` boolean
      - `selections` object[]
        - `selection_id` string
        - `as_of` string, date-time
        - `status` 'validated_relationships' | 'baseline_retained' | 'insufficient_evidence'
        - `selected_groups` string[]
        - `selected_window_days` integer, nullable: Null means all eligible history, no arbitrary truncation.
        - `historical_quality` object: Untouched historical confirmation MSE/RMSE/MAE; available without 2025 actuals when history is sufficient.
        - `relationships` object[]
        - `candidates` object[]

## Other responses

- `400`: Structured validation/configuration failure with status, error and testcaseBoundary.
- `500`: Unexpected evaluation failure; internal details are not returned.

---

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