API reference / Options

Options

Options chains and per-contract history.

2 endpoints. Pay per call in USDC via x402 with no account, or get unlimited calls for $99/mo. Every response is shaped { ticker, data, source, as_of }.

GET/api/v1/options/{ticker}$0.02

Options chain for a US stock: every contract with strike, expiration, and call/put type

The options chain for a US-listed underlying: every listed contract with its strike price, expiration date, call or put type, exercise style, contract ticker, and shares per contract. Filter with ?expiration_date=YYYY-MM-DD, ?contract_type=call|put, ?strike_price=, ?expired=true|false, and ?limit=. Use to discover which option contracts exist before pulling price history.

Example request
GET /api/v1/options/AAPL
Response type (TypeScript)
interface OptionsResponse {
  ticker: string;
  data: {
    count: number;
    contracts: Array<{
      contract_ticker: string;
      type: string;
      strike: number;
      expiration_date: string;
      exercise_style: string;
      shares_per_contract: number;
      primary_exchange: string;
      cfi: string;
    }>;
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "AAPL",
  "data": {
    "count": 12,
    "contracts": [
      {
        "contract_ticker": "O:AAPL260601C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-01",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260603C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-03",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260605C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-05",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260608C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-08",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260610C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-10",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260612C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-12",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260615C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-15",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260618C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-18",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260626C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-06-26",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260702C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-07-02",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260710C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-07-10",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      },
      {
        "contract_ticker": "O:AAPL260717C00310000",
        "type": "call",
        "strike": 310,
        "expiration_date": "2026-07-17",
        "exercise_style": "american",
        "shares_per_contract": 100,
        "primary_exchange": "BATO",
        "cfi": "OCASPS"
      }
    ]
  },
  "source": "x402stock",
  "as_of": "2026-06-01T23:53:59.701Z"
}
GET/api/v1/options-aggregates/{contract}$0.02

Historical OHLC bars for a single option contract

Historical OHLCV price bars for one option contract over any date range. Pass the option contract ticker in the path (e.g. O:AAPL260620C00150000) and tune ?multiplier=, ?timespan=minute|hour|day|week|month, ?from= and ?to= (optional; default to the trailing year), ?adjusted=, ?sort=, and ?limit=. Use for backtesting or charting a single option's price history.

Example request
GET /api/v1/options-aggregates/O:AAPL260116C00150000
Response type (TypeScript)
interface OptionsAggregatesResponse {
  ticker: string;
  data: {
    bars: Array<{
      open: number;
      high: number;
      low: number;
      close: number;
      volume: number;
      vwap: number;
      trade_count: number;
      timestamp: string;
    }>;
    count: number;
    adjusted: boolean;
  };
  source: string;
  as_of: string;
}
Example response (click to expand)
{
  "ticker": "O:AAPL260618C00310000",
  "data": {
    "bars": [
      {
        "open": 0.6,
        "high": 0.64,
        "low": 0.54,
        "close": 0.64,
        "volume": 316,
        "vwap": 0.5794,
        "trade_count": 39,
        "timestamp": "2026-04-01T04:00:00.000Z"
      },
      {
        "open": 0.6,
        "high": 0.65,
        "low": 0.5,
        "close": 0.58,
        "volume": 98,
        "vwap": 0.5945,
        "trade_count": 25,
        "timestamp": "2026-04-02T04:00:00.000Z"
      },
      {
        "open": 0.58,
        "high": 0.91,
        "low": 0.58,
        "close": 0.74,
        "volume": 200,
        "vwap": 0.7481,
        "trade_count": 21,
        "timestamp": "2026-04-06T04:00:00.000Z"
      },
      {
        "open": 0.6,
        "high": 0.8,
        "low": 0.41,
        "close": 0.58,
        "volume": 164,
        "vwap": 0.4929,
        "trade_count": 56,
        "timestamp": "2026-04-07T04:00:00.000Z"
      },
      {
        "open": 0.6,
        "high": 0.75,
        "low": 0.58,
        "close": 0.63,
        "volume": 172,
        "vwap": 0.6535,
        "trade_count": 36,
        "timestamp": "2026-04-08T04:00:00.000Z"
      },
      {
        "open": 0.68,
        "high": 0.78,
        "low": 0.55,
        "close": 0.78,
        "volume": 238,
        "vwap": 0.6644,
        "trade_count": 63,
        "timestamp": "2026-04-09T04:00:00.000Z"
      },
      {
        "open": 0.66,
        "high": 0.85,
        "low": 0.63,
        "close": 0.63,
        "volume": 158,
        "vwap": 0.7602,
        "trade_count": 28,
        "timestamp": "2026-04-10T04:00:00.000Z"
      },
      {
        "open": 0.63,
        "high": 0.63,
        "low": 0.5,
        "close": 0.57,
        "volume": 197,
        "vwap": 0.5549,
        "trade_count": 38,
        "timestamp": "2026-04-13T04:00:00.000Z"
      },
      {
        "open": 0.72,
        "high": 0.85,
        "low": 0.59,
        "close": 0.69,
        "volume": 192,
        "vwap": 0.6771,
        "trade_count": 46,
        "timestamp": "2026-04-14T04:00:00.000Z"
      },
      {
        "open": 0.65,
        "high": 1.42,
        "low": 0.65,
        "close": 1.4,
        "volume": 933,
        "vwap": 1.2092,
        "trade_count": 159,
        "timestamp": "2026-04-15T04:00:00.000Z"
      },
      {
        "open": 1.47,
        "high": 1.47,
        "low": 1.05,
        "close": 1.06,
        "volume": 545,
        "vwap": 1.1522,
        "trade_count": 115,
        "timestamp": "2026-04-16T04:00:00.000Z"
      },
      {
        "open": 1.23,
        "high": 1.97,
        "low": 1.23,
        "close": 1.49,
        "volume": 1108,
        "vwap": 1.6481,
        "trade_count": 198,
        "timestamp": "2026-04-17T04:00:00.000Z"
      },
      {
        "open": 1.5,
        "high": 2.03,
        "low": 1.5,
        "close": 1.65,
        "volume": 1329,
        "vwap": 1.801,
        "trade_count": 169,
        "timestamp": "2026-04-20T04:00:00.000Z"
      },
      {
        "open": 1.61,
        "high": 1.61,
        "low": 0.9,
        "close": 1.08,
        "volume": 738,
        "vwap": 1.0966,
        "trade_count": 194,
        "timestamp": "2026-04-21T04:00:00.000Z"
      },
      {
        "open": 1.15,
        "high": 1.84,
        "low": 1,
        "close": 1.68,
        "volume": 6718,
        "vwap": 1.7308,
        "trade_count": 362,
        "timestamp": "2026-04-22T04:00:00.000Z"
      },
      {
        "open": 1.81,
        "high": 1.92,
        "low": 1.33,
        "close": 1.46,
        "volume": 911,
        "vwap": 1.5463,
        "trade_count": 270,
        "timestamp": "2026-04-23T04:00:00.000Z"
      },
      {
        "open": 1.25,
        "high": 1.37,
        "low": 1.13,
        "close": 1.29,
        "volume": 820,
        "vwap": 1.2563,
        "trade_count": 106,
        "timestamp": "2026-04-24T04:00:00.000Z"
      },
      {
        "open": 1.07,
        "high": 1.09,
        "low": 0.85,
        "close": 0.98,
        "volume": 1760,
        "vwap": 0.9515,
        "trade_count": 260,
        "timestamp": "2026-04-27T04:00:00.000Z"
      },
      {
        "open": 1.3,
        "high": 1.33,
        "low": 1.05,
        "close": 1.11,
        "volume": 320,
        "vwap": 1.1394,
        "trade_count": 102,
        "timestamp": "2026-04-28T04:00:00.000Z"
      },
      {
        "open": 0.85,
        "high": 1.2,
        "low": 0.85,
        "close": 1.07,
        "volume": 551,
        "vwap": 1.0772,
        "trade_count": 126,
        "timestamp": "2026-04-29T04:00:00.000Z"
      }
    ],
    "count": 20,
    "adjusted": true
  },
  "source": "x402stock",
  "as_of": "2026-06-01T23:54:27.889Z"
}