JSON Schema Validator

Paste a JSON Schema and a JSON document, then see every validation error with the exact path that failed.

About JSON Schema

JSON Schema is a vocabulary for describing the shape of a JSON document. You use it to declare which fields are required, what types they hold, what ranges or patterns they must match, and how nested structures combine. Schemas are useful for validating API payloads, configuration files, form input, and AI tool-call arguments.

What this tool validates

The validator runs your data against your schema using Ajv, the most widely used JSON Schema implementation. It supports the common keywords from draft-07:

  • Types and unions (type, enum, const)
  • Numbers (minimum, maximum, multipleOf, exclusive variants)
  • Strings (minLength, maxLength, pattern, common formats like email, uri, uuid, date-time)
  • Arrays (items, minItems, maxItems, uniqueItems)
  • Objects (properties, required, additionalProperties, patternProperties)
  • Composition (allOf, anyOf, oneOf, not, if/then/else)
  • References ($ref to local #/definitions or #/$defs)

How it works

As you type, both inputs are parsed as JSON. The schema is compiled into a fast validator function and the data is run through it. Every failure is reported with a JSON Pointer path so you can find the offending field instantly. allErrors mode is enabled so you see the full list, not just the first failure.

Privacy

Validation runs entirely on your device. The validator library is loaded once from a public CDN, then your schema and data are compiled and checked locally. Nothing you paste is uploaded, logged, or sent to a server.

Frequently asked questions

Which JSON Schema draft is supported?
Draft-07 by default, which covers the vast majority of schemas in the wild. Drafts 04 and 06 also validate for most common keywords. Newer drafts (2019-09, 2020-12) may need minor edits (for example, replacing definitions with $defs).
Why am I seeing many errors when I expected one?
Ajv runs in allErrors mode, so it reports every keyword that fails instead of stopping at the first one. This is usually what you want when debugging a schema. The first error in the list is normally the one to fix first.
Does it support remote $ref URLs?
No. Only local references inside the same schema (#/definitions/X or #/$defs/X) are resolved. Fetching remote schemas would require a network request, which would break the client-side privacy guarantee.
What if my schema itself is invalid?
The tool catches compilation errors separately and shows them with a clear "Schema error" label, so you can tell whether the problem is in the schema or in the data.