JSON Schema Validator Online – Validate JSON Data

Validate JSON data against a reviewable schema subset and locate contract failures without uploading either document.

Runs locally
Ready to validate

Paste the JSON value that must satisfy the schema.

136 chars

Supports documented Draft 7 and Draft 2020-12 subsets, local $ref, and common assertions.

771 chars

Validation result

Validation results

Run validation to compare the JSON data with the supported Draft 7 or Draft 2020-12 schema keywords.

JSON Schema validation guide

How to validate JSON data against a schema

Paste valid JSON data and a JSON Schema into the validator above to check whether the value satisfies the supported contract. VetaTool reports each failed type, required property, array item, or anyOf branch with a JSON Pointer path while keeping both documents in your browser. This tool is free to use. No account or payment is required.

Last updated

What you can do here

  • JSON data and schema syntax checks
  • Draft 7 definitions and Draft 2020-12 $defs with local $ref
  • Draft 2020-12 prefixItems and dependentRequired
  • Draft 2020-12 unevaluatedProperties
  • Common string and numeric assertions
  • date-time, date, time, email, URI, and UUID format validation
  • Array and object constraint validation
  • allOf, anyOf, oneOf, and not
  • JSON Pointer issue locations
  • Unsupported keyword rejection
  • Browser-local processing

How to use

  1. Paste the JSON value that needs contract validation.
  2. Paste a schema using the currently supported keyword subset.
  3. Select Validate JSON and review each JSON Pointer path.
  4. Correct the data or schema, then rerun validation until it passes.

Schema validation checks data rules, not JSON grammar alone

A document can be syntactically valid JSON while still containing the wrong value type, omitting a required property, or placing an unsupported value inside an array. Schema validation runs after parsing and checks those structural contract rules.

Syntax errors in the data and syntax or definition errors in the schema are reported separately so they are not confused with data validation failures.

Supported validation keywords in the first release

The validator supports VetaTool's generated subset plus documented Draft 7 and Draft 2020-12 profiles. Draft 7 includes local definitions and $ref, while Draft 2020-12 adds $defs, prefixItems, dependentRequired, and unevaluatedProperties alongside the shared assertion keywords and supported string formats.

  • Type checks cover object, array, string, boolean, null, integer, and number.
  • Required checks report the containing object path and missing property name.
  • Properties and array items are validated recursively with escaped JSON Pointer paths.
  • Local JSON Pointer references resolve from definitions or $defs in the same schema document; external references are rejected rather than fetched.
  • String format checks cover date-time, date, time, email, absolute URI, and UUID values with JSON Pointer issue locations.

Review the supported subset before treating a result as complete

This release implements practical Draft 7 and Draft 2020-12 subsets but does not claim every keyword. Unsupported formats and features such as patternProperties, contains, conditional schemas, dynamic references, and remote references cause a clear error instead of a misleading pass result.

Validation runs locally in the browser, so the data and schema are not sent to a validation service.

JSON Schema validation error example

The data uses a string for age and omits the required name property, so the validator reports two separate contract failures.

JSON data and supported schema

Data:
{
  "age": "42"
}

Schema:
{
  "type": "object",
  "properties": {
    "age": { "type": "integer" }
  },
  "required": ["name", "age"]
}

Validation issues

/age — Expected integer but received string.
/ — Required property "name" is missing.

Common questions

Frequently asked questions

Does this validate every JSON Schema draft keyword?

No. It validates documented Draft 7 and Draft 2020-12 subsets, including local definitions or $defs and common assertion keywords. Unsupported keywords and unsupported dialect declarations are rejected instead of ignored.

What is the difference between JSON Validator and JSON Schema Validator?

JSON Validator checks whether a document follows JSON syntax. JSON Schema Validator assumes the data can be parsed and then checks structural rules such as types, required properties, and array item schemas.

Why does an integer satisfy a number schema?

JSON Schema treats every integer as a number, while a non-integer number does not satisfy an integer schema.

Which JSON Schema string formats are validated?

The current supported set is date-time, date, time, email, uri, and uuid. Unknown format names are rejected rather than silently treated as annotations.

What do the validation paths mean?

Each path is a JSON Pointer. For example, /profile/name identifies the name property inside profile, while /items/2 identifies the third array element.

Are the JSON data and schema uploaded?

No. Parsing and validation run locally in your browser.

Debugging a specific JSON issue? Browse JSON troubleshooting.