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 editorCandidate schema (NEW)
Proposed contract · JSON or YAML · 256 KiB maximum.
Candidate schema editorCompare 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