> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Resource: Form Schemas # Type: Form Object # Link: https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/form-object.md ## Schema: ```json Type: Form Object | type: Form - name: id | type: string | description: Form schema ID. - name: value | type: string | description: - name: formFields | type: Array | description: Form fields that define the input elements and their validation rules. - name: id | type: string | description: Field ID. - name: hidden | type: boolean | description: Whether the field is hidden from submitters. Default: `false` - name: identifier | type: string | description: Custom identification for the field. This is intended as a way for you to identify certain fields that you want to apply special behavior to in your own logic. - name: fieldType | type: string | description: Field type. enum: UNKNOWN_FIELD_TYPE, INPUT, DISPLAY - name: steps | type: Array | description: Layout configuration that defines how form fields are organized across multiple steps. Each step represents a page of the form. - name: id | type: string | description: Step ID. - name: name | type: string | description: Name of the step. - name: hidden | type: boolean | description: Whether the step is hidden. - name: layout | type: FormLayout | description: Layout configuration that defines how form fields are arranged within this step. - name: large | type: BreakPoint | description: Layout configuration for large screen breakpoints (desktop). - name: medium | type: BreakPoint | description: Layout configuration for medium screen breakpoints (tablet). - name: small | type: BreakPoint | description: Layout configuration for small screen breakpoints (mobile). - name: rules | type: Array | description: Form rules, can be applied to layout and items properties. - name: id | type: string | description: Rule ID. - name: condition | type: Struct | description: Condition that determines when this rule's overrides should be applied. - name: fields | type: object | description: - name: overrides | type: Array | description: Changes to apply to form elements when the condition evaluates to true. - name: entityType | type: string | description: Type of form element that this override targets. - name: entityId | type: string | description: ID of the form element to modify. For nested form fields, use the format: "{fieldIdWithNestedForm}/{nestedFormFieldId}". - name: valueChanges | type: object | description: Property changes to apply to the form element when the rule condition is met. Each key represents a property path, and the value is the new value to set. - name: name | type: string | description: Name for the rule. - name: namespaceRule | type: boolean | description: Namespace rules are part of business logic of app owning namespace, have limited editing possibilities - name: value | type: boolean | description: - name: revision | type: string | description: Revision number, which increments by 1 each time the form schema is updated. To prevent conflicting changes, the current revision must be passed when updating the form schema. - name: value | type: string | description: - name: createdDate | type: string | description: Date and time when the form schema was created. - name: seconds | type: string | description: - name: nanos | type: number | description: - name: updatedDate | type: string | description: Date and time when the form schema was last updated. - name: deletedFields | type: Array | description: Fields which were soft deleted. - name: id | type: string | description: Item ID. - name: target | type: string | description: Definition of a target where the value of field belongs. - name: validation | type: Validation | description: Validation of field output value. - name: required | type: boolean | description: Whether the field is required. - name: pii | type: boolean | description: Mark the field as containing personal information. This will encrypt user data when storing it. - name: hidden | type: boolean | description: Whether the field is hidden. - name: view | type: Struct | description: Field view properties. - name: dataExtensionsDetails | type: DataExtensionsDetails | description: Details identifying field, which is extension of other entity - name: fqdns | type: Array | description: FQDNS which can be extended with this field - name: readOnly | type: boolean | description: Whether the field is read only. Default: false - name: deletedFormFields | type: Array | description: Form fields that were soft deleted. - name: extendedFields | type: ExtendedFields | description: Data extensions for storing additional custom properties. - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured. You can only access fields for which you have the appropriate permissions. Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md). - name: namespace | type: string | description: Unique identifier for the app that owns this form schema. For example, `wix.form_app.form` for Wix Forms. See a list of namespaces for [apps made by Wix](https://dev.wix.com/docs/api-reference/crm/forms/form-schemas/introduction.md#namespaces-of-apps-made-by-wix) section. - name: mediaFolderId | type: string | description: Media folder ID for storing uploaded files from form submissions. - name: limitationRule | type: LimitationRule | description: Submission limits that can automatically disable the form when reached. - name: maxAllowedSubmissions | type: number | description: Limitation by submission count, disables form when a set amount of submissions is reached. - name: value | type: number | description: - name: dateTimeDeadline | type: string | description: Limitation by submission date, disables form when a set date and time is reached. - name: submissionLimitPerUser | type: number | description: Limitation per user submission count, disables form when a set amount of submissions per user is reached. - name: spamFilterProtectionLevel | type: string | description: Level of spam protection applied to form submissions. Default: `ADVANCED` enum: UNKNOWN, NONE, BASIC, ADVANCED - name: requiredIndicatorProperties | type: RequiredIndicatorProperties | description: Configuration for how required field indicators are displayed to the submitter. - name: requiredIndicator | type: string | description: Type of visual indicator used to mark required fields. enum: ASTERISK, TEXT, NONE - name: requiredIndicatorPlacement | type: string | description: Position where the required indicator appears relative to the field title. enum: AFTER_FIELD_TITLE, BEFORE_FIELD_TITLE - name: submitSettings | type: SubmitSettings | description: Configuration for actions taken after a form is successfully submitted. - name: submitSuccessAction | type: string | description: Action that's triggered after a form is successfully submitted. enum: NO_ACTION, THANK_YOU_MESSAGE, REDIRECT, POPUP - name: disabledFormMessage | type: RichContent | description: Message displayed to visitors when the form is disabled. This allows you to inform submitters why the form isn't available. - name: nodes | type: Array | description: Node objects representing a rich content document. - name: type | type: string | description: Node type. Use `APP_EMBED` for nodes that embed content from other Wix apps. Use `EMBED` to embed content in [oEmbed](https://oembed.com/) format. - name: id | type: string | description: Node ID. - name: nodes | type: Array | description: A list of child nodes. - name: style | type: NodeStyle | description: Padding and background color styling for the node. - name: metadata | type: Metadata | description: Object metadata. - name: version | type: number | description: Schema version. - name: createdTimestamp | type: string | description: When the object was created. - name: updatedTimestamp | type: string | description: When the object was most recently updated. - name: id | type: string | description: Object ID. - name: documentStyle | type: DocumentStyle | description: Global styling for header, paragraph, block quote, and code block nodes in the object. - name: headerOne | type: TextNodeStyle | description: Styling for H1 nodes. - name: headerTwo | type: TextNodeStyle | description: Styling for H2 nodes. - name: headerThree | type: TextNodeStyle | description: Styling for H3 nodes. - name: headerFour | type: TextNodeStyle | description: Styling for H4 nodes. - name: headerFive | type: TextNodeStyle | description: Styling for H5 nodes. - name: headerSix | type: TextNodeStyle | description: Styling for H6 nodes. - name: paragraph | type: TextNodeStyle | description: Styling for paragraph nodes. - name: blockquote | type: TextNodeStyle | description: Styling for block quote nodes. - name: codeBlock | type: TextNodeStyle | description: Styling for code block nodes. - name: enabled | type: boolean | description: Whether the form is effectively active — `true` only when the user has not disabled the form **and** no system service has placed an `activation_block` on it. Writing `enabled: true` records the user's intent to activate the form, but the value read back may still be `false` if `activation_block` is present (e.g. a plan restriction is in effect). Once the block is lifted the form becomes active automatically without any additional write. Default: `true` - name: name | type: string | description: Display name of the form schema. - name: formRules | type: Array | description: Business logic rules that can modify form behavior based on user input or other conditions. These rules can show/hide fields, change validation, or trigger actions. - name: id | type: string | description: Rule ID. - name: expression | type: ConditionNode | description: Conditional expression that determines when this rule should be applied. The overrides defined in this rule are applied when this expression evaluates to true. - name: overrides | type: Array | description: Form modifications that are applied when the rule expression evaluates to true. Each override specifies how a form element should be changed. - name: entityType | type: string | description: Type of form element being modified by this override. - name: name | type: string | description: Human-readable name for the rule. - name: namespaceRule | type: boolean | description: Namespace rules are part of business logic of app owning namespace, have limited editing possibilities - name: tags | type: Tags | description: Tag IDs collections associated with the current entity. - name: privateTags | type: TagList | description: Tags that require an additional permission in order to access them, normally not given to site members or visitors. - name: tagIds | type: Array | description: List of tag IDs - name: tags | type: TagList | description: Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. - name: autoFillContact | type: string | description: Source used for contact autofill when filling form fields. Default: FORM_INPUT. enum: MEMBER_DATA, FORM_INPUT - name: submissionAccess | type: string | description: Controls who can read submissions of this form beyond the standard permission. Default: `OWNER_AND_COLLABORATORS` enum: UNKNOWN_SUBMISSION_ACCESS, OWNER_AND_COLLABORATORS, MEMBERS, PUBLIC ```