CuteMarkets Docs

API Reference

Everything you need to integrate market data, build faster, and scale.

Docs

Tip: open /docs/indicators-ema.md directly for raw markdown (easy copy/paste into an LLM).

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.

Use EMA with Aggregates, Options Chain API, Historical Options Data API, Backtesting Data Quality Checklist, and Stock Aggregates and Indicators.

Example Endpoint

/v1/options/indicators/ema/O:NFLX260402C00075000/?timespan=day&window=20&limit=10

Endpoint

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

Path parameters

ParameterTypeRequiredDescription
tickerstringYesFull options ticker (for example O:NFLX260402C00075000).

Query parameters

ParameterTypeRequiredDescription
timestampstringNoAnchor time: YYYY-MM-DD or millisecond Unix timestamp.
timestamp.gtestringNoRange lower bound (date or ms timestamp).
timestamp.gtstringNoStrictly greater.
timestamp.ltestringNoRange upper bound.
timestamp.ltstringNoStrictly less.
timespanstringNoAggregate bar width: minute, hour, day, week, month, quarter, or year.
adjustedbooleanNoUse split-adjusted aggregates when true (default). false uses non-adjusted bars.
windowintegerNoNumber of bars in the moving average window (for example 20 with timespan=day → 20-day EMA).
series_typestringNoWhich aggregate field drives the calculation (commonly close).
expand_underlyingbooleanNoWhen true, results.underlying includes an aggregates array and a url for the matching aggregates range. When false or omitted, underlying is omitted.
orderstringNoSort order of points by timestamp (asc / desc).
limitintegerNoMax points returned. Default 10, maximum 1000.
pagestringNoPagination continuation: use the URL in next_url, or pass the page query value from that URL here.

Response

FieldTypeDescription
statusstringOutcome (for example OK).
request_idstringUnique identifier for this request, assigned by CuteMarkets.
resultsobjectIndicator payload.
next_urlstringWhen more values exist, full URL for the next page.

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

results contains:

FieldTypeDescription
valuesarrayObjects with timestamp (ms) and value (EMA at that time).
underlyingobjectOnly 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

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

EMA-specific behavior

EMA gives more weight to recent bars. That makes it faster than SMA when an option price changes quickly around earnings, macro events, or expiration week. The tradeoff is that EMA can react to noisy prints in thin contracts, so it should be paired with liquidity and quote-quality checks.

DecisionEMA guidanceWhy it matters for options
ResponsivenessUse EMA when recent movement should dominate the signal.Short-dated options can reprice quickly as delta and IV change.
Noise controlRequire volume or quote evidence before using a crossover.One sparse print can move an EMA more than an SMA.
PairingCompare EMA with SMA or MACD for confirmation.A single fast line can overreact to microstructure noise.

Implementation note

When a dashboard displays EMA beside option chain fields, label the source bar interval clearly. A 20 period EMA on daily bars and a 20 period EMA on five-minute bars are different signals even if the label looks similar.

Practical interpretation for options

EMA is most useful when the recent bars are more informative than older bars. That is common for contracts near earnings, index events, macro releases, or the final weeks before expiration. In those windows, the option premium can change because the underlying moved, implied volatility moved, time value compressed, or the spread widened. The EMA does not explain which cause drove the move, but it gives a responsive line that can be compared with quotes, trades, IV, and open interest.

Use EMA as an input to a richer decision, not as a standalone signal. A rising EMA on a contract with tight quotes and steady volume means something different from a rising EMA created by one isolated print. For production scanners, store the bar timestamp, window, timespan, series_type, quote age, and spread at the same time as the EMA value.

EMA quality checks

Before ranking contracts by EMA behavior, apply a few filters:

  • Exclude contracts with very few bars in the lookback window.
  • Require recent bid/ask evidence when the signal will drive a fill model.
  • Compare the EMA slope with underlying movement and IV movement.
  • Treat very short-dated contracts separately from longer-dated contracts.

These checks make the indicator easier to defend when a signal looks strong in a chart but weak in a real execution workflow.

EMA calculations should be sourced from Aggregates, compared with Stock Aggregates and Indicators, and logged in the Backtesting Data Model. Keep OHLCV, lookback window, smoothing factor, warm-up period, timestamp alignment, and adjusted aggregate policy consistent across research and production.

EMA implementation notes

EMA output depends on source bars, timespan, adjusted setting, window length, warm-up history, and timestamp alignment. Store those parameters with every EMA value. If a screen later joins EMA state into Option Chain or Contracts, pass the stock signal timestamp beside the option request so the option leg can be audited against the underlying signal that created it.

EMA reacts faster than SMA, which makes it useful for watchlists and opening-range context but also easier to overfit. A product screen should label incomplete warm-up windows, split-adjusted bars, extended-hours policy, and stale snapshot state. For cross-product workflows, pair this page with Stock and Options Data Join Workflow, Stock Aggregates and Indicators, and Market Hours, Timestamps, and Timezones.

For backtests, avoid calculating an EMA from bars that were not complete at the signal timestamp. A 5-minute bar can update several times before close, while an indicator value based on the completed bar belongs after the interval ends. Store bar_end, calculation_time, and signal_time separately when the strategy enters options after an EMA cross or pullback.

Terminology

Terms to keep straight on this page

Market-data APIs use similar words for different objects. These links keep the docs page connected to the precise CuteMarkets workflow and related reference material.

Next steps

Move from the docs into the product workflow

If you are evaluating the API rather than implementing a specific endpoint right now, the product pages map live and historical workflows for stocks, options, and WebSockets.