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

---

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