---
title: "Contracts with unusual relative volume"
method: GET
path: "/v1/contract/unusual-volume"
tags: ["Contract"]
---

# Contracts with unusual relative volume

`GET /v1/contract/unusual-volume`

Contracts whose volume on the target date is anomalously high
relative to a `avgPeriod`-day baseline. Filters cover RVOL, raw
volume, OI dynamics, premium, IV, moneyness, sweep / multi-leg,
and ticker include / exclude lists. Sortable by `rvol`, `volume`,
`premium`, `vol_oi`, or `oi_change`.

## Query parameters

- `limit` integer
- `min_rvol` number, double
- `avg_period` string
- `min_avg_volume` integer
- `min_premium` number, double
- `ticker` string
- `right` 'C' | 'P'
- `min_dte` integer
- `max_dte` integer
- `min_strike` number, double
- `max_strike` number, double
- `expiration` string, date
- `date` string, date
- `order_by` 'rvol' | 'volume' | 'premium' | 'vol_oi' | 'oi_change'
- `min_vol_oi_ratio` number, double
- `min_oi_change` integer
- `max_oi_change` integer
- `only_sweeps` boolean
- `only_multi_leg` boolean
- `exclude_multi_leg` boolean
- `min_oi_change_pct` number, double
- `min_bid_imbalance` number, double
- `min_ask_imbalance` number, double
- `moneyness` 'ITM' | 'ATM' | 'OTM'
- `min_moneyness_pct` number, double
- `max_moneyness_pct` number, double
- `min_iv` number, double
- `max_iv` number, double
- `exclude_tickers` string

## Response `200`

Contracts ranked by the requested metric.

- UnusualVolumeListSuccess
  - `data` UnusualVolumeItem[], required
    - `symbol` string, required
    - `ticker` string, required
    - `expiration` string, date, required
    - `strike` number, double, required
    - `right` 'C' | 'P', required
    - `dte` integer, required
    - `date` string, date, required
    - `volume` integer, required
    - `avgVolume` number, double, required — Baseline volume over the requested `avgPeriod`.
    - `rvol` number, double, required — `volume / avgVolume`.
    - `premium` number, double, required
    - `openInterest` integer, required
    - `prevOi` integer, required
    - `oiChange` integer, required
    - `oiChangePct` number, double, required
    - `volumeOiRatio` number, double, required
    - `bidVolume` integer, required
    - `askVolume` integer, required
    - `bidPct` number, double, required
    - `askPct` number, double, required
    - `lastPrice` number, double, required
    - `underlyingPrice` number, double, required
    - `iv` number, double, required
    - `moneynessPct` number, double, required
    - `sweepVolume` integer, required
    - `sweepPremium` number, double, required
    - `multiLegVolume` integer, required
    - `multiLegPremium` number, double, required
  - `meta` Meta, required
    - `timestamp` string, date-time, required — Server-side timestamp the response was generated at.
    - `requestId` string, required — Short opaque ID for log correlation.

## Other responses

- `400` — Request validation failed.
- `401` — Missing or invalid API key.
- `402` — The account's shared Skylit credit balance is lower than this route's cost. Top up to continue. Carries `X-Credits-Remaining: 0`.
- `429` — Per-minute rate limit exceeded.

---

[API](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api.md) · [All operations](https://skmtc.net/skylit/apis/flowseeker-skylit-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skylit/flowseeker-skylit-public-api/revisions/3280190b1b24/schema)
