All tools

JSON Schema validator

Check JSON against a JSON Schema, with every problem and its place. Free, with no account or uploads.

Paste JSON and a schema to check it

Each problem is listed with where it is. Nothing the schema points to is fetched from the network.

Paste below or drop a text file here · up to 10 MB

Draft-07, 2019-09 and 2020-12 (default). Email, URI and date-time format checks. Local $ref/$defs work; remote references are never fetched. No coercion, defaults or removed values. Up to 100,000 schema characters; operations stop after 20 seconds.

Start with a document or try the example.Ctrl/Cmd + F to find · Ctrl/Cmd + Z to undo · Escape, then Tab to leave the editor

Source, comparison and schema text stay in this tab and clear on refresh. Files are not uploaded. The editor never runs pasted JavaScript. Cancel stops the worker without changing your source.

How it works and help
One workspace. All on your device.
5 million characters · 100 levels · 100,000 values

A little help along the way

Say what you want to do: make it readable (Edit, to format or repair), look through it (Explore), turn it into CSV or YAML (Convert) or compare two (Compare). The page says at once whether your JSON is valid. Under More options every workflow has its tab, with Query to select data and Schema to check a contract. Results stay separate until you choose Use result as source.

Questions people ask

Which JSON Schema versions does it support?
Draft-07, 2019-09 and 2020-12, which is used when a schema does not name one. Email, URI and date-time formats are checked too.
Does it follow a $ref to another site?
No. References inside the schema, to $defs or definitions, work; references to other addresses are never fetched, so a schema that needs one has to include it.
I have no schema. Can it make one?
Infer schema from source writes a 2020-12 schema from your JSON. It marks every key it saw as required and allows no others, so loosen it before using it on other data.

This page is the JSON formatter, opened for this one job; every other tool it has is one press away. Each of its settings is explained on the JSON formatter's own page.