---
title: "Validate Schedule Configuration"
method: POST
path: "/validate"
---

# Validate Schedule Configuration

`POST /validate`

Validate raw combined configuration JSON without converting errors to HTTP failures.

Args:
    payload: Untrusted JSON object containing scheduler and time-slot sections.

Returns:
    Structured validity, ordered diagnostics, and a fingerprint when valid.

Raises:
    None for configuration errors; they are encoded in the returned diagnostics.

Behavior:
    Validation uses the same schema and combined cross-reference rules as
    submission, but preserves all discovered configuration problems as response
    records. It does not create a scheduler, consume session capacity, or invoke
    Z3, making the endpoint suitable for pre-submission feedback.

## Request body

- object

## Response `200`

Successful Response

- ConfigurationValidationResponse — Non-throwing schema and cross-reference validation result for raw JSON input. Fields: is_valid: Whether the payload can construct a valid combined configuration. diagnostics: Ordered structured errors; empty when validation succeeds. configuration_fingerprint: Stable digest for valid normalized input only.
  - `is_valid` boolean, required
  - `diagnostics` ConfigurationDiagnosticResponse[], required
    - `code` string, required
    - `path` string, required
    - `message` string, required
    - `value` string, nullable
    - `related_paths` string[], required
  - `configuration_fingerprint` string, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-07-19** `56f0e753f2e4` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mucsci/apis/course-scheduler-api/changes/validate/post.md)

---

[API](https://skmtc.dev/mucsci/apis/course-scheduler-api.md) · [All operations](https://skmtc.dev/mucsci/apis/course-scheduler-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mucsci/course-scheduler-api/revisions/592f7d3013d3/schema)
