| type | No | Used to store field data in a predictable manner. Please note that you must use Customer Name and Shipping Address if you wish to use any of the shipping address data types. Do not set `type` when `element` is one of: `checkbox`, `quantity`, `tax-id`, `po-number`, `multiple-choice`, `multi-select`, `date-time`, `date`, `time`, `textarea`. | |
| label | Yes | Form label for the input element. | |
| order | No | Position of this field among the page's fields, from 0. When omitted, a new field goes after the current ones, or follows its position in `fields` when a page is created. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead. | |
| hidden | No | Whether this field is hidden from customers at checkout. | |
| layout | No | How a multi-select field is drawn at checkout: `dropdown` (the default) or `list`, a list of checkboxes. Ignored on other elements. | |
| pageId | Yes | The ID of the page the field belongs to. | |
| collect | No | Whether to collect only a billing address or both billing and shipping. Applies to `address` elements. Defaults to `billing`. | |
| element | No | Input control used to render this field in checkout. Defaults to `text`. | |
| options | No | Selectable options. Applies to `select`, `multi-select` and `multiple-choice` elements. Options on a `multi-select` need different values (an option without a value uses its label), and options on a `multiple-choice` need different labels. | |
| disabled | No | Whether this field is switched off. A disabled field keeps its settings but is removed from the page entirely: it is not rendered, cannot be revealed with `show_fields`, is not prefilled and is never submitted. | |
| maxValue | No | Maximum allowed value settings for this field. | |
| minValue | No | Minimum allowed value settings for this field. | |
| pageType | Yes | The kind of page the field belongs to: `checkout`, `form`, or `event`. Use the type of the tool you fetched the page with (get_checkout_page, get_form, get_event). | |
| required | No | Whether this field must be completed before checkout can continue. | |
| reference | No | Stable key that exports, Zapier, Google Sheets and webhooks use for this field's answers. Generated from the field type or label when omitted, and not updated when the label changes. Changing it breaks integrations that match on the old key, so only send it when the seller asks. | |
| description | No | Optional helper text shown below the field label. | |
| placeholder | No | Specifies a short hint that describes the expected value of an input element | |
| defaultValue | No | Default value settings for the field. | |
| showHideLogic | No | Conditional visibility rules for this field. `element.elementId` must be the ID of an existing field on the same page, and `value` an option ID on that field (or `TRUE`/`FALSE` for a checkbox). Read the IDs from the page detail response; create-time keys are rejected here. | |
| defaultCountry | No | ISO 3166-1 alpha-2 country code used as the default for `address` elements. Defaults to `US`. | |
| collectShippingPhone | No | Whether to collect a phone number alongside the shipping address. Applies to `address` elements when `collect` is `billing_and_shipping`. Defaults to `false`. | |
| showSelectedDialCode | No | Whether to display the selected international dial code in phone inputs. | |
| limitAllowedCountries | No | Country restriction settings for country-based fields. | |
| limitBillingCountries | No | Restrict the billing country list. Applies to `address` elements. | |
| limitShippingCountries | No | Restrict the shipping country list. Applies to `address` elements when `collect` is `billing_and_shipping`. | |