--
:api: start-datafeed
:request: StartDatafeedRequest
:response: StartDatafeedResponse
--
[id="{upid}-{api}"]
=== Start Datafeed API

The Start Datafeed API provides the ability to start a {ml} datafeed in the cluster.
It accepts a +{request}+ object and responds
with a +{response}+ object.

[id="{upid}-{api}-request"]
==== Start Datafeed Request

A +{request}+ object is created referencing a non-null `datafeedId`.
All other fields are optional for the request.

["source","java",subs="attributes,callouts,macros"]
--------------------------------------------------
include-tagged::{doc-tests-file}[{api}-request]
--------------------------------------------------
<1> Constructing a new request referencing an existing `datafeedId`

==== Optional Arguments

The following arguments are optional.

["source","java",subs="attributes,callouts,macros"]
--------------------------------------------------
include-tagged::{doc-tests-file}[{api}-request-options]
--------------------------------------------------
<1> Set when the datafeed should end, the value is exclusive.
May be an epoch seconds, epoch millis or an ISO 8601 string.
"now" is a special value that indicates the current time.
If you do not specify an end time, the datafeed runs continuously.
<2> Set when the datafeed should start, the value is inclusive.
May be an epoch seconds, epoch millis or an ISO 8601 string.
If you do not specify a start time and the datafeed is associated with a new job,
the analysis starts from the earliest time for which data is available.
<3> Set the timeout for the request

include::../execution.asciidoc[]
