JSON Schema keywords and types

JSON Schema keywords and types

Cloud_Edition_button.webp

This page is a practical reference for configuring validation rules using JSON Schema in the Schema tab.
Here you'll find:

  • Supported JSON Schema keywords and format options.

  • Quick-reference tables for core keywords and standardized string formats.

Note!
Advanced custom schemas edited directly in the Schema tab may not be fully editable in the visual rules UI.

See:

Type/keyword reference table

This table shows which JSON Schema keywords apply to each data type.

Data type

Relevant keywords

Usage

Data type

Relevant keywords

Usage

array

items, minItems, maxItems, uniqueItems

Control array content, length, and uniqueness

number

minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf

Control allowed value ranges and divisibility

object

properties, required, minProperties, maxProperties, patternProperties, additionalProperties, dependencies

Control object shape, requiredness, and property constraints

string

minLength, maxLength, pattern, format

Control length, pattern, and semantic format

grouping

allOf, anyOf, oneOf, not

Combine or negate multiple schemas/rules

Common keywords

These are the most frequently used keywords for basic validation tasks.

Keyword

Description

Schema usage example

Keyword

Description

Schema usage example

type

Specifies the data type

{ "type": "string" }

*properties (see the warning below this table)

Defines properties for an object

{ , "properties": { "name": { "type": "string" } } }

required

Lists required properties

{ "required": ["name", "email"] }

enum

Restricts values to a set

{ "type": "string", "enum": ["red", "green"] }

format

Standardized format for a string

{ "type": "string", "format": "email" }

pattern

String must match a regex

{ "type": "string", "pattern": "^[A-Z]{3}$" }

minLength

Minimum string length

{ "type": "string", "minLength": 2 }

maxLength

Maximum string length

{ "type": "string", "maxLength": 30 }

minimum

Minimum numeric value

{ "type": "number", "minimum": 10 }

maximum

Maximum numeric value

{ "type": "number", "maximum": 100 }

items

Schema for array items

{ "type": "array", "items": { "type": "string" } }

additionalProperties

Allow/disallow unspecified object fields

{ , "additionalProperties": false }

Caution!
When defining validation rules for nested fields, do not use dot notation (e.g., "foo.bar") in the properties keyword.

JSON Schema treats "foo.bar" as a single, literal property name, not as a path to a nested value.
To validate nested fields, you must use nested properties blocks:

Incorrect

Does not validate nested fields; it only matches an object with a property literally named "foo.bar"

{ "properties": { "foo.bar": { "minimum": 5 } } }

Correct

Validates the nested "bar" field inside "foo"; this matches an object like { "foo": { "bar": 6 } } and applies the rule to the nested "bar" property.

{ "properties": { "foo": { "properties": { "bar": { "minimum": 5 } } } } }

Note!
The Rules section in the UI does not support dot notation for nested fields and will display an error if used in the schema block. Always use the correct nested structure for validating nested fields.

For details on structuring nested objects, see Creating your first schema.

Advanced keywords

Useful for more complex validation and precise control over data.

Keyword

Description

Schema usage example

Keyword

Description

Schema usage example

patternProperties

Properties matching a regex

{ "patternProperties": { "^S_": { "type": "string" } } }

minItems

Minimum array length

{ "type": "array", "minItems": 2 }

maxItems

Maximum array length

{ "type": "array", "maxItems": 10 }

uniqueItems

All items in the array must be unique

{ "type": "array", "uniqueItems": true }

minProperties

Minimum number of object properties

{ , "minProperties": 1 }

maxProperties

Maximum number of object properties

{ , "maxProperties": 5 }

dependencies

Require other properties based on the presence of one

{ "dependencies": { "credit_card": ["billing_address"] } }

multipleOf

The number must be a multiple of the value

{ "type": "number", "multipleOf": 10 }

exclusiveMinimum

Value must be strictly greater than the minimum

{ "type": "number", "exclusiveMinimum": 0 }

exclusiveMaximum

Value must be strictly less than the maximum

{ "type": "number", "exclusiveMaximum": 100 }

Grouping keywords

These keywords let you combine or negate multiple rules, useful for complex validation logic.

Keyword

Description

Schema usage example

Keyword

Description

Schema usage example

allOf

Must match all schemas in the array

{ "allOf": [ { "type": "string" }, { "maxLength": 5 } ] }

anyOf

Must match at least one schema in the array

{ "anyOf": [ { "type": "string" }, { "type": "number" } ] }

oneOf

Must match exactly one schema in the array

{ "oneOf": [ { "type": "string" }, { "type": "number" } ] }

not

Must not match the specified schema

{ "not": { "type": "null" } }

Format values

The format keyword adds semantic meaning to strings and can enforce well-known formats like email, date or uri.

Format

Description

Schema usage example

Valid data example

Format

Description

Schema usage example

Valid data example

date-time

RFC3339 Date & Time

{ "type": "string", "format": "date-time" }

"2025-06-16T11:00:00Z"

date

Calendar Date

{ "type": "string", "format": "date" }

"2025-06-16"

time

Time of Day

{ "type": "string", "format": "time" }

"11:00:00"

email

Email Address

{ "type": "string", "format": "email" }

"user@example.com"

hostname

Internet Hostname

{ "type": "string", "format": "hostname" }

"Example Domain"

ipv4

IPv4 Address

{ "type": "string", "format": "ipv4" }

"192.168.1.1"

ipv6

IPv6 Address

{ "type": "string", "format": "ipv6" }

"2001:db8::1"

uri

URI

{ "type": "string", "format": "uri" }

"Example Domain "

uuid

UUID

{ "type": "string", "format": "uuid" }

"3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a"