Specification

The current version is 2020-12! The previous version was 2019-09.

Specification documents

See also the release notes / change log (Work in progress).

The specification is split into two parts, Core and Validation. We also publish the Relative JSON Pointers spec although it's not currently used by Core or Validation in any significant way.

JSON Schema Coredefines the basic foundation of JSON Schema
JSON Schema Validationdefines the validation keywords of JSON Schema
Relative JSON Pointersextends the JSON Pointer syntax for relative pointers

They are also available on the IETF main site:

Meta-schemas

The meta-schemas are schemas against which other schemas can be validated.It is self-descriptive: the JSON Schema meta-schema validates itself.

The latest meta-schema is 2020-12. For an explanation of the change to date-based identifiers, see the Specification Links page.

If you are accessing these JSON document links from a web browser, you will need to save the file then open it as a JSON document. This is due to limitations with GitHub Pages.

General-purpose meta-schema

Please note, additional vocabulary specific schema files are needed to fully construct and use the Core/Validation Dialect meta-schema.

Core/Validation Dialect meta-schemaUsed for schemas written for pure validation.
Hyper-Schema Dialect meta-schemaUsed for schemas written for validation (2020-12) and hyper-linking (2019-09).
Recommended Output meta-schemaRecommended output structure of the application process.

Single-vocabulary meta-schemas

These are relevant primarily to people who want to write their own meta-schemas that build on specific parts of the existing specification.

Output schemas and examples

Migrating from older drafts

The release notes discuss the changes impacting users and implementers:

Older drafts

Please see Specification Links for older drafts and the latest unreleased version of the specification.