---
type: api
title: Analyze the index disk usage
description: Analyze the disk usage of each field of an index or data stream.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/operation/operation-indices-disk-usage
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/operation/operation-indices-disk-usage
products:
  - Elasticsearch
---

# Analyze the index disk usage

Availability: 7.15+

## Paths

- `POST` `/{index}/_disk_usage`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/authentication#apikeyauth)
- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/authentication#basicauth)
- [Bearer auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/authentication#bearerauth)

#### Path Parameters

- `index` (union IndexName | [] IndexName)
  Comma-separated list of data streams, indices, and aliases used to limit the request.
It’s recommended to execute this API with a single index (or the latest backing index of a data stream) as the API consumes resources significantly.

## Description

Analyze the disk usage of each field of an index or data stream.
This API might not support indices created in previous Elasticsearch versions.
The result of a small index can be inaccurate as some parts of an index might not be analyzed by the API.

NOTE: The total size of fields of the analyzed shards of the index in the response is usually smaller than the index `store_size` value because some small metadata files are ignored and some parts of data files might not be scanned by the API.
Since stored fields are stored together in a compressed format, the sizes of stored fields are also estimates and can be inaccurate.
The stored size of the `_id` field is likely underestimated while the `_source` field is overestimated.

For usage examples see the External documentation or refer to [Analyze the index disk usage example](https://www.elastic.co/docs/reference/elasticsearch/rest-apis/index-disk-usage) for an example.

[About analyzing index disk usage](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-disk-usage)

## Query String Parameters

- `allow_no_indices` (boolean · default: true)
  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 ExpandWildcards · default: open)
  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`
- `flush` (boolean · default: true)
  If `true`, the API performs a flush before analysis.
If `false`, the response may not include uncommitted data.
- `ignore_unavailable` (boolean · default: false)
  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.
- `run_expensive_tasks` (boolean · default: false)
  Analyzing field disk usage is resource-intensive.
To use the API, this parameter must be set to `true`.

## Response

`application/json`

Type: `object`

## Code Examples

#### Console

```console
POST /my-index-000001/_disk_usage?run_expensive_tasks=true
```

#### JavaScript

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

#### Python

```python
resp = client.indices.disk_usage(
    index="my-index-000001",
    run_expensive_tasks=True,
)
```

#### curl

```curl
curl -X POST "$ELASTICSEARCH_URL/my-index-000001/_disk_usage?run_expensive_tasks=true" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.indices().diskUsage(d -> d
    .index("my-index-000001")
    .runExpensiveTasks(true)
);
```

#### C#

```c#
var response = await client.Indices
    .DiskUsageAsync(indices: new[] { "my-index-000001" }, d1 => d1
        .RunExpensiveTasks(true)
    );
```

#### PHP

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

#### Ruby

```ruby
response = client.indices.disk_usage(
  index: "my-index-000001",
  run_expensive_tasks: "true"
)
```

## Response Examples

#### Indices disk usage response example1

An abbreviated response from `POST /my-index-000001/_disk_usage?run_expensive_tasks=true`.

```json
{
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "my-index-000001": {
    "store_size": "929mb",
    "store_size_in_bytes": 974192723,
    "all_fields": {
      "total": "928.9mb",
      "total_in_bytes": 973977084,
      "inverted_index": {
        "total": "107.8mb",
        "total_in_bytes": 113128526
      },
      "stored_fields": "623.5mb",
      "stored_fields_in_bytes": 653819143,
      "doc_values": "125.7mb",
      "doc_values_in_bytes": 131885142,
      "points": "59.9mb",
      "points_in_bytes": 62885773,
      "norms": "2.3kb",
      "norms_in_bytes": 2356,
      "term_vectors": "2.2kb",
      "term_vectors_in_bytes": 2310,
      "knn_vectors": "0b",
      "knn_vectors_in_bytes": 0
    },
    "fields": {
      "_id": {
        "total": "49.3mb",
        "total_in_bytes": 51709993,
        "inverted_index": {
          "total": "29.7mb",
          "total_in_bytes": 31172745
        },
        "stored_fields": "19.5mb",
        "stored_fields_in_bytes": 20537248,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "0b",
        "norms_in_bytes": 0,
        "term_vectors": "0b",
        "term_vectors_in_bytes": 0,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "_primary_term": {},
      "_seq_no": {},
      "_version": {},
      "_source": {
        "total": "603.9mb",
        "total_in_bytes": 633281895,
        "inverted_index": {},
        "stored_fields": "603.9mb",
        "stored_fields_in_bytes": 633281895,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "0b",
        "norms_in_bytes": 0,
        "term_vectors": "0b",
        "term_vectors_in_bytes": 0,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "context": {
        "total": "28.6mb",
        "total_in_bytes": 30060405,
        "inverted_index": {
          "total": "22mb",
          "total_in_bytes": 23090908
        },
        "stored_fields": "0b",
        "stored_fields_in_bytes": 0,
        "doc_values": "0b",
        "doc_values_in_bytes": 0,
        "points": "0b",
        "points_in_bytes": 0,
        "norms": "2.3kb",
        "norms_in_bytes": 2356,
        "term_vectors": "2.2kb",
        "term_vectors_in_bytes": 2310,
        "knn_vectors": "0b",
        "knn_vectors_in_bytes": 0
      },
      "context.keyword": {},
      "message": {},
      "message.keyword": {}
    }
  }
}
```

