---
title: indexOf
description: |
  Returns the position of the first occurrence of a substring within a string.

  The index is zero-based. If the substring is not found, the function returns `-1`.
url: https://coralogix.com/docs/dataprime/language-reference/functions-reference/string/indexof/
product: dataengine
feature: DataPrime Language
feature_id: dataprime-language
feature_identifier: dataengine/dataprime-language
last_updated: '2026-10-21'
---

# `indexOf`

## Description

Returns the position of the first occurrence of a substring within a string.

The index is zero-based. If the substring is not found, the function returns `-1`.

## Syntax

Like many functions in DataPrime, `indexOf` supports<!-- --> [two notations](https://coralogix.com/docs/dataprime/language-reference/functions-reference.md),<!-- --> **function** and **method**. These interchangeable forms allow flexibility in how you structure expressions.

* Function notation
* Method notation

```
indexOf(value: string, substring: string): number
```

```
(value: string).indexOf(substring: string): number
```

## Arguments

| Name        | Type     | Required | Description                          |
| ----------- | -------- | -------- | ------------------------------------ |
| `value`     | `string` | **true** | The full string to search (haystack) |
| `substring` | `string` | **true** | The substring to locate (needle)     |

## Example

**Extract a value from a key-value style string**

Consider the following document:

```
{

    "msg": "result=Some value"

}
```

Use `indexOf` to find the position of `=` and then extract everything after it.

### Example query

* Function notation
* Method notation

```
create index_of_value from (indexOf(msg, '='))
```

```
create index_of_value from (msg.indexOf('='))
```

### Example output

With the index known, you can extract the substring:

```
create value from msg.substr(index_of_value)
```

Result:

```
{

    "msg": "result=Some value",

    "index_of_value": 6,

    "value": "Some value"

}
```
