browser-local semantic comparison

JSON Schema Breaking Change Checker

Compare two Draft 2020-12 schemas by validation meaning, with separate old-to-new and new-to-old directions.

Baseline schema (OLD)

Previously accepted contract · JSON or YAML · 256 KiB maximum.

Baseline schema editor
Loading editor…

Candidate schema (NEW)

Proposed contract · JSON or YAML · 256 KiB maximum.

Candidate schema editor
Loading editor…

Compare contracts

Semantic comparison

Ready to compare

Load an example or paste two Draft 2020-12 schemas, then choose Compare locally.

Semantic comparison, not text diff

Formatting, object key order, set-like keyword order, and documented default values are normalized for comparison. A narrower NEW schema can reject OLD-valid data. A wider NEW schema can allow data the OLD validator rejects. The two questions are shown separately.

Supported and uncertain changes

The engine compares types, enum/const sets, numeric and length bounds, required properties, simple property and array contexts, and more. Changed composition, regex replacement, multipleOf, and complex unevaluated behavior may be unknown. It does not prove arbitrary schema implication. External references are never fetched.

Privacy and indexability

Both inputs stay in browser memory and run in a browser worker. No provider, product backend, or analytics receives pasted schemas. Each schema is limited to 256 KiB and depth 64, with at most 500 reported changes and a 15-second worker timeout. Coverage becomes partial for unsupported semantics.

Open the API contract perspective

Continue with a focused tool