---
page_title: index - Functions - Configuration Language
description: The index function finds the element index for a given value in a list.
---

# `index` Function

`index` finds the element index for a given value in a list.

```hcl
index(list, value)
```

The returned index is zero-based. This function produces an error if the given
value is not present in the list.

## Examples

```
> index(["a", "b", "c"], "b")
1
```

## Related Functions

* [`element`](/terraform/language/functions/element) retrieves a particular element from a list given
  its index.
