---
type: api
title: Get the cluster health
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/operation/operation-health-report
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/operation/operation-health-report
products:
  - Elasticsearch
---

# Get the cluster health


Availability: 8.7+

## Paths

- `GET` `/_health_report/{feature}`
- `GET` `/_health_report`

- [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

- `feature` (union string | [] string) — optional, leave it out to use `/_health_report`
  A feature of the cluster, as returned by the top-level health report API.

## Description

Get a report with the health status of an Elasticsearch cluster.
The report contains a list of indicators that compose Elasticsearch functionality.

Each indicator has a health status of: green, unknown, yellow or red.
The indicator will provide an explanation and metadata describing the reason for its current health status.

The cluster’s status is controlled by the worst indicator status.

In the event that an indicator’s status is non-green, a list of impacts may be present in the indicator result which detail the functionalities that are negatively affected by the health issue.
Each impact carries with it a severity level, an area of the system that is affected, and a simple description of the impact on the system.

Some health indicators can determine the root cause of a health problem and prescribe a set of steps that can be performed in order to improve the health of the system.
The root cause and remediation steps are encapsulated in a diagnosis.
A diagnosis contains a cause detailing a root cause analysis, an action containing a brief description of the steps to take to fix the problem, the list of affected resources (if applicable), and a detailed step-by-step troubleshooting guide to fix the diagnosed problem.

NOTE: The health indicators perform root cause analysis of non-green health statuses. This can be computationally expensive when called frequently.
When setting up automated polling of the API for health status, set verbose to false to disable the more expensive analysis logic.

## Query String Parameters

- `timeout` (string Duration)
  Explicit operation timeout.
- `verbose` (boolean · default: true)
  Opt-in for more information about the health of the system.
- `size` (number · default: 1000)
  Limit the number of affected resources the health report API returns.

## Response

`application/json`

- `cluster_name` (string)
- `indicators` ({} Indicators)
  - `master_is_stable` ({} MasterIsStableIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      - `id` (string)
      - `action` (string)
      - `affected_resources` ({} DiagnosisAffectedResources)
        - `indices` (string Indices)
        - `nodes` ([] IndicatorNode)
          - `name` (union string) — nullable
            One of: `string`
          - `node_id` (union string) — nullable
            One of: `string`
        - `slm_policies` ([] string)
        - `feature_states` ([] string)
        - `snapshot_repositories` ([] string)
      - `cause` (string)
      - `help_url` (string)
    - `details` ({} MasterIsStableIndicatorDetails)
      - `current_master` ({} IndicatorNode)
        - `name` (union string) — nullable
          One of: `string`
        - `node_id` (union string) — nullable
          One of: `string`
      - `recent_masters` ([] IndicatorNode)
        - `name` (union string) — nullable
          One of: `string`
        - `node_id` (union string) — nullable
          One of: `string`
      - `exception_fetching_history` ({} MasterIsStableIndicatorExceptionFetchingHistory)
        - `message` (string)
        - `stack_trace` (string)
      - `cluster_formation` ([] MasterIsStableIndicatorClusterFormationNode)
        - `name` (string)
        - `node_id` (string)
        - `cluster_formation_message` (string)
  - `shards_availability` ({} ShardsAvailabilityIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} ShardsAvailabilityIndicatorDetails)
      - `creating_primaries` (number)
      - `creating_replicas` (number)
      - `initializing_primaries` (number)
      - `initializing_replicas` (number)
      - `restarting_primaries` (number)
      - `restarting_replicas` (number)
      - `started_primaries` (number)
      - `started_replicas` (number)
      - `unassigned_primaries` (number)
      - `unassigned_replicas` (number)
  - `disk` ({} DiskIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} DiskIndicatorDetails)
      - `indices_with_readonly_block` (number)
      - `nodes_with_enough_disk_space` (number)
      - `nodes_over_high_watermark` (number)
      - `nodes_over_flood_stage_watermark` (number)
      - `nodes_with_unknown_disk_status` (number)
  - `repository_integrity` ({} RepositoryIntegrityIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} RepositoryIntegrityIndicatorDetails)
      - `total_repositories` (number)
      - `corrupted_repositories` (number)
      - `corrupted` ([] string)
  - `data_stream_lifecycle` ({} DataStreamLifecycleIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} DataStreamLifecycleDetails)
      - `stagnating_backing_indices_count` (number)
      - `total_backing_indices_in_error` (number)
      - `stagnating_backing_indices` ([] StagnatingBackingIndices)
        - `index_name` (string IndexName)
        - `first_occurrence_timestamp` (number)
        - `retry_count` (number)
  - `ilm` ({} IlmIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} IlmIndicatorDetails)
      - `ilm_status` (enum LifecycleOperationMode)
        Values: `RUNNING`, `STOPPING`, `STOPPED`
      - `policies` (number)
      - `stagnating_indices` (number)
  - `slm` ({} SlmIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} SlmIndicatorDetails)
      - `slm_status` (enum LifecycleOperationMode)
        Values: `RUNNING`, `STOPPING`, `STOPPED`
      - `policies` (number)
      - `unhealthy_policies` ({} SlmIndicatorUnhealthyPolicies)
        - `count` (number)
        - `invocations_since_last_success` (map string to number)
  - `shards_capacity` ({} ShardsCapacityIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} ShardsCapacityIndicatorDetails)
      - `data` ({} ShardsCapacityIndicatorTierDetail)
        - `max_shards_in_cluster` (number)
        - `current_used_shards` (number)
      - `frozen` ({} ShardsCapacityIndicatorTierDetail)
        - `max_shards_in_cluster` (number)
        - `current_used_shards` (number)
  - `file_settings` ({} FileSettingsIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} FileSettingsIndicatorDetails)
      - `failure_streak` (number)
      - `most_recent_failure` (string)
  - `project_encryption_key` ({} ProjectEncryptionKeyIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} ProjectEncryptionKeyDetails)
      - `active_key_id` (string)
      - `active_password_id` (string)
      - `encryption_required` (boolean)
        Whether callers must refuse to store secrets when the service is not ready.
If `false`, callers may fall back to storing secrets in plaintext (with a warning).
      - `key_count` (number)
      - `metadata_password_id` (string)
      - `state` (string)
  - `dlm_frozen_transitions` ({} DlmFrozenTransitionsIndicator)
    - `status` (enum IndicatorHealthStatus)
      Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
    - `symptom` (string)
    - `impacts` ([] Impact)
      - `description` (string)
      - `id` (string)
      - `impact_areas` ([] enum ImpactArea)
        Values: `search`, `ingest`, `backup`, `deployment_management`
      - `severity` (number)
    - `diagnosis` ([] Diagnosis)
      Same fields as `diagnosis` in `master_is_stable`
    - `details` ({} DlmFrozenTransitionsIndicatorDetails)
      - `transitions_enabled` (boolean)
      - `service_running` (boolean)
      - `default_repository_configured` (boolean)
      - `overdue_indices_count` (number)
      - `overdue_indices_count_by_state` (map string to number)
      - `overdue_indices_sample` ([] DlmFrozenTransitionOverdueIndex)
        - `index_name` (string IndexName)
        - `transition_state` (enum DlmFrozenTransitionState)
          Values: `unmarked`, `marked`, `queued`, `running`
      - `generated_at_millis` (number)
        Only present when the indicator status is `unknown`, meaning the health snapshot is stale.
- `status` (enum IndicatorHealthStatus)
  Values: `green`, `yellow`, `red`, `unknown`, `unavailable`
## Code Examples

#### Console

```console
GET _health_report
```

#### JavaScript

```javascript
const response = await client.healthReport();
```

#### Python

```python
resp = client.health_report()
```

#### curl

```curl
curl -X GET "$ELASTICSEARCH_URL/_health_report" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.healthReport(h -> h);
```

#### C#

```c#
var response = await client.HealthReportAsync();
```

#### PHP

```php
$resp = $client->healthReport();
```

#### Ruby

```ruby
response = client.health_report
```

