Specification

Migrating from older drafts

Introduction

As your schemas evolve over time, so does JSON Schema specification. This guide provides useful information help you smoothly upgrade your schemas across different specification versions

Learn how to use our migration guides and tooling (AlterSchema) to bring your work with you.

Alterschema is a tool designed to facilitate the automatic migration and transformation of JSON schemas as specifications evolve. It helps simplify schema maintenance, supports backward compatibility, and streamlines schema adjustment across versions. Read more about using AlterSchema.

Keywords Overview

This table provides an overview of keyword changes and removals in JSON Schema specifications from Draft 01 to the latest draft.

All KeywordsSpecificationDraft introductionRemovedChanged
$anchorCore2019-09NoPartially replaced $id
$commentCore07No
$idCore06NoReplaced id
$defsCore2019-09NoReplaced definitions
$dynamicAnchorCore2020-12NoReplaced $recursiveAnchor
$dynamicRefCore2020-12NoReplaced $recursiveRef
$recursiveAnchorCore2019-092020-12Replaced by $dynamicAnchor
$recursiveRefCore2019-092020-12Replaced by $dynamicRef
$refCore2019-09NoReplaced $ref (legacy)
$schemaCore03NoNo
$vocabularyCore2019-09NoNo
additionalItemsCore032020-12Replaced by items
additionalPropertiesCore01NoNo
allOfCore04NoNo
anyOfCore04NoNo
constValidation06NoNo
containsCore06NoNo
contentEncodingValidation07NoReplaced media.binaryEncoding
contentMediaTypeValidation07NoReplaced media.type
contentSchemaValidation2019-09NoNo
definitionsValidation042019-09Replaced by$defs
defaultValidation01NoNo
dependenciesValidation032019-09Replaced requires and replaced by dependentSchemas and dependentRequired
dependentRequiredValidation2019-09NoPartially replaced dependencies
dependentSchemasCore2019-09NoPartially replaced dependencies
deprecatedValidation2019-09NoNo
descriptionValidation01NoNo
disallowCore0104Replaced by not
divisibleByValidation02YesReplaced by multipleOf
elseCore07NoNo
enumValidation01NoNo
examplesValidation06NoNo
exclusiveMaximumValidation06NoReplaced exclusiveMaximum (legacy)
exclusiveMinimumValidation06NoReplaced exclusiveMinimum (legacy)
extendsCore0104Replaced by allOf
formatValidation01No-
idCore0306Replaced by $id
ifCore07NoNo
itemsCore2020-12NoReplaced additionalItems and items (legacy)
maxContainsValidation2019-09NoNo
maxDecimalsValidation01YesReplaced by divisibleBy
maxPropertiesValidation04NoNo
maximumCanEqualValidation0103Replaced by exclusiveMaximum
mediaHyper-Schema0407Replaced contentEncoding (legacy) and replaced by contentEncoding and contentMediaType
minimumCanEqualValidation0103Replaced by exclusiveMinimum
minContainsValidation2019-09NoNo
minPropertiesValidation04NoNo
multipleOfValidation04NoReplaced divisibleBy
notCore04NoNo
oneOfCore04NoNo
optionalCore0203Replaced by required
patternCore01NoNo
patternPropertiesCore03NoNo
prefixItemsCore2020-12NoReplaced items
propertiesCore01NoNo
propertyNamesCore06NoNo
readOnlyValidation01NoNo
requiredValidation03NoNo
requiresCore0103Replaced by dependencies
titleValidation01NoNo
thenCore07NoNo
typeValidation04NoReplaced type (legacy)
unevaluatedItemsCore2019-09NoNo
unevaluatedPropertiesCore2019-09NoNo
uniqueItemsValidation02NoNo
writeOnlyValidation07NoNo

For a detailed read-through about all the changes see each Draft migration guide.

Need Help?

Did you find these docs helpful?

Help us make our docs great!

At JSON Schema, we value docs contributions as much as every other type of contribution!

Still Need Help?

Learning JSON Schema is often confusing, but don't worry, we are here to help!.