Skip to content

JSON Schema Validator

Validate JSON data against a JSON Schema in your browser using a documented subset of Draft 2020-12. See valid or invalid status, each error’s instance path, schema path and message, plus warnings for unsupported keywords.

Developer Runs client-side Free to use
Jump to the tool
Share: X WhatsApp
Loading JSON Schema Validator…

About the JSON Schema Validator

JSON Schema Validator checks a JSON document against a JSON Schema without leaving your browser. It implements a clearly documented subset of Draft 2020-12: type, const and enum; object keywords such as properties, required, additionalProperties, patternProperties and min/maxProperties; array keywords such as items, prefixItems, min/maxItems, uniqueItems and contains; numeric and string limits including multipleOf and pattern; the allOf, anyOf, oneOf and not combinators; and local $defs with local $ref.

Each error shows the instance location as a JSON Pointer, the schema path that failed and a plain-language message. Keywords outside the subset — for example if/then/else, unevaluatedProperties or $dynamicRef — are listed as warnings and ignored, so a “valid” result means only that the supported keywords passed. format is treated as an annotation and reported as a warning. Remote references are never fetched, and recursion, evaluation steps and error counts are limited so circular or very deep schemas stop safely. It is not a certified or complete implementation and does not validate OpenAPI or other API specifications.

How to use

  1. Paste the JSON data into the instance box.
  2. Paste the JSON Schema into the schema box.
  3. Optionally add a label for the report.
  4. Press Validate.
  5. Review errors and warnings, then copy or download the report.

Key features

  • Documented subset of Draft 2020-12 keywords.
  • Local $defs and $ref with cycle and depth protection.
  • Instance JSON Pointer, schema path and message for each error.
  • Warnings for unsupported keywords and format checks.
  • JSON syntax errors with line and column.
  • Remote references blocked, never fetched.
  • Copy Report and Download Report.

Best practices

  • Read the warnings: an unsupported keyword means part of the schema was not checked.
  • Use $defs and #/$defs/... references for reusable parts.
  • Add additionalProperties: false when unexpected fields should fail.
  • Test both valid and invalid sample data.
  • Confirm results with the validator your application uses before relying on them.

Benefits

  • Fast feedback while writing or debugging schemas.
  • Clear paths make errors easy to locate.
  • Safe for sensitive data: nothing leaves your browser.
  • No installation or account needed.

Frequently asked questions

Which JSON Schema version is supported?

A documented subset of Draft 2020-12. The supported keywords are listed on the page; anything else is reported as an unsupported keyword and ignored. It is not a complete or officially certified implementation.

Does it fetch remote $ref schemas?

No. Only local references starting with #, such as #/$defs/address, are followed. A remote or relative reference is reported as an error and is never fetched.

How are recursive schemas handled?

Recursive references work as long as each step moves into the data, such as a tree of child nodes. A reference that loops without moving into the data, or evaluation deeper than 64 levels or longer than 200,000 steps, stops with a clear message.

Why is format only a warning?

In Draft 2020-12, format is an annotation by default. The tool checks a few common formats (email, date, date-time, time, uri, uuid, ipv4, ipv6) and warns when a value does not look right, without marking the data invalid.

What do the instance and schema paths mean?

The instance path is a JSON Pointer to the failing value, such as /items/2/price. The schema path shows which keyword failed, such as #/properties/items/items/minimum.

Can it validate OpenAPI or other API specifications?

No. It validates a JSON instance against a JSON Schema only. OpenAPI documents use extra rules and keywords that are not checked here.

What are the limits?

Each input up to 2 MB with up to 100 levels of nesting, 64 levels of schema evaluation, 200,000 evaluation steps, and the first 500 errors in the report.

Is anything I paste uploaded or saved?

No. Everything is processed in your browser on your device. Nothing is uploaded, no request is sent, and inputs and results are not saved in browser storage. Reset clears them from the page.