The current version is 2019-09!

Draft numbering

The latest Internet-Drafts at the IETF are the draft-handrews-json-schema*-02 documents, which correspond to the 2019-09 meta-schemas. These were published on 2019-09-16.

For a full explanation of both the IETF and meta-schema numbering schemes, how they correspond, and why we are now using the date-based 2019-09 rather than draft-08, see the Specification Links page.

Specification documents

See also the release notes / change log.

The specification is split into three parts, Core, Validation, and Hyper-Schema, along with a related specification, Relative JSON Pointers:

JSON Schema Core defines the basic foundation of JSON Schema
JSON Schema Validation defines the validation keywords of JSON Schema
JSON Hyper-Schema defines the hyper-media keywords of JSON Schema
Relative JSON Pointers extends the JSON Pointer syntax for relative pointers

They are also available on the IETF main site:


The meta-schemas are schemas against which other schemas can be validated. They are self-descriptive: the JSON Schema meta-schema validates itself, while the JSON Hyper-Schema meta-schema both validates itself and defines its own “self” link.

The latest meta-schema is 2019-09. 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-schemas

These serve the same function as the analogous meta-schemas from past drafts, although note that the core and validation schema is no longer self-contained.

Core/Validation meta-schema Used for schemas written for pure validation.
Hyper meta-schema Used for schemas written for validation and hyper-linking.

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.