Structure
A schema defines anobject with properties. Each property specifies its type and validation constraints:
required array lists properties that must be provided when submitting the form.
Steps
Root-level properties in the schema represent steps — logical groupings of related questions. Each step is an object containing the fields the user needs to complete. A form with one step:Progressive disclosure
Steps enable progressive disclosure — as the user completes one step and submits their answers, the API may return an updated schema with new steps revealed. This means the schema grows dynamically based on previous answers, allowing you to guide users through a multi-step flow without showing all questions upfront.Types
String
Text values, typically rendered as text inputs.Number
Numeric values, typically rendered as number inputs.Boolean
True/false values, typically rendered as checkboxes or toggles.Array
Lists of items, typically rendered as multi-selects or repeatable sections.Object
Nested structures with their own properties.Formats
Theformat keyword provides semantic meaning to string values.
Date
Date values, typically rendered as date pickers.Validation keywords
String validation
| Keyword | Description |
|---|---|
minLength | Minimum number of characters |
maxLength | Maximum number of characters |
pattern | Regular expression the value must match |
Array validation
| Keyword | Description |
|---|---|
minItems | Minimum number of items |
maxItems | Maximum number of items |
uniqueItems | When true, all items must be unique |
contains | At least one item must match the specified schema |
Enumeration and constants
enum
Restricts a property to a predefined list of allowed values.const
Restricts a property to a single fixed value.oneOf
Allows a value to match one of several schemas. Often used for conditional validation based on a previous answer.Next steps
UI Schema
Learn how to render forms with layouts, controls, and rules.
Rendering
Implementation guidance and best practices.