JSON Schema Validator

Check common schema rules and trace failures to exact JSON Pointer paths.

JSON Schema

JSON Data

Runs entirely in your browser. No data sent to any server.

Need to check data now?

Use the panels above for quick feedback on common rules, exact paths, and suggested next actions.

Need to design or migrate a schema?

Read the JSON Schema guide for dialect changes, references, testing strategy, and complete examples.

Paste a JSON Schema and a JSON document to check the data against common schema rules — types, required properties, string patterns, numeric ranges, enum, const, array constraints, and additionalProperties. Validation runs entirely in your browser, so neither your schema nor your data is ever sent to a server.

The JSON Schema project defines a schema as a JSON document whose keywords describe constraints and annotations. Its official guide recommends declaring a dialect with $schema; see Declaring a JSON Schema.

What is JSON Schema?

JSON Schema is a vocabulary for describing the shape of a JSON document — which fields are required, what type each value must be, and the rules each value has to satisfy. Instead of writing manual checks in code, you declare the contract once and let a validator enforce it. It is widely used to validate API request and response bodies, configuration files, and form input before that data reaches your application logic.

How to validate JSON against a schema

  1. Paste your JSON Schema into the left panel (or pick a ready-made example from the dropdown).
  2. Paste the JSON data you want to check into the right panel.
  3. Click Validate — results update automatically as you type.
  4. Review each error, which shows the JSON path of the offending value and what rule it violated.

For example, this schema requires a name string and an integer age between 0 and 150:

{
  "type": "object",
  "required": ["name", "age"],
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "age":  { "type": "integer", "minimum": 0, "maximum": 150 }
  }
}

Read error paths as a repair map

Each failure names the instance path (the value in your JSON), the schema path (the keyword that failed), and a concrete next step. Paths use JSON Pointer notation, consistent with the JSON Schema output model's instanceLocation and schema-location concepts.

Result field Example What to do
Instance path /customers/1/email Inspect the second customer's email value.
Schema path /properties/customers/items/properties/email/pattern Check whether the value or the pattern expresses the wrong rule.
Fix Change the string or revise the pattern Apply the smallest correction, then rerun the same failing fixture.

JSON Schema drafts at a glance

Drafts are dialects, not feature flags that every validator handles automatically. Keep $schema explicit and confirm your runtime library supports that URI.

Dialect Migration checkpoint Primary source
Draft-07 Tuple validation uses the array form of items; reusable schemas commonly live under definitions. Draft-07 specification
2019-09 Adds vocabularies, $defs, recursive references, and unevaluated keywords. Draft 2019-09 specification
2020-12 Tuple positions move to prefixItems; items describes remaining items, and dynamic references replace recursive references. Draft 2020-12 specification

Interactive JSON Schema glossary

Search by keyword or meaning, then filter terms by the drafts where their documented form applies.

12 terms shown
$schema

Declares the JSON Schema dialect used to interpret the schema.

type

Constrains an instance to one or more primitive JSON data types.

properties

Maps object property names to the subschemas that evaluate their values.

required

Lists object property names that must be present.

items

Evaluates array items; its tuple role changed in Draft 2020-12.

prefixItems

Assigns schemas to array positions in Draft 2020-12 tuple validation.

$defs

Stores reusable subschemas that can be reached with a reference.

$ref

Applies the schema identified by a URI reference.

unevaluatedProperties

Constrains object properties not evaluated by adjacent applicators.

additionalProperties

Constrains object properties not matched by properties or patternProperties.

format

Describes semantic formats; assertion behavior depends on the dialect and validator configuration.

enum

Restricts a value to an exact set of JSON values.

Definitions are summarized from the official JSON Schema keyword index.

When to use schema validation

  • API contracts — confirm that a response matches what your client expects before you write parsing code against it.
  • Configuration safety — catch a misspelled key or wrong type in a config file long before it crashes a deploy.
  • Data pipelines — reject malformed records at the boundary instead of letting bad data spread downstream.
  • Documentation — a schema doubles as machine-readable documentation of your data structures.

Frequently asked questions

What is the difference between JSON syntax validation and JSON Schema validation?

Syntax validation checks whether text is valid JSON. Schema validation checks whether parsed JSON follows declared constraints such as types, required properties, allowed values, and ranges.

Does this checker implement every JSON Schema draft?

No. It evaluates the documented subset of common constraints plus the listed array forms from Draft-07 and 2020-12. A $schema declaration is reported but does not switch in a complete dialect implementation. Keywords the tool does not evaluate are listed with their schema paths.

Which JSON Schema keywords are checked?

The checker covers type, required, properties, enum, const, string and numeric bounds, pattern, object and array size limits, uniqueItems, items, prefixItems, and additionalProperties.

Is my schema or data sent to a server?

No. The checks run in your browser. Site analytics may receive normal interaction metadata, but the schema and JSON text are not included in those events.

How do I act on an error path?

Use the instance path to locate the failing value in your JSON and the schema path to locate the rule that failed. Both paths use JSON Pointer escaping, so a slash in a property name appears as ~1 and a tilde appears as ~0.

Sources and review scope

Last reviewed 17 July 2026. Draft comparisons and terminology were checked against the official specification index, the 2020-12 release page, and the project's guidance on interpreting validation output. The compatibility note describes this page's implementation, not every external validator.