JSON Schema validator

Check a payload against a schema — every failure with its instance path.

About & FAQ ↓
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.

Reference
Schema validator

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.

01

Errors with paths

Every failure names the instance path and the keyword that rejected it — the two things you need.

02

The keywords you meet

Types, required, enum, const, bounds, items, uniqueItems, combinators, patternProperties and local $ref.

03

All errors or the first

See everything that is wrong at once, or stop at the first failure while iterating.

04

Format checking, optional

Enforce email, uri, uuid and date formats, or treat them as annotations like the spec does.

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.