# Exponential Moving Average (EMA)

The **Exponential Moving Average** weights recent prices more heavily than a Simple Moving Average, making it more responsive to new price action. It is widely used for trend detection, EMA crossover signals, and dynamic support/resistance levels.

<div data-try-url="/v1/options/indicators/ema/O:NFLX260402C00075000/?timespan=day&window=20&limit=10"></div>

## Endpoint

```
GET /v1/options/indicators/ema/{ticker}
```

### Path parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `ticker` | string | Yes | Full options ticker (for example `O:NFLX260402C00075000`). |

### Query parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `timestamp` | string | No | Anchor time: `YYYY-MM-DD` or **millisecond** Unix timestamp. |
| `timestamp.gte` | string | No | Range lower bound (date or ms timestamp). |
| `timestamp.gt` | string | No | Strictly greater. |
| `timestamp.lte` | string | No | Range upper bound. |
| `timestamp.lt` | string | No | Strictly less. |
| `timespan` | string | No | Aggregate bar width: `minute`, `hour`, `day`, `week`, `month`, `quarter`, or `year`. |
| `adjusted` | boolean | No | Use split-adjusted aggregates when `true` (default). `false` uses non-adjusted bars. |
| `window` | integer | No | Number of bars in the moving average window (for example `20` with `timespan=day` → 20-day EMA). |
| `series_type` | string | No | Which aggregate field drives the calculation (commonly `close`). |
| `expand_underlying` | boolean | No | When `true`, `results.underlying` includes an `aggregates` array and a `url` for the matching [aggregates](/docs/aggregates) range. When `false` or omitted, `underlying` is omitted. |
| `order` | string | No | Sort order of points by timestamp (`asc` / `desc`). |
| `limit` | integer | No | Max points returned. Default **10**, maximum **1000**. |
| `page` | string | No | Pagination continuation: use the URL in `next_url`, or pass the `page` query value from that URL here. |

### Response

| Field | Type | Description |
| --- | --- | --- |
| `status` | string | Outcome (for example `OK`). |
| `request_id` | string | Unique identifier for this request, assigned by CuteMarkets. |
| `results` | object | Indicator payload. |
| `next_url` | string | When more values exist, full URL for the next page. |

Use `limit` and timestamp filters per page; follow `next_url` when present.

`results` contains:

| Field | Type | Description |
| --- | --- | --- |
| `values` | array | Objects with `timestamp` (ms) and `value` (EMA at that time). |
| `underlying` | object | **Only when** you pass `expand_underlying=true`. Contains `aggregates` and `url`: an absolute URL to the same contract’s aggregates over the inferred date range (for example `https://api.cutemarkets.com/v1/options/aggs/{ticker}/1/day/{from}/{to}/`). |

### Example request

```bash
curl \
  "https://api.cutemarkets.com/v1/options/indicators/ema/O:NFLX260402C00075000/?timespan=day&window=20&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Sample response

```json
{
  "results": {
    "values": [
      { "timestamp": 1775102400000, "value": 18.49000953885931 },
      { "timestamp": 1775016000000, "value": 18.046852648212923 },
      { "timestamp": 1774929600000, "value": 17.767573979603757 }
    ]
  },
  "status": "OK",
  "request_id": "cm_2de95a6462ce46928c2aabf152f813cf"
}
```
