CuteMarkets Docs

API Reference

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

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

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.

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"
}

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 the live, historical, and chain workflows directly.