JSON Schema
JSON Data
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
- Paste your JSON Schema into the left panel (or pick a ready-made example from the dropdown).
- Paste the JSON data you want to check into the right panel.
- Click Validate — results update automatically as you type.
- 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.
$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.