JSON Schema Validator
Validate any JSON document against a JSON Schema (Draft 7) and see exactly which paths fail and why.
Quick answer: Validate any JSON document against a JSON Schema (Draft 7) and see exactly which paths fail and why.
Last updated
Frequently asked questions
- Which JSON Schema draft is supported?
- Draft 7, with broad compatibility for the Draft 2020-12 features that didn't change semantics. Most schemas you'll find in the wild work without any conversion.
- Which keywords are supported?
- <code>type</code>, <code>enum</code>, <code>const</code>, <code>required</code>, <code>properties</code>, <code>additionalProperties</code>, <code>patternProperties</code>, <code>items</code> (single + tuple), <code>min/maxItems</code>, <code>uniqueItems</code>, <code>min/maxLength</code>, <code>pattern</code>, common <code>format</code> values, <code>minimum/maximum</code> + exclusive variants, <code>multipleOf</code>, and the <code>allOf</code>/<code>anyOf</code>/<code>oneOf</code>/<code>not</code> combinators.
- Are <code>$ref</code> references supported?
- Not in this tool — we don't follow <code>$ref</code> indirection. Inline the referenced subschema, or pre-process with a tool like <code>json-schema-ref-parser</code> before pasting.
- Which formats are recognised?
- <code>email</code>, <code>uri</code>, <code>uuid</code>, <code>date-time</code>, <code>date</code>, <code>time</code>, <code>ipv4</code> and <code>hostname</code>. Other formats are silently accepted (per Draft 7's optional-format rule).
- Why am I getting 'value not in enum' for what looks like the right value?
- Enum comparison is exact — a string vs a number won't match even if the digits look identical. Check the JSON types on both sides; <code>1</code> and <code>"1"</code> are different values.
- How does it handle errors deep in nested objects?
- Each error includes the dotted path from the root, so <code>$.users[3].profile.email</code> tells you exactly which value to fix. Errors are listed in document order.
- Will it find every error or stop at the first?
- Every error — we don't short-circuit, so a single run gives you the full list to fix in one pass.
- Is my JSON uploaded?
- No — both schema and document stay in your browser. Validation is a pure JavaScript walk over the two trees.
- How big a document can I validate?
- Documents up to several megabytes validate in well under a second. The bottleneck is rendering thousands of errors, not the validation itself.
- Why does my schema work in Ajv but not here?
- Most likely <code>$ref</code>, <code>$dynamicRef</code> or a Draft 2020-12-only keyword like <code>prefixItems</code>. Inline references and convert to Draft-7 equivalents before pasting.