> 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 # Type: Form Object # Link: https://dev.wix.com/docs/api-reference/business-solutions/events/event-management/form/form-object.md ## Description: The form defines which elements are displayed to a site visitor during the registration process (RSVP or checkout). It also contains customizable messages and labels. A form is an ordered list of controls (blocks), which accept guest information into a field input. Each control contains one or more nested inputs. For example, `Name` control has two inputs: - First Name - Last Name By default, name and email controls are always required and are pinned to the top of the form. ## Schema: ```json Type: Form Object | type: Form Description: The form defines which elements are displayed to a site visitor during the registration process (RSVP or checkout). It also contains customizable messages and labels. A form is an ordered list of controls (blocks), which accept guest information into a field input. Each control contains one or more nested inputs. For example, `Name` control has two inputs: - First Name - Last Name By default, name and email controls are always required and are pinned to the top of the form. - name: controls | type: Array | description: Nested fields as an ordered list. - name: type | type: string | description: Field control type. enum: INPUT, TEXTAREA, DROPDOWN, RADIO, CHECKBOX, NAME, GUEST_CONTROL, ADDRESS_SHORT, ADDRESS_FULL, DATE - name: system | type: boolean | description: Whether the control is mandatory (such as `name` & `email`). When `true`, only the label can be changed. - name: name | type: string | description: Deprecated: Use `id` or `_id`. - name: inputs | type: Array | description: Child inputs. - name: name | type: string | description: Field name. - name: array | type: boolean | description: *Deprecated:** Use `controls.inputs.type.TEXT_ARRAY`. - name: label | type: string | description: Main field label. - name: additionalLabels | type: object | description: Additional labels for multi-valued fields such as address. - name: options | type: Array | description: Predefined choice options for fields, such as dropdown. - name: mandatory | type: boolean | description: Whether field is mandatory. - name: maxLength | type: number | description: Maximum number of accepted characters (relevant for text fields). - name: type | type: string | description: Type which determines field format. Used to validate submitted response. - name: maxSize | type: number | description: The maximum number of accepted values for array input. **Note:** Only applicable for `TEXT_ARRAY` input fields. - name: defaultOptionSelection | type: OptionSelection | description: Default option initially selected when an input has multiple choices. Defaults to first (0th) option, if not configured. Currently only applicable for `type.dropdown`. - name: labels | type: Array