API to retrieve the out-of-the-money (OTM) share of options open interest and volume for a given ticker, as a daily timeseries.
A call is out-of-the-money when its strike is above the closing price on
that date; a put when its strike is below it. All expiries are included, and
each percentage is measured against that side's total open interest (or volume) for the
same date.
Available Data Points:
- date: Trading date for the row (in YYYY-MM-DD format).
- otmCallPctOi: Percentage (0–100) of call open interest which is out-of-the-money.
- otmCallPctVolume: Percentage (0–100) of call volume which is out-of-the-money.
- otmPutPctOi: Percentage (0–100) of put open interest which is out-of-the-money.
- otmPutPctVolume: Percentage (0–100) of put volume which is out-of-the-money.
- otmCallOi: Out-of-the-money call open interest, in contracts — the numerator of otmCallPctOi.
- otmCallVolume: Out-of-the-money call volume, in contracts — the numerator of otmCallPctVolume.
- otmPutOi: Out-of-the-money put open interest, in contracts — the numerator of otmPutPctOi.
- otmPutVolume: Out-of-the-money put volume, in contracts — the numerator of otmPutPctVolume.
The full side totals are not returned, but follow directly from the fields above:
for example callOi = otmCallOi ÷ (otmCallPctOi ÷ 100).
Nulls: a percentage is null when that side had no open interest (or no
volume) on that date — the share is undefined rather than zero. The out-of-the-money
totals beside it are still returned, and the other side is unaffected, so a ticker with puts
but no calls still yields a row with its put figures populated.
Note: classification is strict on both sides, so a strike landing exactly on the
closing price counts as neither out-of-the-money nor in-the-money. The complement of these
figures is therefore "in-the-money or at-the-money"; the exactly-at-the-money bucket
is a very small share of open interest.
Dates are returned only where the figures are available: a date with no options data, or with no closing price to measure strikes against, is omitted from the response rather than returned with empty values. A request covering only such dates returns no rows.
Try it out! You can test the API with the trial key TEST. Simply include it in your request headers; either here, or add the header "Ortex-Api-Key": "TEST" to your http request.
Trial key restrictions: A list of randomly selected rows will be returned
Get full access! Get a key at app.ortex.com/apis
400Invalid request parameters
403Not authorized
404Data not found
429Rate limit exceeded
500Internal server error
