Schema evolution

JSON Schema diffSee what changed before a release

Paste two JSON Schema documents or load the paired example. Choose which producer sends data to which consumer.

JSON Schema diff

Old JSON Schema

New JSON Schema

Both schemas are compared in this browser. No input or reference URL is uploaded.

Validation options

Ready for a manual check.

Differences

A JSON Schema diff helps when a stored record still follows yesterday’s contract but a new reader is about to deploy. Compare the accepted values, not just the text of two files.

Use JSON Schema diff to inspect changes before rolling a producer forward. A new optional property and a new required property are not the same migration.

Why use JSON Schema diff?

Read the direction before treating a change as safe.

Risk follows the data flow

Switch from old producer to new consumer to the reverse path. The same added required field can threaten old records while the opposite direction has no detected risk for that rule.

Two schema trees point toward opposite data-flow arrows; one direction carries an amber risk marker.

Review unknown semantics openly

JSON Schema diff lists $ref and composition paths for manual review instead of turning an unsupported inference into a green compatibility claim.

Two schema documents show a highlighted reference branch beside a separate review marker.

Check the contract from the right side

01

Choose the producer first

Old data → new Schema is the default. Switch to new data → old Schema when an old consumer must read newly produced records.

02

Inspect changed paths

The report uses JSON Pointer locations. A required name appears under /required, while a changed field type points into /properties.

03

Export only a fresh run

Editing either Schema or changing direction invalidates the report. Run again with Ctrl/Cmd+Enter before copying or downloading.

Structural signals in the report

Required and type transitions

Compare JSON schemas by the accepted value set: adding required names or narrowing a type flags potential breaking schema changes in the selected direction.

Enum and numeric limits

The JSON Schema compatibility checker tracks enum membership and common minimum, maximum, length and count bounds. Reordering enum values alone is ignored.

Report for version review

A schema version comparison shows old and new values, a JSON Pointer and a risk level. Copy readable text or download the full JSON report.

Where the risk scan stops

No complete proof
JSON Schema diff labels a rule as clear only within the covered comparison. It cannot prove that every instance or downstream application remains compatible.
References stay unresolved
The scanner lists $ref and combined conditions for review. It never fetches external URLs or expands local reference cycles.
Properties are not automatically required
A property name added under properties is a review item, because additionalProperties and other rules determine whether old data can still pass.

JSON Schema diff FAQ

How is this different from JSON Diff?

It compares Schema keywords and risk direction; JSON data diff compares instance values and has no contract semantics.

Can it detect breaking changes?

It flags supported narrowing and widening patterns, then marks $ref, compositions and unfamiliar rules for review; it is not a proof.

Does it resolve $ref?

No. The path is listed for manual review; no local or remote reference is resolved or fetched.

Can it compare required fields?

Yes. The report lists added and removed required names at their JSON Pointer paths for both data directions.

Can it compare enum values?

Yes. Set membership is compared without treating enum order as a change.

Have a schema case we should examine?

Run JSON Schema diff now

Use JSON Schema diff to inspect the next contract revision while both versions are in hand. Choose the consumer direction and keep the downloadable report with the release review.