> For the complete documentation index, see [llms.txt](https://developers.docstudio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.docstudio.com/api-documentation/template-api/template-dynamic-fields-api/dropdown-field-api.md).

# Dropdown Field API

Use this page to add a dropdown field to template XML. Assign the field to a role with `roleId`, then reuse the same field `name` in envelope requests.

### Dropdown field example

```xml
<field
    type="dropdown"
    name="country"
    placeholder="Select country"
    roleId="fd8cb669-db1d-41e1-8f6c-2ad3f8fa981a"
    optional="false"
    search="true"
>
    <option>USA</option>
    <option>Germany</option>
    <option>Japan</option>
</field>
```

### Required attributes

* `type` — field type. Use `dropdown`.
* `name` — field name. Use 1 to 128 characters. Do not use `&`, `"`, `<`, or `>`. Keep the value unique within one document.
* `roleId` — role identifier for the recipient who fills the field.

### Optional attributes

* `placeholder` — placeholder text shown in the template and envelope. Use 0 to 1024 characters. If you omit it, the envelope shows the field name.
* `optional` — set to `true` if the recipient can leave the field empty. If you omit it, the default value is `false`.
* `allowCustomValue` — set to `true` if the recipient can enter a custom value.
* `multiSelect` — set to `true` if the recipient can select more than one option.
* `search` — set to `true` if the field value should be available in envelope search. If you omit it, the default value is `false`.

### Option rules

* Add options as nested `<option>` elements.
* Use up to `100` options.
* Keep each option value between `1` and `50` characters.
* Do not use `allowCustomValue` and `multiSelect` together.

### Related topics

* [Template Dynamic Fields API](/api-documentation/template-api/template-dynamic-fields-api.md)
* [Template Structure API](/api-documentation/template-api/template-structure-api.md)
* [Send Envelope](/api-documentation/envelope/send-envelope.md)
* [Fill Envelope](/api-documentation/envelope/fill-envelope.md)
