# Field Options [`FieldOption`](#tag/Field-Options) resources define the set of valid choices for a [`Field`](#tag/Fields) when [`Field.hasFixedOptions = true`](#tag/Fields). An [`FieldOption`](#tag/Field-Options) has human-readable [`FieldOption.value`](#tag/Field-Options) and an [`FieldOption.position`](#tag/Field-Options) which determines the order in which it appears in relation to the other [`FieldOption`](#tag/Field-Options) resources for a [`Field`](#tag/Fields). If [`Field.hierarchical = true`](#tag/Fields) then [`FieldOption.parent`](#tag/Field-Options) is the [`FieldOption`](#tag/Field-Options) which is the parent node of the [`FieldOption`](#tag/Field-Options) in the tree. [`FieldOption.position`](#tag/Field-Options) then determines the order in which the option appears in relation to the other options with the same [`FieldOption.parent`](#tag/Field-Options). The [`FieldOption`](#tag/Field-Options) resource intentionally does not include the list of child [`FieldOption`](#tag/Field-Options) resources. This is to prevent costly loading of large [`FieldOption`](#tag/Field-Options) tree structures. [`FieldOption.leaf`](#tag/Field-Options) and [`FieldOption.numberOfChildren`](#tag/Field-Options) properties can be used to determine the number of children for a node, but it is recommended to implement a combination of lazy-loading strategies using the [GET Field Option](#operation/getFieldOption) and [POST Field Option Searches](#operation/postFieldOptionSearch) resources for retrieval. e.g. Doing a [GET Field Option](#operation/getFieldOption) with an [`FieldOption.id`](#tag/Field-Options) value found in [`Asset.metadata.values`](#tag/Assets) will give the complete branch of the tree necessary in the context of the viewing that [`Asset`](#tag/Assets) via the [`FieldOption.parent`](#tag/Field-Options) property. For traversing down an [`FieldOption`](#tag/Field-Options) tree [POST Field Option Searches](#operation/postFieldOptionSearch) can be used to first get all the top-level options and then each sub level as and when needed. Searching allows you to find [`FieldOption`](#tag/Field-Options) resources in your Dash matching specific criteria Criteria can be constructed based on direct comparison or pattern matching of a set of fixed [`FieldOption`](#tag/Field-Options) properties. The logical operators `AND`, `OR` and `NOT` are provided to support complex queries based on multiple fields. A list of sorts can also be provided to control the order in the which the results are returned. ## Create a field option - [POST /field-options](https://api-docs.dash.app/dash/openapi/field-options/postfieldoption.md): Create a new FieldOption resource adding it to the set of valid choices for an Field where Field.hasFixedOptions = true. ## Get a field option - [GET /field-options/{id}](https://api-docs.dash.app/dash/openapi/field-options/getfieldoption.md): Get an FieldOption resource for an Field where Field.hasFixedOptions = true. ## Delete a field option - [DELETE /field-options/{id}](https://api-docs.dash.app/dash/openapi/field-options/deletefieldoption.md): Delete an FieldOption resource, removing it from the set of valid choices for an Field. > When deleting an option within a hierarchy of options all options in the hierarchy below the one being deleted will also be deleted. ## Create field options - [POST /field-option-batches](https://api-docs.dash.app/dash/openapi/field-options/postfieldoptionbatches.md): Create new FieldOption resources adding them to the set of valid choices for an Field where Field.hasFixedOptions = true. ## Search for field options - [POST /field-option-searches](https://api-docs.dash.app/dash/openapi/field-options/postfieldoptionsearch.md): Create a new FieldOptionSearch The most commmon uses of an FieldOptionSearch is to retrieve the FieldOption resources for an Field using the FIELD_ID field criterion. When Field.hierarchical = true it is recommended to retrieve each level of the tree via a separate search using PARENT_ID field criteria.