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.
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.
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.
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.
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.
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.
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.
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.
No. It validates a JSON instance against a JSON Schema only. OpenAPI documents use extra rules and keywords that are not checked here.
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.
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.