---
type: api
title: Resolve indices
description: **All methods and paths for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch-serverless/operation/operation-indices-resolve-index
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch-serverless/operation/operation-indices-resolve-index
products:
  - Elasticsearch Serverless
---

# Resolve indices


Availability:

## Paths

- `POST` (also `GET`) `/_resolve/index/{name}`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch-serverless/authentication#apikeyauth)

#### Path Parameters

- `name` (union Name | [] Name)
  Comma-separated name(s) or index pattern(s) of the indices, aliases, and data streams to resolve.
Resources on remote clusters can be specified using the `<cluster>`:`<name>` syntax.

## Description

Resolve the names and/or index patterns for indices, aliases, and data streams.
Multiple patterns and remote clusters are supported.

## Required authorization

* Index privileges: `view_index_metadata`

## Query String Parameters

- `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`
- `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.
- `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.
- `mode` (union IndexMode | [] IndexMode)
  Filter indices by index mode - standard, lookup, time_series, etc. Comma-separated list of IndexMode. Empty means no filter.

Supported values include: `standard`, `time_series`, `logsdb`, `lookup`
  Values: `standard`, `time_series`, `logsdb`, `lookup`

## Request Body

`application/json`

Type: `object`


## Response

`application/json`

- `indices` ([] ResolveIndexItem)
  - `name` (string Name)
  - `aliases` ([] string)
  - `attributes` ([] string)
  - `data_stream` (string)
  - `mode` (enum IndexMode)
    Values: `standard`, `time_series`, `logsdb`, `lookup`
- `aliases` ([] ResolveIndexAliasItem)
  - `name` (string Name)
  - `indices` (string Indices)
- `data_streams` ([] ResolveIndexDataStreamsItem)
  - `name` (string)
  - `timestamp_field` (string Field)
  - `backing_indices` (string Indices)
## Code Examples

#### Console

```console
POST /_resolve/index/f*,remoteCluster1:bar*?expand_wildcards=all
```

#### JavaScript

```javascript
const response = await client.indices.resolveIndex({
  name: "f*,remoteCluster1:bar*",
  expand_wildcards: "all",
});
```

#### Python

```python
resp = client.indices.resolve_index(
    name="f*,remoteCluster1:bar*",
    expand_wildcards="all",
)
```

#### curl

```curl
curl -X POST "$ELASTICSEARCH_URL/_resolve/index/f*,remoteCluster1:bar*?expand_wildcards=all" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY"
```

#### Java

```java
client.indices().resolveIndex(r -> r
    .expandWildcards(ExpandWildcard.All)
    .name(List.of("f*","remoteCluster1:bar*"))
);
```

#### C#

```c#
var response = await client.Indices
    .ResolveIndexAsync(name: new[] { "f*", "remoteCluster1:bar*" }, d1 => d1
        .ExpandWildcards(ExpandWildcard.All)
    );
```

#### PHP

```php
$resp = $client->indices()->resolveIndex([
    "name" => "f*,remoteCluster1:bar*",
    "expand_wildcards" => "all",
]);
```

#### Ruby

```ruby
response = client.indices.resolve_index(
  name: "f*,remoteCluster1:bar*",
  expand_wildcards: "all"
)
```

## Response Examples

#### Resolve index response example1

A successful response from `GET /_resolve/index/f*,remoteCluster1:bar*?expand_wildcards=all`.

```json
{
  "indices": [
    {
      "name": "foo_closed",
      "attributes": [
        "closed"
      ],
      "mode": "standard"
    },
    {
      "name": "freeze-index",
      "aliases": [
        "f-alias"
      ],
      "attributes": [
        "open"
      ]
    },
    {
      "name": "remoteCluster1:bar-01",
      "attributes": [
        "open"
      ]
    }
  ],
  "aliases": [
    {
      "name": "f-alias",
      "indices": [
        "freeze-index",
        "my-index-000001"
      ]
    }
  ],
  "data_streams": [
    {
      "name": "foo",
      "backing_indices": [
        ".ds-foo-2099.03.07-000001"
      ],
      "timestamp_field": "@timestamp"
    }
  ]
}
```

