Skip to main content
JSON Schema provides several keywords for validating array instances.

minItems

Specifies the minimum number of items in an array.

Syntax

The value must be a non-negative integer.

Validation Rules

An array instance is valid if its size (number of elements) is greater than or equal to the specified value.

Default Behavior

Omitting minItems is equivalent to minItems: 0, which allows empty arrays.

Examples

Non-Empty Array

Valid instances:
Invalid instances:

At Least Two Items

Valid instances:
Invalid instances:

maxItems

Specifies the maximum number of items in an array.

Syntax

The value must be a non-negative integer.

Validation Rules

An array instance is valid if its size (number of elements) is less than or equal to the specified value.

Examples

Limited Array Size

Valid instances:
Invalid instances:

Single Item Array

Valid instances:
Invalid instances:

uniqueItems

Requires that all items in an array be unique.

Syntax

The value must be a boolean.

Validation Rules

  • If uniqueItems is false, the instance validates successfully (duplicates allowed)
  • If uniqueItems is true, the instance validates successfully only if all elements are unique

Default Behavior

Omitting uniqueItems is equivalent to uniqueItems: false, which allows duplicates.

Equality

Elements are considered equal according to the equality rules defined in the JSON Schema Core specification.

Examples

Unique Numbers

Valid instances:
Invalid instances:

Unique Objects

Valid instances:
Invalid instances:

Mixed Type Array

Valid instances:
Invalid instances:

Combining Array Keywords

Multiple array validation keywords can be used together to define precise constraints.

Size Range

This validates arrays with 1 to 10 items:

Unique Tags

This validates an array of 1-5 unique strings:
Invalid:

Coordinates (Pair)

This validates exactly 2 numeric coordinates:
Invalid:

Team Members

Valid instance:

Fixed Size Array

This validates arrays with exactly 3 items:

Optional Array

This allows empty arrays or up to 5 unique items:

Use Cases

  • minItems: Ensure at least one selection (e.g., order items, selected options)
  • maxItems: Limit number of tags, attachments, or choices
  • uniqueItems: Prevent duplicate selections, tags, or IDs
  • Combined: Define precise constraints like “select 3-5 unique categories”