JSON Schema validator
Paste a JSON Schema, then a JSON or YAML value in the box below it: each error shows with its path and is pointed out in the value, as you type. The schema itself is checked too.
Every error, where it is
Errors are listed in plain words, such as "/port: 70000 is more than the maximum, 65535" or ""env" is missing", and underlined in the value; the arrows and a click on an error go to it. Several values, one per line as in JSON Lines, are each tested.
Drafts and keywords
Draft-07, 2019-09 and 2020-12, as the schema's "$schema" says (2020-12 without one). Types, enums and constants; numbers and string lengths; patterns; formats such as email, date-time, UUID, URI and IP addresses; required, additional and pattern properties; items, prefixItems and contains; allOf, anyOf, oneOf, not and if/then/else; and references inside the schema ($ref to $defs, $id and $anchor). Long integers and decimals are compared exactly.
Not checked, and said so when a schema uses them: unevaluatedProperties and unevaluatedItems, and references to other files (nothing is fetched).
The schema checked as well
A misspelled keyword ("requird": did you mean "required"?), a keyword from another draft, a value of the wrong kind ("minimum": "5"), a regular expression that doesn't compile and a $ref that leads nowhere are pointed out in the schema.
Private: nothing is uploaded
Formatting, checking and comparing all happen in your browser. Your documents are saved in the browser's own storage on this computer, not on a server, so they never leave your device.
With your permission, we count anonymous visits (which pages and tools are used), never what you type. See Privacy.
Questions
How do I validate JSON against a schema?
Paste the schema in the editor, then the JSON in the box below it. On this page the box is already there; in the Formatter, pick JSON Schema as the language (a schema with "$schema" shows the box by itself).
Can I test a Protocol Buffers message (Proto Text)?
Yes: paste it as the value (choose Proto Text next to "Test a value" when it is only name: value lines). Like protobuf's own JSON reader, a field matches the schema by its JSON name too (user_id for userId), and a repeated field written once counts as a list of one.
Can I validate YAML, such as a Kubernetes manifest?
Yes: the value, and the schema too, can be YAML. Errors point at the place in the YAML.
Is the value I test kept?
Yes, with the document, in your browser, so it is there when you come back. Nothing is uploaded.
Is my data uploaded anywhere?
Your documents aren't: everything runs in your browser, and they are saved on your computer, in the browser's storage for this site. With your permission we count anonymous visits, never their content.
More tools
- Formatter & Converter for JSON, YAML, XML, SQL
- JSON to YAML Converter
- YAML to JSON Converter
- JSON Schema Generator from JSON, YAML or CSV
- JSON Formatter, Validator & Minifier
- JSON Diff – Compare Two JSON Files Online
- JSON5 & JSON with Comments Formatter
- YAML Formatter, Validator & Minifier
- YAML Diff – Compare Two YAML Files Online
- Free Online Diagram Maker & Editor
- Crypto Tools: Passwords, Keys, Hashes & JWTs
- Timestamp, Cron, Regex & UUID Utilities