---
type: api
title: Get index segments
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/operation/operation-indices-segments
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/operation/operation-indices-segments
products:
  - Elasticsearch
---

# Get index segments


## Paths

- `GET` `/{index}/_segments`
- `GET` `/_segments`

#### Path parameters

- `index` (union string | string[]) — optional, leave it out to use `/_segments`
  Comma-separated list of data streams, indices, and aliases used to limit the request.
Supports wildcards (`*`).
To target all data streams and indices, omit this parameter or use `*` or `_all`.

## Description

Get low-level information about the Lucene segments in index shards.
For data streams, the API returns information about the stream's backing indices.

## Required authorization

- Index privileges: `monitor`

## Authentication

- Api key: `Authorization: <value>`
  Elasticsearch APIs support 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}"
  ```
  
  To get API keys, use the `/_security/api_key` APIs.
- Basic: `Authorization: Basic <credentials>`
- Bearer: `Authorization: Bearer <token>`
  Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API.
  For examples, refer to [Token-based authentication services](https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/token-based-authentication-services)

## Query string parameters

- `allow_no_indices` (boolean · default: true) — optional
  A setting that does two separate checks on the index expression.
If `false`, the request returns an error (1) if any wildcard expression
(including `_all` and `*`) resolves to zero matching indices or (2) if the
complete set of resolved indices, aliases or data streams is empty after all
expressions are evaluated. If `true`, index expressions that resolve to no
indices are allowed and the request returns an empty result.
- `expand_wildcards` (string · default: open) — optional
  Type of index that wildcard patterns can match.
If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams.
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`
- `ignore_unavailable` (boolean · default: false) — optional
  If `false`, the request returns an error if it targets a concrete (non-wildcarded)
index, alias, or data stream that is missing, closed, or otherwise unavailable.
If `true`, unavailable concrete targets are silently ignored.

## Response

`application/json`

- `indices` (map string to object)
  Map values (object)
  - `shards` (map string to oneOf)
- `_shards` (object)
  - `failed` (number)
    The number of shards the operation or search attempted to run on but failed.
  - `successful` (number)
    The number of shards the operation or search succeeded on.
  - `total` (number)
    The number of shards the operation or search will run on overall.
  - `failures` (object[])
    - `index` (string)
    - `node` (string)
    - `reason` (object)
      - `type` (string)
        The type of error
      - `reason` (union string) — nullable
        A human-readable explanation of the error, in English.
        One of: `string`
      - `stack_trace` (string)
        The server stack trace. Present only if the `error_trace=true` parameter was sent with the request.
      - `caused_by` (object) — recursive
        Same fields as `reason` in `failures`
      - `root_cause` (object[]) — recursive
        Same fields as `reason` in `failures`
      - `suppressed` (object[]) — recursive
        Same fields as `reason` in `failures`
    - `shard` (number)
    - `status` (string)
    - `primary` (boolean)
  - `skipped` (number)
## Code examples

#### Console

```console
GET /my-index-000001/_segments
```

#### JavaScript

```javascript
const response = await client.indices.segments({
  index: "my-index-000001",
});
```

#### Python

```python
resp = client.indices.segments(
    index="my-index-000001",
)
```

#### curl

```curl
curl -X GET "$ELASTICSEARCH_URL/my-index-000001/_segments" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.indices().segments(s -> s
    .index("my-index-000001")
);
```

#### C#

```c#
var response = await client.Indices
    .SegmentsAsync(d1 => d1
        .Indices(new[] { "my-index-000001" })
    );
```

#### PHP

```php
$resp = $client->indices()->segments([
    "index" => "my-index-000001",
]);
```

#### Ruby

```ruby
response = client.indices.segments(
  index: "my-index-000001"
)
```

## Response examples

#### Indices segments response example1

A response describing information about index segments.

```json
{
  "_shards": {
    "total": 2,
    "successful": 2,
    "failed": 0
  },
  "indices": {
    "kibana_sample_data_ecommerce": {
      "shards": {
        "0": [
          {
            "routing": {
              "state": "STARTED",
              "primary": false,
              "node": "zZg9NuPhQPKO3LMRkMo2iw"
            },
            "num_committed_segments": 4,
            "num_search_segments": 4,
            "segments": {
              "_0": {
                "generation": 0,
                "num_docs": 500,
                "deleted_docs": 0,
                "size_in_bytes": 524718,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_1": {
                "generation": 1,
                "num_docs": 500,
                "deleted_docs": 0,
                "size_in_bytes": 526100,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_2": {
                "generation": 2,
                "num_docs": 2000,
                "deleted_docs": 0,
                "size_in_bytes": 1846181,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_3": {
                "generation": 3,
                "num_docs": 1675,
                "deleted_docs": 0,
                "size_in_bytes": 1572960,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              }
            }
          },
          {
            "routing": {
              "state": "STARTED",
              "primary": true,
              "node": "sp27SQiNTQWKpBKoRcnfQQ"
            },
            "num_committed_segments": 5,
            "num_search_segments": 5,
            "segments": {
              "_0": {
                "generation": 0,
                "num_docs": 187,
                "deleted_docs": 0,
                "size_in_bytes": 227245,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_1": {
                "generation": 1,
                "num_docs": 253,
                "deleted_docs": 0,
                "size_in_bytes": 297549,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_2": {
                "generation": 2,
                "num_docs": 560,
                "deleted_docs": 0,
                "size_in_bytes": 580918,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_3": {
                "generation": 3,
                "num_docs": 1603,
                "deleted_docs": 0,
                "size_in_bytes": 1506385,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              },
              "_4": {
                "generation": 4,
                "num_docs": 2072,
                "deleted_docs": 0,
                "size_in_bytes": 1913051,
                "committed": true,
                "search": true,
                "version": "10.3.1",
                "compound": true,
                "attributes": {
                  "Lucene90StoredFieldsFormat.mode": "BEST_SPEED"
                }
              }
            }
          }
        ]
      }
    }
  }
}
```

