| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | [role="xpack"][testenv="platinum"][[ml-put-datafeed]]= Create {dfeeds} API[subs="attributes"]++++<titleabbrev>Create {dfeeds}</titleabbrev>++++Instantiates a {dfeed}.[[ml-put-datafeed-request]]== {api-request-title}`PUT _ml/datafeeds/<feed_id>`[[ml-put-datafeed-prereqs]]== {api-prereq-title}* You must create an {anomaly-job} before you create a {dfeed}.* Requires the following privileges:** cluster: `manage_ml` (the `machine_learning_admin` built-in role grants this   privilege)** source index configured in the {dfeed}: `read`[[ml-put-datafeed-desc]]== {api-description-title}{ml-docs}/ml-dfeeds.html[{dfeeds-cap}] retrieve data from {es} for analysis byan {anomaly-job}. You can associate only one {dfeed} to each {anomaly-job}.The {dfeed} contains a query that runs at a defined interval (`frequency`). Ifyou are concerned about delayed data, you can add a delay (`query_delay`) ateach interval. See {ml-docs}/ml-delayed-data-detection.html[Handling delayed data].[IMPORTANT]====* You must use {kib}, this API, or the <<ml-put-job,create {anomaly-jobs} API>>to create a {dfeed}. Do not add a {dfeed} directly to the `.ml-config` indexusing the {es} index API. If {es} {security-features} are enabled, do not giveusers `write` privileges on the `.ml-config` index.* When {es} {security-features} are enabled, your {dfeed} remembers which rolesthe user who created it had at the time of creation and runs the query usingthose same roles. If you provide<<http-clients-secondary-authorization,secondary authorization headers>>, thosecredentials are used instead.====[[ml-put-datafeed-path-parms]]== {api-path-parms-title}`<feed_id>`::(Required, string)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=datafeed-id][role="child_attributes"][[ml-put-datafeed-request-body]]== {api-request-body-title}`aggregations`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=aggregations]`chunking_config`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=chunking-config]+.Properties of `chunking_config`[%collapsible%open]====`mode`:::(string)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=mode]`time_span`:::(<<time-units,time units>>)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=time-span]====`delayed_data_check_config`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=delayed-data-check-config]+.Properties of `delayed_data_check_config`[%collapsible%open]====`check_window`::(<<time-units,time units>>)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=delayed-data-check-config-check-window]`enabled`::(Boolean)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=delayed-data-check-config-enabled]====`frequency`::(Optional, <<time-units, time units>>)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=frequency]`indices`::(Required, array)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=indices]`indices_options`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=indices-options]`job_id`::(Required, string)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]`max_empty_searches`::(Optional,integer)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=max-empty-searches]`query`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=query]`query_delay`::(Optional, <<time-units, time units>>)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=query-delay]`runtime_mappings`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=runtime-mappings]`script_fields`::(Optional, object)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=script-fields]`scroll_size`::(Optional, unsigned integer)include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=scroll-size][[ml-put-datafeed-example]]== {api-examples-title}[source,console]--------------------------------------------------PUT _ml/datafeeds/datafeed-total-requests{  "job_id": "total-requests",  "indices": ["server-metrics"]}--------------------------------------------------// TEST[skip:setup:server_metrics_job]When the {dfeed} is created, you receive the following results:[source,console-result]----{  "datafeed_id": "datafeed-total-requests",  "job_id": "total-requests",  "query_delay": "83474ms",  "indices": [    "server-metrics"  ],  "query": {    "match_all": {      "boost": 1.0    }  },  "scroll_size": 1000,  "chunking_config": {    "mode": "auto"  }}----// TESTRESPONSE[s/"query_delay": "83474ms"/"query_delay": $body.query_delay/]// TESTRESPONSE[s/"query.boost": "1.0"/"query.boost": $body.query.boost/]
 |