JSON Schema Validator

Validates JSON data against a JSON Schema and reports path-based errors such as $.user.email. Supports a documented subset of the spec, not the full draft, see the FAQ below.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.
JSON data
0 lines · 0 charsJSON
JSON Schema
type, required, properties, items, enum, min/max
0 lines · 0 charsSchema
Validation report
Paste data and a schema, then click Validate.

About This Tool

JSON Schema Validator checks a JSON document against a JSON Schema and reports every failure as a path-based message ($.user.email: ...), so you know exactly which field is wrong rather than just that something is. It covers a documented subset of the keyword spec, not the full draft.

If you only need to confirm text is syntactically valid JSON (no schema involved) use JSON Validator instead; it's lighter and doesn't require writing a schema.

Key Features

  • Path-based error report: every failure lists the exact JSONPath location and reason, one per line.
  • Built-in draft meta-schemas: load Draft 2020-12, 2019-09, v7, v6, v4, or v3 directly from the official schema URLs.
  • SchemaStore.org presets: fetch real-world schemas for package.json, tsconfig.json, .eslintrc, Docker Compose, GitHub Actions/Workflow, and more.
  • Separate data & schema panes: edit both independently, each with its own upload, sample, and line/char status.
  • Copy or download the report: export the validation result as plain text.
  • Keyboard-driven: Cmd/Ctrl+Enter to validate, Cmd/Ctrl+Shift+C to copy the report.

Example

Schema:

{
  "type": "object",
  "required": ["email"],
  "properties": {
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  }
}

Data with an invalid email produces:

$.email: does not match format "email" (basic check only).

FAQ

Which JSON Schema keywords are supported?
type (including type arrays), required, properties, items, additionalProperties, enum, const, pattern, format, minimum, maximum, minLength, maxLength, minItems, maxItems.
What is not supported?
allOf/anyOf/oneOf, $ref, if/then/else, patternProperties, and tuple-style items arrays are not enforced. This is not full draft support.
How strict is format?
email, uri, uuid, date, and date-time are checked with a basic regular expression, not the full formal grammar for each format.