NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #23 most downloaded on npm
Another JSON Schema Validator
Last release 5 months ago
24 Apr 2026
Ships unpredictably
gaps range from 8 days to 1.6 years
Most releases are documented
notes for 50 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
359 releases · first in 2015
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Compatibility with Android 4 Fix to incorrect change of resolution scope (#170) Support NaN validation:
Compatibility with Android 4 Fix to incorrect change of resolution scope (#170) Support NaN validation:
"type": "integer","type": "number" (#182)Option ownProperties to validate own properties only, skipping prototype properties (#197, @mbroadst)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Keywords exclusiveFormatMaximum / exclusiveFormatMinimum are renamed to formatExclusiveMaximum / formatExclusiveMinimum to match v5 proposal (#150, @l
Keywords exclusiveFormatMaximum / exclusiveFormatMinimum are renamed to formatExclusiveMaximum / formatExclusiveMinimum to match v5 proposal (#150, @lyngaas).
With option useDefaults: true insert defaults as object literal (deep-clone). Previous behaviour (to insert reference) is available with option useDefaults: "shared" (#136, @imbstack).
Method addMetaSchema accepts array of schemas.
Default meta-schema that will be used if $schema is not specified can be passed in option meta (#90).
Additional error parameters to support v5 keywords messages in ajv-i18n.
Keyword dependencies in mode allErrors: true returns an error for each missing property in property-dependencies (previously only for the first missing property) (#73).
TypeScript type definitions (@blakeembrey, @enriched)
Property async: true of asynchronous validation function is renamed to $async for compatibility with Meteor
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
patternRequired keyword (with v5 option) (#123). ajv.removeSchema can remove multiple or all schemas from Ajv instance (#103). Asynchronous keywords c
patternRequired keyword (with v5 option) (#123).
ajv.removeSchema can remove multiple or all schemas from Ajv instance (#103).
Asynchronous keywords can create custom errors by returning the promise that rejects with Ajv.ValidationError (#118).
not keyword is optimised to always succeed after the first error in the schema (#131).
Nothing published for this version
Nothing published for this version
Option passContext to pass validation context to custom keywords. Data path, parent data and the property name of the current data in the parent data
Option passContext to pass validation context to custom keywords.
Data path, parent data and the property name of the current data in the parent data are passed to the custom keywords defined with "validation" and "compile" function. Previously the were only available in "inline" validation keywords. See Custom keywords.
Nothing published for this version
Nothing published for this version
ajv.validate for asynchronous schema always returns promise. ajv.removeSchema no longer throws if the schema does not exist.
ajv.validate for asynchronous schema always returns promise.
ajv.removeSchema no longer throws if the schema does not exist.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Asynchronous validation using custom keywords and formats that make some asynchronous calls/requests.
Asynchronous validation using custom keywords and formats that make some asynchronous calls/requests.
Passed Ajv options are cloned and ajv.opts is renamed to _opts. It is not recommended to modify options of the existing instance as it may lead to inconsistent behaviour in schemas with references.
Option coerceTypes to coerce data types to match type in schema. See Coercing data types.
Option coerceTypes to coerce data types to match type in schema. See Coercing data types.
Nothing published for this version
Option addUsedSchema - if set to false, methods validate and compile don't add the schema to the instance. See Options. The default is true.
Option addUsedSchema - if set to false, methods validate and compile don't add the schema to the instance. See Options. The default is true.
Nothing published for this version
Nothing published for this version
Nothing published for this version
useDefaults option to assign defaults to missing properties and items.
useDefaults option to assign defaults to missing properties and items.
Nothing published for this version
Option multipleOfPrecision (#84) Browser bundle is included in npm package (to publish on cdnjs) Fixed dependencies keyword
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
v5 `$data` reference to use values from the validated data as values for schema keywords. New formats: uuid, json-pointer, relative-json-pointer. Opti
v5 $data reference to use values from the validated data as values for schema keywords.
New formats: uuid, json-pointer, relative-json-pointer.
Option loopRequired to limit the size of compiled validation function in case of very large number of required properties.
Improved macro keywords:
npm run bundle now creates minified UMD browser bundle with source map.
Previously Ajv was compiling "required" keyword as if the option loopRequired was set to 21. Currently the default value is Infinity (better performance but larger validation function in case of many required properties).
Function for inline keyword receives keyword as the second parameter. See Inline keywords.
Errors for custom keywords now have actual keyword in error.keyword property (previously "custom").
Nothing published for this version
switch keyword from from JSON-schema v5 proposals. v5 meta-schema used by default with option v5.
switch keyword from from JSON-schema v5 proposals.
v5 meta-schema used by default with option v5.
Added parentSchema property to error option when option verbose is true.
Added parentSchema property to error option when option verbose is true.
Nothing published for this version
Nothing published for this version
time format formatMaximum/formatMinimum and exclusiveFormatMaximum/exclusiveFormatMinimum from JSON-schema v5 proposals with option v5
time format
formatMaximum/formatMinimum and exclusiveFormatMaximum/exclusiveFormatMinimum from JSON-schema v5 proposals with option v5
Nothing published for this version
Nothing published for this version
Nothing published for this version
patternGroups keyword from v5 proposal (with option v5: true) schemaPath property in errors (only JavaScript notation) Fix of inlining remote refs
patternGroups keyword from v5 proposal (with option v5: true)
schemaPath property in errors (only JavaScript notation)
Fix of inlining remote refs
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →