---
title: "Daily flow overview"
method: GET
path: "/options-flow"
tags: ["Options Flow"]
---

# Daily flow overview

`GET /options-flow`

## Request

- Base URL: `https://stockmarketscan.com/api/v1`
- URL: `https://stockmarketscan.com/api/v1/options-flow`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
  - API key in header `X-RapidAPI-Key`

Aggregated unusual-options flow per symbol for one trading day, plus
market-wide totals for that day in `meta.market_stats`. A date without
data returns an empty `data` array. Orders: `streak` =
consecutive_days desc, total_volume desc, symbol asc; `volume` =
total_volume desc, symbol asc; `callput` = call/put volume ratio desc,
symbol asc; `premium` = call + put premium desc, symbol asc. Nulls sort
last. The cursor pins the trading day. Pro tier required.

## Query parameters

- `date` string, date
- `sort` 'streak' | 'volume' | 'callput' | 'premium'
- `limit` integer
- `cursor` string

## Headers

- `If-None-Match` string

## Response `200`

Options flow for one day

- object
  - `data` OptionsFlowDay[], required
    - `symbol` string, required
    - `data_date` string, date, required
    - `stock_price` number, nullable, required: Underlying price.
    - `call_contracts` integer, nullable, required: Number of unusual call contracts.
    - `call_volume` integer, nullable, required
    - `call_open_interest` integer, nullable, required
    - `call_avg_vol_oi` number, nullable, required: Average volume/OI ratio of the calls.
    - `call_avg_iv` number, nullable, required: Average implied volatility of the calls, in percent.
    - `call_avg_delta` number, nullable, required
    - `call_total_premium` number, nullable, required: Sum of last_price * volume * 100 for calls, USD.
    - `put_contracts` integer, nullable, required
    - `put_volume` integer, nullable, required
    - `put_open_interest` integer, nullable, required
    - `put_avg_vol_oi` number, nullable, required
    - `put_avg_iv` number, nullable, required
    - `put_avg_delta` number, nullable, required: Average absolute delta of the puts.
    - `put_total_premium` number, nullable, required
    - `total_volume` integer, nullable, required
    - `total_oi` integer, nullable, required
    - `call_put_volume_ratio` number, nullable, required: Call volume divided by put volume. Null without puts.
    - `call_put_oi_ratio` number, nullable, required: Call open interest divided by put open interest.
    - `net_delta` number, nullable, required
    - `avg_days_to_expiry` number, nullable, required
    - `consecutive_days` integer, nullable, required: Consecutive trading days up to this one with the same call/put regime.
  - `meta` object, required: Response metadata. Endpoint-specific keys are documented per operation.
    - `as_of` string, date, nullable, required: Trading date of the underlying data. Null when there is no data.
    - `generated_at` string, date-time, required: When this response was produced (RFC 3339 UTC).
    - `pagination` Pagination, required: Present on list endpoints. Follow `next_cursor` until it is null.
      - `limit` integer, required: Page size that was applied.
      - `next_cursor` string, nullable, required: Cursor for the next page; null on the last page.
      - `total` integer: Rows across all pages. Only where it is cheap and exact.
    - `parameters` object, required: Parameters applied after defaults.
      - `date` string, date, nullable, required
      - `sort` 'streak' | 'volume' | 'callput' | 'premium', required
      - `limit` integer, required
    - `market_stats` OptionsFlowMarketStats, required: Market-wide totals for the day.
      - `total_symbols` integer, required
      - `total_market_volume` number, nullable, required
      - `total_call_volume` number, nullable, required
      - `total_put_volume` number, nullable, required
      - `market_call_put_ratio` number, nullable, required
      - `avg_streak` number, nullable, required
      - `max_streak` integer, nullable, required
    - `available_dates` string[], required: Up to 60 most recent trading dates with data, newest first.

## Other responses

- `304`: Not modified since the ETag in `If-None-Match`. No body; not counted against your quota.
- `400`: Invalid parameter, cursor or body. Not counted against your quota.
- `401`: Missing or invalid credentials.
- `403`: Your plan does not include this endpoint or screener. Not counted against your quota.
- `429`: Rate limit or quota exceeded. `Retry-After` says when to retry.
- `500`: Unexpected server error. Quote `request_id` when reporting it.
- `503`: A dependency (database or key store) is unavailable.

---

[API](https://skmtc.dev/stockmarketscan/apis/stockmarketscan-api.md) · [All operations](https://skmtc.dev/stockmarketscan/apis/stockmarketscan-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stockmarketscan/apis/stockmarketscan-api/revisions/2cca1387a5fe?raw)
