# Explain data frame analytics config
**POST /_ml/data_frame/analytics/{id}/_explain**
**All methods and paths for this operation:**
GET
/_ml/data_frame/analytics/_explain
POST
/_ml/data_frame/analytics/_explain
GET
/_ml/data_frame/analytics/{id}/_explain
POST
/_ml/data_frame/analytics/{id}/_explain
This API provides explanations for a data frame analytics config that either
exists already or one that has not been created yet. The following
explanations are provided:
* which fields are included or not in the analysis and why,
* how much memory is estimated to be required. The estimate can be used when deciding the appropriate value for model_memory_limit setting later on.
If you have object fields or fields that are excluded via source filtering, they are not included in the explanation.
## Required authorization
* Cluster privileges: `monitor_ml`
## Servers
- http://api.example.com: http://api.example.com ()
## Authentication methods
- Api key auth
- Basic auth
- Bearer auth
## Parameters
### Path parameters
- **id** (string)
Identifier for the data frame analytics job. This identifier can contain
lowercase alphanumeric characters (a-z and 0-9), hyphens, and
underscores. It must start and end with alphanumeric characters.
### Body: application/json (object)
- **source** (object)
The configuration of how to source the analysis data. It requires an
index. Optionally, query and _source may be specified.
- **dest** (object)
The destination configuration, consisting of index and optionally
results_field (ml by default).
- **analysis** (object)
The analysis configuration, which contains the information necessary to
perform one of the following types of analysis: classification, outlier
detection, or regression.
- **description** (string)
A description of the job.
- **model_memory_limit** (string)
The approximate maximum amount of memory resources that are permitted for
analytical processing. If your `elasticsearch.yml` file contains an
`xpack.ml.max_model_memory_limit` setting, an error occurs when you try to
create data frame analytics jobs that have `model_memory_limit` values
greater than that setting.
- **max_num_threads** (number)
The maximum number of threads to be used by the analysis. Using more
threads may decrease the time necessary to complete the analysis at the
cost of using more CPU. Note that the process may use additional threads
for operational functionality other than the analysis itself.
- **analyzed_fields** (object)
Specify includes and/or excludes patterns to select which fields will be
included in the analysis. The patterns specified in excludes are applied
last, therefore excludes takes precedence. In other words, if the same
field is specified in both includes and excludes, then the field will not
be included in the analysis.
- **allow_lazy_start** (boolean)
Specifies whether this job can start when there is insufficient machine
learning node capacity for it to be immediately assigned to a node.
## Responses
### 200
#### Body: application/json (object)
- **field_selection** (array[object])
An array of objects that explain selection for each field, sorted by the field names.
- **memory_estimation** (object)
An array of objects that explain selection for each field, sorted by the field names.
[Powered by Bump.sh](https://bump.sh)