CuteMarkets Docs

API Reference

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

Docs

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

The MACD is a momentum indicator derived from two exponential moving averages. It highlights trend strength, direction, and potential crossover signals. Each result row contains three values: the MACD line, the signal line, and the histogram (the difference between the two).

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

Use cases: momentum analysis, crossover signals, spotting overbought/oversold conditions, and confirming trend direction.

Example Endpoint

/v1/options/indicators/macd/O:NFLX260402C00075000/?timespan=day&limit=10

Endpoint

bash
GET /v1/options/indicators/macd/{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.
short_windowintegerNoShort EMA length used for the MACD line (commonly 12).
long_windowintegerNoLong EMA length used for the MACD line (commonly 26).
signal_windowintegerNoSmoothing window for the signal line (commonly 9).
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
valuesarrayMACD data points: see fields below.
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}/).

Each object in values contains:

FieldTypeDescription
timestampintegerMillisecond Unix timestamp of the bar.
valuenumberMACD line (short EMA minus long EMA).
signalnumberSignal line (EMA of the MACD line).
histogramnumbervalue minus signal.

Example request

bash
curl \
  "https://api.cutemarkets.com/v1/options/indicators/macd/O:NFLX260402C00075000/?timespan=day&short_window=12&long_window=26&signal_window=9&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

bash
{
  "results": {
    "values": [
      { "timestamp": 1775102400000, "value": 1.5792238252289934, "signal": 1.743386105515799, "histogram": -0.16416228028680568 },
      { "timestamp": 1775016000000, "value": 1.358035555688602,  "signal": 1.7844266755875005, "histogram": -0.42639111989889855 },
      { "timestamp": 1774929600000, "value": 1.2596020108470398, "signal": 1.8910244555622249, "histogram": -0.631422444715185 }
    ]
  },
  "status": "OK",
  "request_id": "cm_6b4abb381e65434da465c527122093d9"
}

MACD-specific behavior

MACD is a two-speed momentum measure. The short EMA reacts first, the long EMA reacts more slowly, and the signal line smooths the difference. On option contracts, that structure can be useful when the contract has enough regular activity to support indicator math, but it can be misleading on contracts that trade only occasionally.

For options, interpret MACD beside the underlying, implied volatility, and liquidity. A bullish-looking MACD histogram on a call can come from underlying movement, IV expansion, or one sparse premium print. A bearish histogram on a put can reflect the opposite mechanics. The indicator is easier to trust when quotes are recent, spreads are controlled, and the contract has enough volume in the lookback period.

CheckMACD guidanceWhy it matters
Window fitKeep short_window lower than long_window and store both values.Reproducibility depends on the exact smoothing inputs.
Contract liquidityRequire recent quotes or trades before ranking contracts.Sparse prints can distort the two EMA lines.
Signal confirmationCompare histogram changes with IV, delta, and underlying movement.Option premiums move for several reasons at once.

Implementation note

When MACD drives a scanner or alert, persist the full parameter set: ticker, timespan, short_window, long_window, signal_window, series_type, and adjusted. Pair the MACD value with the latest quote timestamp and spread so a later review can distinguish a real momentum change from an illiquid-contract artifact.

MACD is only as reliable as the aggregates behind it, so connect this endpoint to Aggregates, Stock Aggregates and Indicators, and Backtesting Data Quality Checklist. Track fast EMA, slow EMA, signal line, histogram, warm-up, split adjustment, and session timestamp rules before using it as a trading signal.

MACD implementation notes

MACD needs more metadata than a value column. Store fast length, slow length, signal length, source timespan, adjusted flag, warm-up length, and the bar timestamp used for each calculation. If a UI shows MACD beside current stock snapshots, label whether the indicator came from completed historical bars or a live refresh path.

MACD signals often feed momentum screens. When a momentum screen hands a ticker into options research, carry the stock signal timestamp into Expirations, Option Chain, and Quotes. That timestamp prevents the option selector from using a later chain snapshot or Greek value. The Stock and Options Data Join Workflow is the safer model than a date-only join.

The histogram is not an execution signal by itself. A production screen still needs market session labels, halted-symbol handling, stale snapshot labels, and corporate-action awareness from Stock Reference. For research, log rejected bars when the warm-up is incomplete or the requested window crosses a split without the expected adjustment policy.

Use MACD sparingly in options scanners. Short-dated option fills are usually more sensitive to spread, quote age, and IV than to small indicator changes. If a MACD filter selects a contract, the artifact should still include OCC symbol, DTE bucket, bid, ask, quote timestamp, open interest, and reject reasons.

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.