# Form Fields

Fields are the fundamental unit of data in Feathery. A field can be used to collect a piece of information from one of your end users.

Field IDs must be unique across all fields and across forms. Make sure to give your field a readable name so you can easily identify it. The max length of a form or hidden field ID is 128 characters.

## Form vs Hidden Field

Feathery supports two types of fields, **form fields** and **hidden fields**.

### [Form Fields](https://docs.feathery.io/platform/build-forms/elements/fields)

Form fields are the fields visible to your end users who fill them out. These are added to your form from the visual editor as [text fields](https://docs.feathery.io/platform/build-forms/elements/fields/text-field), [dropdowns](https://docs.feathery.io/platform/build-forms/elements/fields/dropdown), [file uploads](https://docs.feathery.io/platform/build-forms/elements/fields/file-upload), and more.

### [Hidden Fields](https://docs.feathery.io/platform/form-fields/hidden-fields)

Hidden fields are fields that your end users don't directly fill out, but they can be used to control the behavior of your form and run custom logic. [Learn more](https://docs.feathery.io/platform/form-fields/hidden-fields)

## Resources

* Different ways to set a field value
* [Link a field across multiple forms](https://docs.feathery.io/platform/form-fields/link-fields-across-forms)

They can be populated via an integration like [Plaid](https://www.feathery.io/integrations/plaid), set via our [API](https://api-docs.feathery.io/#create-field-value-for-user) or [embed SDK](https://docs.feathery.io/develop/react), and even passed in through Feathery-hosted form URLS. The structure of field values set from our hosted form URLs looks like `form.feathery.io/to/<form slug>/?<field-id>=<field-value>`. To specify multiple values for a given field, you can specify the query parameter in the URL multiple times.
