---
title: "Email"
description: "Collect an email address — validated for syntax, not for identity."
group: "Build forms"
order: 2
type: "reference"
parent: "fields"
keywords:
  - "email"
  - "validation"
  - "receipt"
  - "response limit"
updated: "2026-07-14"
---

The email field collects a syntactically valid email address and stores it as a string.

## Options and validation

Email fields accept the shared `required`, `description`, `placeholder`, `visibleIf`, and `maxLength` options. Both the client and the server reject anything that isn't a valid email address. Passing validation doesn't prove the address exists — or that it belongs to the person typing it.

The first answered email field can receive a respondent receipt when `settings.sendReceipt` is true. An email field can also key a field-based response limit, but the typed address is still a self-claim.

## Add an email field

In the dashboard, select **Add block**, choose **Email**, and make it required if receipts or email-based limits depend on every response having one.

```ts
const emailField = {
  id: "email",
  kind: "email",
  label: "Work email",
  required: true,
  maxLength: 254,
  placeholder: "you@example.com",
} as const;
```

<Callout variant="warning" title="An email answer isn't verified">
  Don't use a typed email address for authorization. When identity has to be trusted, pass a server-signed respondent.
</Callout>

## Related

- [Respondents and identity](/docs/respondents): Attach and verify the signed-in person from your app.
- [Limit responses](/docs/response-limits): Use an email field for soft repeat detection.
- [Email notifications](/docs/notifications): Send a team notification email or a simple receipt.
