CuteMarkets Docs

API Reference

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

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

Options aggregate endpoints cover: custom-range OHLC bars (many candles per request), the previous completed session as one daily bar, and a single-calendar-day open / close snapshot with pre-market and after-hours prices.

Quick definition: options aggregates are trade-derived OHLC bars. They summarize price path and activity, but they do not replace quote history when the question is executable bid/ask context.

Related guide: Options Aggregates API Guide

When aggregates are the right data

Use aggregates when the workflow needs chartable history, indicator inputs, daily reports, event-study windows, or compact activity summaries. A one-minute or daily aggregate is easier to store and scan than every trade, and the n and v fields help show whether the bar came from a few isolated prints or a more active period.

Aggregates are not the same as tradable quotes. A bar high, low, open, or close is based on qualifying trades inside the interval. A strategy that buys exactly at a bar low or exits exactly at a bar high is usually making an optimistic assumption unless it can also show quote evidence around that timestamp.

Research needAggregate valueExtra evidence to store
Build indicatorsOHLC, VWAP, volume, trade countBar width, date range, adjustment flag, and sort order.
Compare daily activityPrevious-day bar or custom daily rangeContract ticker, expiration, and whether missing dates had no qualifying trades.
Backtest signal generationCompleted bars onlySignal timestamp and the exact bar available before the decision.
Explain a fillAggregates are context, not proofNearest quote window and the selected fill rule.
Audit sparse contractsn, v, and missing intervalsReject or label bars with too few trades for the strategy.

Failure modes

The biggest mistake is treating an aggregate bar as an executable path. A daily high can occur before the signal, a low can be a single odd print, and an interval with no bar can simply mean no qualifying trades occurred. Keep missing bars explicit instead of filling them with zeros, and do not assume every contract has continuous minute history.

For backtests, calculate signals from completed bars and execute using quote-aware rules after the signal time. Store the request URL, adjusted setting, pagination sequence, and the exact returned bars so another developer can reproduce the result.

Custom range bars

Retrieve custom-range OHLC (open, high, low, close) bars plus volume and trade counts for an options contract. Bars are built from qualifying trades in Eastern Time (ET). Intervals with no qualifying trades are omitted from the series: those gaps mean no trading in that window, not an API error.

Use this for charts, technical analysis, backtests, and research.

Example Endpoint

/v1/options/aggs/O:NFLX260402C00075000/1/day/2026-01-01/2026-04-01/?limit=10

Endpoint (custom range)

bash
GET /v1/options/aggs/{ticker}/{multiplier}/{timespan}/{from_date}/{to_date}

Path parameters

ParameterTypeRequiredDescription
tickerstringYesOptions contract ticker (for example O:NFLX260402C00075000).
multiplierintegerYesSize of each bar relative to timespan (for example 1 with day for daily bars, 5 with minute for five-minute bars).
timespanstringYesBar width. Typical values: minute, hour, day, week, month, quarter, year. Unsupported values return an error.
from_datestringYesStart of the range: YYYY-MM-DD or Unix time in milliseconds as a string.
to_datestringYesEnd of the range: same formats as from_date.

Query parameters

ParameterTypeRequiredDescription
adjustedbooleanNoWhen true (default), bars are split-adjusted. Set false for raw (non-adjusted) aggregates.
sortstringNoOrder by bar timestamp: asc (oldest first) or desc (newest first).
limitintegerNoCaps how many base aggregates (minute or day) the server reads to produce the returned bars. Default 5000, maximum 10000. Higher values return more complete long-range series at the cost of more work per request.
pagestringNoPagination continuation: use the URL in next_url, or pass the page query value from that URL here.

Response

Top-level fields:

FieldTypeDescription
statusstringOutcome of the request (for example OK).
request_idstringUnique identifier for this request, assigned by CuteMarkets.
tickerstringContract symbol for this response.
adjustedbooleanWhether these bars are split-adjusted.
queryCountintegerNumber of base aggregates used to build this response.
resultsCountintegerNumber of bars returned in results.
countintegerNumber of bars in this response; typically matches resultsCount and the length of results.
resultsarrayOHLC bar objects (see below).
next_urlstringWhen more bars exist for the range, full URL for the next page.

Each element of results:

FieldTypeDescription
onumberOpen price for the window.
hnumberHigh price.
lnumberLow price.
cnumberClose price.
vnumberVolume in the window.
vwnumberVolume-weighted average price (VWAP).
tintegerStart of the bar as Unix time, milliseconds.
nintegerNumber of trades in the window.

Example request

bash
curl \
  "https://api.cutemarkets.com/v1/options/aggs/O:NFLX260402C00075000/1/day/2026-01-01/2026-04-01/?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

More examples:

bash
# Newest bars first
curl \
  "https://api.cutemarkets.com/v1/options/aggs/O:NFLX260402C00075000/1/day/2026-01-01/2026-04-01/?limit=10&sort=desc" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Not split-adjusted
curl \
  "https://api.cutemarkets.com/v1/options/aggs/O:NFLX260402C00075000/1/day/2026-01-01/2026-04-01/?limit=10&adjusted=false" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

bash
{
  "ticker": "O:NFLX260402C00075000",
  "adjusted": true,
  "queryCount": 10,
  "resultsCount": 10,
  "count": 10,
  "results": [
    {
      "c": 5.05,
      "h": 6.2,
      "l": 5,
      "n": 9,
      "o": 6.2,
      "t": 1770872400000,
      "v": 18,
      "vw": 5.2461
    },
    {
      "c": 5.45,
      "h": 5.54,
      "l": 5,
      "n": 33,
      "o": 5.5,
      "t": 1770958800000,
      "v": 642,
      "vw": 5.3322
    }
  ],
  "status": "OK",
  "request_id": "cm_ac2d5134817a41a3987c2da8a79b57a7"
}

Daily open and close

For a single calendar date, fetch regular-session open, high, low, close, and volume, plus pre-market and after-hours prices when available. Useful for daily performance, historical snapshots, extended-hours context, and portfolio tracking.

Example Endpoint

/v1/options/open-close/O:NFLX260402C00075000/2026-03-10/

Endpoint (daily summary)

bash
GET /v1/options/open-close/{ticker}/{date}

Path parameters

ParameterTypeRequiredDescription
tickerstringYesOptions contract ticker (for example O:NFLX260402C00075000).
datestringYesSession date, YYYY-MM-DD.

Query parameters

ParameterTypeRequiredDescription
adjustedbooleanNoWhen true (default), prices are split-adjusted. Set false for non-adjusted values.

Response

The payload is a flat object and always includes request_id.

FieldTypeDescription
statusstringOutcome of the request (for example OK).
request_idstringIdentifier assigned by CuteMarkets.
symbolstringOptions contract ticker for this row.
fromstringThe requested date (YYYY-MM-DD).
opennumberRegular-session open.
highnumberRegular-session high.
lownumberRegular-session low.
closenumberRegular-session close.
volumenumberShare volume for the session.
preMarketnumberPre-market price (often the first print in that session), when present.
afterHoursnumberAfter-hours close or last print, when present.
otcbooleanIncluded and true only when the aggregate is for an OTC symbol; omitted when false.
adjustedbooleanSplit-adjustment flag when included in the payload.

Example request

bash
curl \
  "https://api.cutemarkets.com/v1/options/open-close/O:NFLX260402C00075000/2026-03-10/" \
  -H "Authorization: Bearer YOUR_API_KEY"
bash
curl \
  "https://api.cutemarkets.com/v1/options/open-close/O:NFLX260402C00075000/2026-03-10/?adjusted=false" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

bash
{
  "afterHours": 21.98,
  "close": 21.98,
  "from": "2026-03-10",
  "high": 21.98,
  "low": 21.98,
  "open": 21.98,
  "preMarket": 21.98,
  "status": "OK",
  "symbol": "O:NFLX260402C00075000",
  "volume": 2,
  "request_id": "cm_a1b2c3d4e5f6478990a1b2c3d4e5f678"
}

Previous day bar

Returns the prior trading day’s daily OHLC bar for one options contract, open, high, low, close, volume, VWAP, trade count, and bar start timestamp. Use it for baselines, technical context, daily reports, and comparing “today” to the last session.

Example Endpoint

/v1/options/aggs/O:NFLX260402C00075000/prev/

Endpoint (previous day)

bash
GET /v1/options/aggs/{ticker}/prev

Path parameters

ParameterTypeRequiredDescription
tickerstringYesOptions contract ticker (for example O:NFLX260402C00075000).

Query parameters

ParameterTypeRequiredDescription
adjustedbooleanNoWhen true (default), the bar is split-adjusted. Set false for non-adjusted values.

Response

Same envelope as custom range bars: status, request_id, ticker, adjusted, queryCount, resultsCount, results (typically one object), and often count (bar count, usually 1).

Each element of results uses the same OHLC fields as custom-range bars (o, h, l, c, v, vw, t, n). Some responses also include T (string), the contract ticker on the bar object.

Example request

bash
curl \
  "https://api.cutemarkets.com/v1/options/aggs/O:NFLX260402C00075000/prev/" \
  -H "Authorization: Bearer YOUR_API_KEY"
bash
curl \
  "https://api.cutemarkets.com/v1/options/aggs/O:NFLX260402C00075000/prev/?adjusted=false" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

bash
{
  "adjusted": true,
  "count": 1,
  "queryCount": 1,
  "results": [
    {
      "T": "O:NFLX260402C00075000",
      "c": 22.7,
      "h": 22.7,
      "l": 22.07,
      "n": 4,
      "o": 22.07,
      "t": 1775160000000,
      "v": 4,
      "vw": 22.42
    }
  ],
  "resultsCount": 1,
  "status": "OK",
  "ticker": "O:NFLX260402C00075000",
  "request_id": "cm_a1b2c3d4e5f6478990a1b2c3d4e5f678"
}

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.