---
type: api
title: Get deprecation information
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-migration-deprecations
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v9/operation/operation-migration-deprecations
products:
  - Elasticsearch
---

# Get deprecation information


Availability: Generally available since 6.1

## Paths

- `GET` `/{index}/_migration/deprecations`
- `GET` `/_migration/deprecations`

#### Path parameters

- `index` (string) — optional, leave it out to use `/_migration/deprecations`
  Comma-separate list of data streams or indices to check. Wildcard (*) expressions are supported.

## Description

Returns information about deprecated features which are in use in the cluster.
The reported features include cluster, node, and index level settings that will be removed or changed in the next major version.
You must address the reported issues before upgrading to the next major version.
However, no action is required when upgrading within the current major version.
Deprecated features remain fully supported and will continue to work in the current version, and when upgrading to a newer minor or patch release in the same major version.
Use this API to review your usage of these features and migrate away from them at your own pace, before upgrading to a new major version.

> info
> This API is designed for indirect use by the [Upgrade Assistant](https://www.elastic.co/docs/deploy-manage/upgrade/prepare-to-upgrade/upgrade-assistant).
> We recommend learning about deprecated features using the Upgrade Assistant rather than calling this API directly.

## Required authorization

- Cluster privileges: `manage`

## 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)

## Response

`application/json`

- `cluster_settings` (object[])
  Cluster-level deprecation warnings.
  - `details` (string)
    Optional details about the deprecation warning.
  - `level` (enum)
    The level property describes the significance of the issue.

Supported values include:
  - `none`
  - `info`
  - `warning`: You can upgrade directly, but you are using deprecated functionality which will not be available or behave differently in the next major version.
  - `critical`: You cannot upgrade without fixing this problem.
    Values: `none`, `info`, `warning`, `critical`
  - `message` (string)
    Descriptive information about the deprecation warning.
  - `url` (string)
    A link to the breaking change documentation, where you can find more information about this change.
  - `resolve_during_rolling_upgrade` (boolean)
  - `_meta` (map string to object)
- `index_settings` (map string to object)
  Index warnings are sectioned off per index and can be filtered using an index-pattern in the query.
This section includes warnings for the backing indices of data streams specified in the request path.
- `data_streams` (map string to object)
- `node_settings` (object[])
  Node-level deprecation warnings.
Since only a subset of your nodes might incorporate these settings, it is important to read the details section for more information about which nodes are affected.
  - `details` (string)
    Optional details about the deprecation warning.
  - `level` (enum)
    The level property describes the significance of the issue.

Supported values include:
  - `none`
  - `info`
  - `warning`: You can upgrade directly, but you are using deprecated functionality which will not be available or behave differently in the next major version.
  - `critical`: You cannot upgrade without fixing this problem.
    Values: `none`, `info`, `warning`, `critical`
  - `message` (string)
    Descriptive information about the deprecation warning.
  - `url` (string)
    A link to the breaking change documentation, where you can find more information about this change.
  - `resolve_during_rolling_upgrade` (boolean)
  - `_meta` (map string to object)
- `ml_settings` (object[])
  Machine learning-related deprecation warnings.
  - `details` (string)
    Optional details about the deprecation warning.
  - `level` (enum)
    The level property describes the significance of the issue.

Supported values include:
  - `none`
  - `info`
  - `warning`: You can upgrade directly, but you are using deprecated functionality which will not be available or behave differently in the next major version.
  - `critical`: You cannot upgrade without fixing this problem.
    Values: `none`, `info`, `warning`, `critical`
  - `message` (string)
    Descriptive information about the deprecation warning.
  - `url` (string)
    A link to the breaking change documentation, where you can find more information about this change.
  - `resolve_during_rolling_upgrade` (boolean)
  - `_meta` (map string to object)
- `templates` (map string to object)
  Template warnings are sectioned off per template and include deprecations for both component templates and
index templates.
- `ilm_policies` (map string to object)
  ILM policy warnings are sectioned off per policy.
## Code examples

#### Console

```console
GET /_migration/deprecations
```

#### JavaScript

```javascript
const response = await client.migration.deprecations();
```

#### Python

```python
resp = client.migration.deprecations()
```

#### curl

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

#### Java

```java
client.migration().deprecations(d -> d);
```

#### PHP

```php
$resp = $client->migration()->deprecations();
```

#### Ruby

```ruby
response = client.migration.deprecations
```

## Response examples

#### Deprecation info response example1

An abbreviated response from `GET /_migration/deprecations`.

```json
{
  "cluster_settings": [
    {
      "level": "critical",
      "message": "Cluster name cannot contain ':'",
      "url": "https://www.elastic.co/guide/en/elasticsearch/reference/7.0/breaking-changes-7.0.html#_literal_literal_is_no_longer_allowed_in_cluster_name",
      "details": "This cluster is named [mycompany:logging], which contains the illegal character ':'."
    }
  ],
  "node_settings": [],
  "index_settings": {
    "logs:apache": [
      {
        "level": "warning",
        "message": "Index name cannot contain ':'",
        "url": "https://www.elastic.co/guide/en/elasticsearch/reference/7.0/breaking-changes-7.0.html#_literal_literal_is_no_longer_allowed_in_index_name",
        "details": "This index is named [logs:apache], which contains the illegal character ':'."
      }
    ]
  },
  "ml_settings": []
}
```

