JSON Schema Validator

Check data against a schema and see exactly which rule each value broke.

Schema
Document
Verdict

About this tool

Validate a JSON document against a JSON Schema, in your browser. Every failure names the instance path (/users/1/name), the keyword that failed (type, required, minimum), and a plain-English sentence about what was expected.

The validator covers the keywords real-world schemas actually use: type, required, properties, items, enum, const, bounds (min/max for lengths, values, items), pattern, additionalProperties, and the combinators allOf / anyOf / oneOf / not. Format assertions (email, date-time) are not evaluated — they are optional in the specification, and the page says so rather than pretending.

Both panes are live: paste a document and a schema and the verdict appears as you edit either side.

How to use it

  1. Paste the schema in the top pane — generate one from a sample with the schema generator if you do not have one.
  2. Paste the document in the bottom pane.
  3. Read the verdict. A valid document says so; every failure lists where, which rule, and what was expected.

Worked example

Against the sample schema, a document with a one-character name and a negative age fails twice: the name is shorter than minLength 2, and the age is below the minimum 0 — each finding with its path, keyword and expected value.

A failure, fully named

Frequently asked questions

Which drafts does it support?
The core validation keywords are the same across 2020-12, draft-07 and the drafts between: your schema validates here if it uses type, required, properties, items, enum, const, bounds, pattern, additionalProperties or the combinators. Keywords outside that core are ignored, and a schema using $ref networks to pull remote documents is out of scope for a tool that never touches the network.
Does it check formats like email or uuid?
No. The specification marks format as annotation-only by default — validators disagree on it, and a half-checker is worse than an honest no. Your format keywords are preserved; add a dedicated format check where your pipeline needs one.
What is an instance path?
The location of the failure inside your document, written as a JSON Pointer: /users/1/name is the name of the second user. It is the fastest way to jump from a failure to the exact value that caused it.
Can it validate YAML or CSV against a schema?
Convert first — YAML to JSON or CSV to JSON — then paste the JSON here. The schema describes JSON; the converters get your data there without changing it.
Is my data uploaded anywhere?
No. Schema, document and verdict all stay in the tab. That matters doubly here: schemas and the documents that must satisfy them are usually internal.