JSON Schema Validator
Validate a JSON document against a JSON Schema (Draft-07) and get every rule violation listed by its JSON-pointer path — missing required keys, wrong types, out-of-range numbers, failed patterns, enums, $ref definitions and oneOf/anyOf/allOf combinators. Runs entirely in your browser.
Input
Output
| Path | Rule | Message |
|---|---|---|
| No data yet | ||
Guides
Check whether a JSON document conforms to a JSON Schema, right in your browser. Paste your data on the left and a schema on the right, and the validator lists every rule it breaks — each with a JSON-pointer path like /user/age so you know exactly where the problem is. No sign-up, no upload, and nothing leaves your machine.
It implements a practical subset of JSON Schema Draft-07: type (including integer and arrays of allowed types), required, properties, additionalProperties, items (single schema or tuple), enum, minimum/maximum, minLength/maxLength, pattern, and minItems/maxItems. These cover the vast majority of real-world schemas used to describe API payloads, config files, and form data.
How to use it
- Paste the JSON you want to check into the JSON data box.
- Paste the schema it should follow into the JSON Schema box.
- Read the result. The summary line says Valid or Invalid — N errors found, and the table below breaks down each violation by path, the rule that failed, and a plain-English message.
Validation runs automatically as you type, so you can tweak either side and watch the errors update live.
What does the path column mean?
Paths use JSON Pointer notation. /name is the top-level name property; /address/zip is zip inside address; /tags/2 is the third element of the tags array. A path of (root) means the whole document is the wrong shape (for example, you passed an array where the schema expects an object).
Why does it report several errors at once?
Unlike a validator that stops at the first failure, this tool collects all violations in one pass. If a required key is missing and another value is out of range, you'll see both, so you can fix everything in a single edit.
Does it support format (email, date, URI)?
No — and that's deliberate. In Draft-07, format is an annotation that validators may ignore by default, so treating "format": "email" as a hard rule would give misleading results. Use pattern with a regular expression when you need to enforce a string's shape explicitly.
Which drafts are supported?
The supported keywords behave identically across Draft-07, 2019-09, and 2020-12, so schemas written for any of those drafts validate the same way here. Newer keywords ($ref, if/then/else, oneOf, prefixItems, and similar) are not evaluated.
Is my data private?
Yes. The validator is written in pure JavaScript and runs entirely on your device — in the browser tab, or in the API/Node runtime if you call it programmatically. Your JSON and your schema are never transmitted to a server, logged, or stored anywhere. You can even use it offline once the page has loaded.