Validator

JSON Schema validator

Check a payload against a schema and get every failure with its instance path and the keyword that rejected it. Pairs with the schema generator — generate one, then test it against real payloads.

JSON data
Waiting for input.
JSON Schema
Validation result

Covers the keywords you actually meet day to day (types, required, enum, const, numeric and string bounds, items, uniqueItems, anyOf/oneOf/allOf/not, $ref to local pointers). Exotic draft corners like dynamic refs and content encoding are not implemented. ⌘/Ctrl + Enter runs it again. Everything happens in this browser — nothing is uploaded.

About the JSON Schema validator

Paste a payload and a schema and get a precise list of what fails, each error naming the exact path inside the document and the keyword that rejected it — the two things you need to fix it. It pairs with the schema generator: infer a schema from one payload, then test it against the awkward ones.

How to use it

  1. Paste the JSON document into the first pane.
  2. Paste the JSON Schema into the second.
  3. Read the errors, each with its instance path. Switch off format checking if you only want structural validation.

Questions

Which keywords are supported?

Types, required, enum, const, minimum/maximum and their exclusive forms, multipleOf, minLength/maxLength/pattern, format, items and prefixItems, minItems/maxItems/uniqueItems/contains, properties, patternProperties, additionalProperties, minProperties/maxProperties, dependentRequired, allOf/anyOf/oneOf/not, and $ref to local pointers.

Is it a complete draft implementation?

No, and it says so. Dynamic references, content encoding and the more exotic corners of the specification are not implemented. For everyday API schemas it will tell you what is wrong.

Why is a valid-looking email rejected?

Format checking is on by default. The email, uri, uuid, date-time, date, time, ipv4 and hostname formats are checked against patterns; switch off "Enforce formats" to treat them as annotations, which is what the specification does by default.