---
title: "The nearest upcoming expirations side by side, ascending: at-the-money implied volatility, the at-the-money straddle's mid as a market-implied expected move, put/call ratios and max pain for each. An expiration that could not be read stays in the list with `available: false`. Nothing here is a forecast. Pro reads real-time quotes and Plus delayed indicative quotes; the Free plan covers end-of-day data only and receives 403. US listings only."
method: GET
path: "/v1/securities/{ticker}/options/term-structure"
tags: ["Options"]
---

# The nearest upcoming expirations side by side, ascending: at-the-money implied volatility, the at-the-money straddle's mid as a market-implied expected move, put/call ratios and max pain for each. An expiration that could not be read stays in the list with \`available: false\`. Nothing here is a forecast. Pro reads real-time quotes and Plus delayed indicative quotes; the Free plan covers end-of-day data only and receives 403. US listings only.

`GET /v1/securities/{ticker}/options/term-structure`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/securities/{ticker}/options/term-structure`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/securities/:ticker/options/term-structure/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Query parameters

- `maxExpirations` integer

## Response `200`

OK

- OptionTermStructureResponse
  - `ticker` string, nullable
  - `companyName` string, nullable
  - `underlyingClose` number, double, nullable
  - `underlyingCloseDate` string, date, nullable
  - `truncated` boolean
  - `delayed` boolean
  - `expirations` OptionTermStructureRowDto[], nullable
    - `expiration` string, date
    - `daysToExpiration` integer
    - `available` boolean: False when this expiration could not be read; the rest of the curve still answers.
    - `atmImpliedVolatility` number, double, nullable
    - `expectedMove` number, double, nullable: The at-the-money straddle's mid in dollars per share. Market-implied, not a forecast.
    - `expectedMovePercentOfClose` number, double, nullable
    - `putCallOpenInterestRatio` number, double, nullable
    - `putCallVolumeRatio` number, double, nullable
    - `volumeSession` string, date, nullable: The session the volume ratio counts, the newest among this expiration's contracts.
    - `maxPainStrike` number, double, nullable

## Other responses

- `400`: Invalid request — a malformed parameter value or a query parameter this endpoint does not support.
- `403`: Forbidden
- `404`: Not Found
- `503`: Service Unavailable

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/666e06778588?raw)
