CuteMarkets Docs

API Reference

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

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

The Simple Moving Average smooths option (aggregate) prices over a fixed number of periods, useful for trend context, crossover ideas, and level-style analysis.

Example Endpoint

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

Endpoint

bash
GET /v1/options/indicators/sma/{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 (for example minute, hour, day, week, month, quarter, year).
adjustedbooleanNoUse split-adjusted aggregates when true (default). false uses non-adjusted bars.
windowintegerNoNumber of bars in the moving average (e.g. 20 with timespan=day → 20-day SMA).
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. See Response.
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 (SMA at that time).
underlyingobjectOnly when you pass expand_underlying=true. Contains aggregates (OHLC bars used in the calculation) 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/sma/O:NFLX260402C00075000/?timespan=day&window=20&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

bash
{
  "results": {
    "values": [
      { "timestamp": 1775016000000, "value": 19.801499999999997 },
      { "timestamp": 1774929600000, "value": 20.021499999999996 },
      { "timestamp": 1774843200000, "value": 20.137499999999996 }
    ]
  },
  "status": "OK",
  "request_id": "cm_54709e440a0a40f6988c4cede291c443"
}

SMA-specific behavior

SMA gives every bar in the window equal weight. That makes it slower than EMA but easier to reason about when the goal is a stable baseline. For option contracts, SMA is most useful after the contract has enough traded bars to make the average meaningful.

DecisionSMA guidanceWhy it matters for options
Window lengthUse shorter windows for short-dated contracts and longer windows for liquid, longer-lived contracts.A 20-day window can be meaningless for a newly listed weekly contract.
Series typeStart with close, then test vwap when trade quality matters.Sparse contracts can have noisy closes.
Contract filterCheck volume, open interest, and bid/ask width before trusting the line.A smooth SMA on an illiquid contract can still be untradeable.

Implementation note

If a scanner compares option SMA values across contracts, store the exact ticker, timespan, window, series_type, and adjusted flag with the signal. Without those parameters, a later investigation cannot tell whether two contracts were measured on the same basis.

Practical interpretation for options

SMA is best treated as a stable baseline. Because every bar in the window receives the same weight, the line changes only when new bars enter the window and old bars leave it. That makes SMA slower than EMA, but it also makes the result easier to audit when a research notebook needs to explain why a contract was selected.

For option contracts, the main risk is incomplete history. A newly listed weekly option may not have enough observations for a long window, while a longer-dated monthly contract may have enough bars but limited current liquidity. A scanner should report whether the full window was available and should avoid comparing a full-window SMA against a partial-window SMA without labeling the difference.

SMA quality checks

Before using SMA in a model, verify:

  • The contract has enough historical bars to fill the requested window.
  • The selected timespan matches the holding period of the strategy.
  • The bar field used by series_type is appropriate for the question.
  • The current quote market is liquid enough for the signal to be actionable.

Those checks keep SMA from becoming a smooth-looking number that hides missing observations, stale closes, or contracts that cannot be traded at a reasonable spread.

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.