---
type: api
title: Get data streams
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch-serverless/operation/operation-indices-get-data-stream
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch-serverless/operation/operation-indices-get-data-stream
products:
  - Elasticsearch Serverless
---

# Get data streams


## Paths

- `GET` `/_data_stream/{name}`
- `GET` `/_data_stream`

#### Path parameters

- `name` (union string | string[]) — optional, leave it out to use `/_data_stream`
  Comma-separated list of data stream names used to limit the request.
Wildcard (`*`) expressions are supported. If omitted, all data streams are returned.

## Description

Get information about one or more data streams.

## Required authorization

- Index privileges: `view_index_metadata`

## Authentication

- Api key: `Authorization: <value>`
  Elasticsearch APIs use key-based authentication.
  You must create an API key and use the encoded value in the request header.
  For example:
  
  
  ```
  curl -X GET "${ES_URL}/_cat/indices?v=true" \
    -H "Authorization: ApiKey ${API_KEY}"
  ```
  
  For more information about where to find API keys for the Elasticsearch endpoint (${ES_URL}) for a project, go to [Get started with Elasticsearch Serverless](https://www.elastic.co/docs/solutions/search/serverless-elasticsearch-get-started).

## Query string parameters

- `expand_wildcards` (string · default: open) — optional
  Type of data stream that wildcard patterns can match.
Supports comma-separated values, such as `open,hidden`.

Supported values include:
  - `all`: Match any data stream or index, including hidden ones.
  - `open`: Match open, non-hidden indices. Also matches any non-hidden data stream.
  - `closed`: Match closed, non-hidden indices. Also matches any non-hidden data stream. Data streams cannot be closed.
  - `hidden`: Match hidden data streams and hidden indices. Must be combined with `open`, `closed`, or `both`.
  - `none`: Wildcard expressions are not accepted.
  Values: `all`, `open`, `closed`, `hidden`, `none`
- `include_defaults` (boolean · default: false) — optional
  If true, returns all relevant default configurations for the index template.
- `master_timeout` (string · default: 30s) — optional
  Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.
- `verbose` (boolean · default: false) — optional
  Whether the maximum timestamp for each data stream should be calculated and returned.

## Response

`application/json`

- `data_streams` (object[])
  - `_meta` (object)
    Custom metadata for the stream, copied from the `_meta` object of the stream’s matching index template.
If empty, the response omits this property.
  - `allow_custom_routing` (boolean)
    If `true`, the data stream allows custom routing on write request.
  - `failure_store` (object)
    Information about failure store backing indices
    - `enabled` (boolean)
    - `indices` (object[])
      - `index_name` (string)
        Name of the backing index.
      - `index_uuid` (string)
        Universally unique identifier (UUID) for the index.
      - `ilm_policy` (string)
        Name of the current ILM lifecycle policy configured for this backing index.
      - `managed_by` (enum)
        Name of the lifecycle system that's currently managing this backing index.
        Values: `Index Lifecycle Management`, `Data stream lifecycle`, `Unmanaged`
      - `prefer_ilm` (boolean)
        Indicates if ILM should take precedence over DSL in case both are configured to manage this index.
      - `index_mode` (enum)
        The index mode of this backing index of the data stream.
        Values: `standard`, `time_series`, `logsdb`, `lookup`
    - `rollover_on_write` (boolean)
  - `generation` (number)
    Current generation for the data stream. This number acts as a cumulative count of the stream’s rollovers, starting at 1.
  - `hidden` (boolean)
    If `true`, the data stream is hidden.
  - `ilm_policy` (string)
    Name of the current ILM lifecycle policy in the stream’s matching index template.
This lifecycle policy is set in the `index.lifecycle.name` setting.
If the template does not include a lifecycle policy, this property is not included in the response.
NOTE: A data stream’s backing indices may be assigned different lifecycle policies. To retrieve the lifecycle policy for individual backing indices, use the get index settings API.
  - `next_generation_managed_by` (enum)
    Name of the lifecycle system that'll manage the next generation of the data stream.
    Values: `Index Lifecycle Management`, `Data stream lifecycle`, `Unmanaged`
  - `prefer_ilm` (boolean)
    Indicates if ILM should take precedence over DSL in case both are configured to managed this data stream.
  - `indices` (object[])
    Array of objects containing information about the data stream’s backing indices.
The last item in this array contains information about the stream’s current write index.
    - `index_name` (string)
      Name of the backing index.
    - `index_uuid` (string)
      Universally unique identifier (UUID) for the index.
    - `ilm_policy` (string)
      Name of the current ILM lifecycle policy configured for this backing index.
    - `managed_by` (enum)
      Name of the lifecycle system that's currently managing this backing index.
      Values: `Index Lifecycle Management`, `Data stream lifecycle`, `Unmanaged`
    - `prefer_ilm` (boolean)
      Indicates if ILM should take precedence over DSL in case both are configured to manage this index.
    - `index_mode` (enum)
      The index mode of this backing index of the data stream.
      Values: `standard`, `time_series`, `logsdb`, `lookup`
  - `lifecycle` (object)
    Contains the configuration for the data stream lifecycle of this data stream.
    - `data_retention` (string)
      If defined, every document added to this data stream will be stored at least for this time frame.
Any time after this duration the document could be deleted.
When empty, every document in this data stream will be stored indefinitely.
    - `effective_retention` (string)
      The least amount of time data should be kept by elasticsearch.
    - `retention_determined_by` (enum)
      Configuration source that can influence the retention of a data stream.
      Values: `data_stream_configuration`, `default_global_retention`, `max_global_retention`, `default_failures_retention`
    - `downsampling` (object[])
      The list of downsampling rounds to execute as part of this downsampling configuration
      - `after` (string)
        The duration since rollover when this downsampling round should execute
      - `fixed_interval` (string)
        The downsample interval.
    - `downsampling_method` (enum)
      The method used to downsample the data. There are two options `aggregate` and `last_value`. It requires
`downsampling` to be defined. Defaults to `aggregate`.
      Values: `aggregate`, `last_value`
    - `enabled` (boolean · default: true)
      If defined, it turns data stream lifecycle on/off (`true`/`false`) for this data stream. A data stream lifecycle
that's disabled (enabled: `false`) will have no effect on the data stream.
    - `rollover` (object)
      The conditions which will trigger the rollover of a backing index as configured by the cluster setting `cluster.lifecycle.default.rollover`.
This property is an implementation detail and it will only be retrieved when the query param `include_defaults` is set to true.
The contents of this field are subject to change.
      - `min_age` (string)
      - `max_age` (string)
      - `min_docs` (number)
      - `max_docs` (number)
      - `min_size` (number | string)
      - `max_size` (number | string)
      - `min_primary_shard_size` (number | string)
      - `max_primary_shard_size` (number | string)
      - `min_primary_shard_docs` (number)
      - `max_primary_shard_docs` (number)
  - `name` (string)
    Name of the data stream.
  - `replicated` (boolean)
    If `true`, the data stream is created and managed by cross-cluster replication and the local cluster can not write into this data stream or change its mappings.
  - `rollover_on_write` (boolean)
    If `true`, the next write to this data stream will trigger a rollover first and the document will be indexed in the new backing index. If the rollover fails the indexing request will fail too.
  - `settings` (object)
    The settings specific to this data stream that will take precedence over the settings in the matching index
template.
  - `mappings` (object)
    The mappings specific to this data stream that will take precedence over the mappings in the matching index
template.
    - `all_field` (object)
      - `analyzer` (string)
      - `enabled` (boolean)
      - `omit_norms` (boolean)
      - `search_analyzer` (string)
      - `similarity` (string)
      - `store` (boolean)
      - `store_term_vector_offsets` (boolean)
      - `store_term_vector_payloads` (boolean)
      - `store_term_vector_positions` (boolean)
      - `store_term_vectors` (boolean)
    - `date_detection` (boolean)
    - `dynamic` (enum)
      Values: `strict`, `runtime`, `true`, `false`
    - `dynamic_date_formats` (string[])
    - `dynamic_templates` (string to object[])
    - `_field_names` (object)
      - `enabled` (boolean)
    - `index_field` (object)
      - `enabled` (boolean)
    - `_meta` (object)
    - `numeric_detection` (boolean)
    - `properties` (map string to oneOf)
    - `_routing` (object)
      - `required` (boolean)
    - `_size` (object)
      - `enabled` (boolean)
    - `_source` (object)
      - `enabled` (boolean)
      - `excludes` (string[])
      - `includes` (string[])
      - `mode` (enum)
        

Supported values include:
  - `disabled`
  - `stored`
  - `synthetic`: Instead of storing source documents on disk exactly as you send them,
 Elasticsearch can reconstruct source content on the fly upon retrieval.
        Values: `disabled`, `stored`, `synthetic`
    - `runtime` (map string to object)
      Map values (object)
      - `fields` (map string to object)
        For type `composite`
        Map values (object)
        - `type` (enum)
          Values: `boolean`, `composite`, `date`, `double`, `geo_point`, `geo_shape`, `ip`, `keyword`, `long`, `lookup`
      - `fetch_fields` (object[])
        For type `lookup`
        - `field` (string)
        - `format` (string)
      - `format` (string)
        A custom format for `date` type runtime fields.
      - `input_field` (string)
        For type `lookup`
      - `target_field` (string)
        For type `lookup`
      - `target_index` (string)
        For type `lookup`
      - `script` (string)
        Painless script executed at query time.
      - `on_script_error` (enum)
        Values: `fail`, `continue`
      - `type` (enum)
        Field type, which can be: `boolean`, `composite`, `date`, `double`, `geo_point`, `ip`,`keyword`, `long`, or `lookup`.
        Values: `boolean`, `composite`, `date`, `double`, `geo_point`, `geo_shape`, `ip`, `keyword`, `long`, `lookup`
    - `enabled` (boolean)
    - `subobjects` (enum)
      Values: `true`, `false`
    - `_data_stream_timestamp` (object)
      - `enabled` (boolean)
  - `status` (enum)
    Health status of the data stream.
This health status is based on the state of the primary and replica shards of the stream’s backing indices.

Supported values include:
  - `green` (or `GREEN`): All shards are assigned.
  - `yellow` (or `YELLOW`): All primary shards are assigned, but one or more replica shards are unassigned. If a node in the cluster fails, some data could be unavailable until that node is repaired.
  - `red` (or `RED`): One or more primary shards are unassigned, so some data is unavailable. This can occur briefly during cluster startup as primary shards are assigned.
  - `unknown`
  - `unavailable`
    Values: `green`, `GREEN`, `yellow`, `YELLOW`, `red`, `RED`, `unknown`, `unavailable`
  - `system` (boolean)
    If `true`, the data stream is created and managed by an Elastic stack component and cannot be modified through normal user interaction.
  - `template` (string)
    Name of the index template used to create the data stream’s backing indices.
The template’s index pattern must match the name of this data stream.
  - `timestamp_field` (object)
    Information about the `@timestamp` field in the data stream.
    - `name` (string)
      Name of the timestamp field for the data stream, which must be `@timestamp`. The `@timestamp` field must be included in every document indexed to the data stream.
  - `index_mode` (enum)
    The index mode for the data stream that will be used for newly created backing indices.
    Values: `standard`, `time_series`, `logsdb`, `lookup`
## Code examples

#### Console

```console
GET _data_stream/my-data-stream
```

#### JavaScript

```javascript
const response = await client.indices.getDataStream({
  name: "my-data-stream",
});
```

#### Python

```python
resp = client.indices.get_data_stream(
    name="my-data-stream",
)
```

#### curl

```curl
curl -X GET "$ELASTICSEARCH_URL/_data_stream/my-data-stream" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.indices().getDataStream(g -> g
    .name("my-data-stream")
);
```

#### C#

```c#
var response = await client.Indices
    .GetDataStreamAsync(d1 => d1
        .Name(new[] { "my-data-stream" })
    );
```

#### PHP

```php
$resp = $client->indices()->getDataStream([
    "name" => "my-data-stream",
]);
```

#### Ruby

```ruby
response = client.indices.get_data_stream(
  name: "my-data-stream"
)
```

## Response examples

#### Indices get data stream response example1

A successful response for retrieving information about a data stream.

```json
{
  "data_streams": [
    {
      "name": "my-data-stream",
      "timestamp_field": {
        "name": "@timestamp"
      },
      "indices": [
        {
          "index_name": ".ds-my-data-stream-2099.03.07-000001",
          "index_uuid": "xCEhwsp8Tey0-FLNFYVwSg",
          "prefer_ilm": true,
          "ilm_policy": "my-lifecycle-policy",
          "managed_by": "Index Lifecycle Management"
        },
        {
          "index_name": ".ds-my-data-stream-2099.03.08-000002",
          "index_uuid": "PA_JquKGSiKcAKBA8DJ5gw",
          "prefer_ilm": true,
          "ilm_policy": "my-lifecycle-policy",
          "managed_by": "Index Lifecycle Management"
        }
      ],
      "generation": 2,
      "_meta": {
        "my-meta-field": "foo"
      },
      "status": "GREEN",
      "next_generation_managed_by": "Index Lifecycle Management",
      "prefer_ilm": true,
      "template": "my-index-template",
      "ilm_policy": "my-lifecycle-policy",
      "hidden": false,
      "system": false,
      "allow_custom_routing": false,
      "replicated": false,
      "rollover_on_write": false
    },
    {
      "name": "my-data-stream-two",
      "timestamp_field": {
        "name": "@timestamp"
      },
      "indices": [
        {
          "index_name": ".ds-my-data-stream-two-2099.03.08-000001",
          "index_uuid": "3liBu2SYS5axasRt6fUIpA",
          "prefer_ilm": true,
          "ilm_policy": "my-lifecycle-policy",
          "managed_by": "Index Lifecycle Management"
        }
      ],
      "generation": 1,
      "_meta": {
        "my-meta-field": "foo"
      },
      "status": "YELLOW",
      "next_generation_managed_by": "Index Lifecycle Management",
      "prefer_ilm": true,
      "template": "my-index-template",
      "ilm_policy": "my-lifecycle-policy",
      "hidden": false,
      "system": false,
      "allow_custom_routing": false,
      "replicated": false,
      "rollover_on_write": false
    }
  ]
}
```

