Option Moneyness TimeSeries

API TraderAPI QuantAPI DeveloperRequires options add-on

Track the out-of-the-money (OTM) share of a ticker's options open interest and volume, day by day.

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.

The ticker in the path names the listing that held it on from_date (or to_date when from_date is omitted), so a reused or renamed ticker returns the instrument that traded under it in your window.

Available Data Points:

  • Date: Trading date for the row (YYYY-MM-DD format).
  • OTM Call Pct OI: Percentage (0-100) of call open interest that is out-of-the-money.
  • OTM Call Pct Volume: Percentage (0-100) of call volume that is out-of-the-money.
  • OTM Put Pct OI: Percentage (0-100) of put open interest that is out-of-the-money.
  • OTM Put Pct Volume: Percentage (0-100) of put volume that is out-of-the-money.
  • OTM Call OI: Out-of-the-money call open interest, in contracts — the numerator of OTM Call Pct OI.
  • OTM Call Volume: Out-of-the-money call volume, in contracts — the numerator of OTM Call Pct Volume.
  • OTM Put OI: Out-of-the-money put open interest, in contracts — the numerator of OTM Put Pct OI.
  • OTM Put Volume: Out-of-the-money put volume, in contracts — the numerator of OTM Put Pct Volume.

Side totals

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.

At-the-money strikes

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.

Coverage

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 rather than returned with empty values. A window covering only such dates returns an empty result.

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: Trial keys may be limited to a specific date range and set of regions. Requests outside the allowed regions or entirely outside the allowed date range are rejected; a date window that partially overlaps the allowed range is trimmed to it, reported in meta.restriction.

Get full access! Get a key at app.ortex.com/apis

Path Params
string
required

Where to find the instrument: a venue (exchange symbol, MIC or ISO-2 country) or an identifier scheme (tid, sid, cid, isin, figi). See Identifying an instrument.

string
required

The ticker on that venue, or the value in that scheme. An ISIN, sid, cid or share-class FIGI answers for the main listing only; reference/listings lists the others. See Identifying an instrument.

Query Params
date
required

Inclusive start of the returned date window. Format: YYYY-MM-DD.

Also selects the instrument: the ticker resolves to the listing that held it on the exchange in the URL path on this date. To retrieve a delisted or renamed company, use its former exchange and ticker with a from_date from when it was listed. An identifier path (/stock/isin|figi|sid|cid/<value>/…) resolves at this date too. The instrument block in the response names the company the data belongs to.

date

Inclusive end of the returned date window (defaults to today). Format: YYYY-MM-DD.

integer

Page number within the paginated result set. Must be >= 1. Defaults to 1.

integer

Number of rows per page. The default and the maximum allowed depend on the API tier; a value above the tier maximum is rejected with 400 invalidPageSize.

string
enum
Defaults to json

Response format. "json" (default) or "csv".

Allowed:
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/csv