Skip to main content
Loading market data…
GET/api/v1/options/{underlying}/pcr/historyStandard tier+ · 300 req/min

Put/Call ratio history — OI PCR + volume PCR over N days.

Derived from `options_chain` snapshots — each distinct ts gives one aggregate call / put OI + volume pair, from which OI-PCR and Volume-PCR are computed. Downsampled to `maxPoints` so SVG charts render crisply.

Path parameters

Segments of the URL path, validated server-side.

NameTypeRequiredDefaultDescription
underlyingenumrequired
BTC or ETH.
BTCETH

Query parameters

All query parameters are optional unless marked required.

NameTypeRequiredDefaultDescription
daysnumberoptional30
Lookback window (1-365).
maxPointsnumberoptional180
Downsample cap (10-2000).

Response shape

Always wrapped in the standard envelope. Nullable fields are explicitly marked — treat missing numeric data as a real data-source gap, not as an error.

data payloadtypescript
// Wrapped in the standard envelope:
// {
//   data: /* shape below */,
//   meta?: { total?: number; limit?: number; offset?: number; ... }
// }

{ underlying, days, maxPoints, current, history: Array<{ ts, oiPcr, volPcr }>, byExpiry }

Example

Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.

Requestbash
curl -sS "http://localhost:3000/api/v1/options/BTC/pcr/history?days=14"
Responsejson
{ "data": { "underlying": "BTC", "days": 14, "maxPoints": 180, "current": { "oiPcr": 0.83, "volPcr": 0.72 }, "history": [], "byExpiry": [] }, "meta": { "total": 0, "days": 14 } }

Next

Check the error code reference, or get an API key to try the request against your own account.