[[indices-create-data-stream]] === Create data stream API ++++ Create data stream ++++ Creates a new data stream. Data streams provide a convenient way to ingest, search, and manage time series data. Documents containing time series data may be indexed directly into a data stream and searched through the data stream. Behind the scenes, data streams contain one or more hidden backing indices and a generation attribute that indicates which of the backing indices is the write index, the index into which documents will be ingested. Backing indices are generated with the naming convention `-zzzzzz` where `zzzzzz` is the six-digit, zero-padded generation of the data stream. For example, a data stream named `web-server-logs` with a generation of 34 would have a write index named `web-server-logs-000034`. While nothing prevents backing indices from being addressed directly, data streams are integrated with the <> and <> to facilitate the management of the time series data contained in their backing indices. A data stream can only be created if the namespace it targets has a component template exists with a `data_stream` definition. [source,console] ----------------------------------- PUT _index_template/template { "index_patterns": ["my-data-stream*"], "template": { "mappings": { "properties": { "@timestamp": { "type": "date" } } } }, "data_stream": { "timestamp_field": "@timestamp" } } ----------------------------------- // TEST [source,console] -------------------------------------------------- PUT _data_stream/my-data-stream -------------------------------------------------- // TEST[continued] //// [source,console] ----------------------------------- DELETE /_data_stream/my-data-stream DELETE /_index_template/template ----------------------------------- // TEST[continued] //// [[indices-create-data-stream-request]] ==== {api-request-title} `PUT _data_stream/` [[indices-create-data-stream-desc]] ==== {api-description-title} You can use the create data stream API to add a new data stream to an {es} cluster. When creating a data stream, you must specify the following: * The name of the data stream * The name of the timestamp field. [[indices-create-data-stream-api-path-params]] ==== {api-path-parms-title} ``:: + -- (Required, string) Name of the data stream to create. Data stream names must meet the following criteria: - Lowercase only - Cannot include `\`, `/`, `*`, `?`, `"`, `<`, `>`, `|`, ` ` (space character), `,`, `#`, `:` - Cannot start with `-`, `_`, `+`, `.` - Cannot be `.` or `..` - Cannot be longer than 255 bytes (note it is bytes, so multi-byte characters will count towards the 255 limit faster) --