Skip to main content
single_select renders a list of radio buttons. The user picks exactly one option. All options are visible at the same time — best for 2–6 choices where you want the options to be immediately scannable. For longer option lists or when space is limited, use dropdown instead. Submission value type: string (the selected value)

Field properties

PropertyTypeRequiredDescription
idstringYesUnique identifier within the form. Becomes the key in submission data.
type"single_select"YesMust be single_select.
labelstring | LocaleMapYesLabel shown above the options.
optionsOption[]YesThe list of choices. See below.
validatorsValidator[]NoValidation rules applied before the section is submitted.
visible_whenstringNoJS expression; field is shown when truthy, hidden otherwise. Hidden fields are excluded from submission data.
single_select does not support searchable. Use dropdown if you need a searchable list.

Options

Simple format — value and label are the same string:
options:
  - Software Engineer
  - Product Manager
  - Designer
Structured format — explicit value stored; label displayed:
options:
  - value: eng
    label: Software Engineer
  - value: pm
    label: Product Manager
  - value: design
    label: Designer
Structured with LocaleMap — translated labels:
options:
  - value: eng
    label:
      en: Software Engineer
      es: Ingeniero de Software
  - value: pm
    label:
      en: Product Manager
      es: Gerente de Producto
  - value: design
    label:
      en: Designer
      es: Diseñador
The value is what gets stored in submission.data. The label is what the user sees.

Validators

required

An option must be selected.
validators:
  - required
Default error message: This field is required.
Validators run in the browser before each section is submitted. They enforce UX constraints, not security guarantees. If you need server-side validation, implement it in your webhook receiver.

Full example

The role field from the job application form with fully localized options:
version: 1
title:
  en: Join the team
  es: Únete al equipo
sections:
  - id: main
    title:
      en: Apply to work with us
      es: Solicita trabajar con nosotros
    fields:
      - id: full_name
        type: short_text
        label:
          en: Full name
          es: Nombre completo
      - id: role
        type: single_select
        label:
          en: Role you're applying for
          es: Puesto al que aplicas
        options:
          - value: eng
            label:
              en: Software Engineer
              es: Ingeniero de Software
          - value: pm
            label:
              en: Product Manager
              es: Gerente de Producto
          - value: design
            label:
              en: Designer
              es: Diseñador
        validators:
          - required
      - id: email
        type: email
        label:
          en: Email address
          es: Correo electrónico
    next: done