---
title: Option Chain
sidebar_position: 3
---

Get a current or historical end of day option chain for an underlying ticker symbol. Optional parameters allow for extensive filtering of the chain.

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

## Endpoint

```http
GET https://api.marketdata.app/v1/options/chain/{underlyingSymbol}/
```

## Request Example

<Tabs>
<TabItem value="HTTP" label="HTTP" default>

**GET** [https://api.marketdata.app/v1/options/chain/AAPL/?expiration=2025-01-17&side=call](https://api.marketdata.app/v1/options/chain/AAPL/?expiration=2025-01-17&side=call)

</TabItem>
<TabItem value="NodeJS" label="NodeJS">

```js title="app.js"
fetch("https://api.marketdata.app/v1/options/chain/AAPL/")
  .then((res) => {
    console.log(res);
  })
  .catch((err) => {
    console.log(err);
  });
```

</TabItem>
<TabItem value="Python" label="Python">

```python title="app.py"
from marketdata.client import MarketDataClient

client = MarketDataClient()
chain = client.options.chain("AAPL")
print(chain)
```

</TabItem>
<TabItem value="Go" label="Go">

```go title="optionChain.go"

import (
  "fmt"

  api "github.com/MarketDataApp/sdk-go"
)

func ExampleOptionChainRequest() {
	AAPL, err := OptionChain().UnderlyingSymbol("AAPL").Get()
	if err != nil {
		fmt.Println("Error fetching option chain:", err)
		return
	}
	for _, contract := range AAPL {
		fmt.Println(contract)
	}
}
```
</TabItem>
</Tabs>

## Response Example

```json
{
  "s": "ok",
  "optionSymbol": ["AAPL230616C00060000", "AAPL230616C00065000", "AAPL230616C00070000", "AAPL230616C00075000", "AAPL230616C00080000", "AAPL230616C00085000", "AAPL230616C00090000", "AAPL230616C00095000", "AAPL230616C00100000", "AAPL230616C00105000", "AAPL230616C00110000", "AAPL230616C00115000", "AAPL230616C00120000", "AAPL230616C00125000", "AAPL230616C00130000", "AAPL230616C00135000", "AAPL230616C00140000", "AAPL230616C00145000", "AAPL230616C00150000", "AAPL230616C00155000", "AAPL230616C00160000", "AAPL230616C00165000", "AAPL230616C00170000", "AAPL230616C00175000", "AAPL230616C00180000", "AAPL230616C00185000", "AAPL230616C00190000", "AAPL230616C00195000", "AAPL230616C00200000", "AAPL230616C00205000", "AAPL230616C00210000", "AAPL230616C00215000", "AAPL230616C00220000", "AAPL230616C00225000", "AAPL230616C00230000", "AAPL230616C00235000", "AAPL230616C00240000", "AAPL230616C00245000", "AAPL230616C00250000", "AAPL230616C00255000", "AAPL230616C00260000", "AAPL230616C00265000", "AAPL230616C00270000", "AAPL230616C00280000", "AAPL230616C00290000", "AAPL230616C00300000", "AAPL230616P00060000", "AAPL230616P00065000", "AAPL230616P00070000", "AAPL230616P00075000", "AAPL230616P00080000", "AAPL230616P00085000", "AAPL230616P00090000", "AAPL230616P00095000", "AAPL230616P00100000", "AAPL230616P00105000", "AAPL230616P00110000", "AAPL230616P00115000", "AAPL230616P00120000", "AAPL230616P00125000", "AAPL230616P00130000", "AAPL230616P00135000", "AAPL230616P00140000", "AAPL230616P00145000", "AAPL230616P00150000", "AAPL230616P00155000", "AAPL230616P00160000", "AAPL230616P00165000", "AAPL230616P00170000", "AAPL230616P00175000", "AAPL230616P00180000", "AAPL230616P00185000", "AAPL230616P00190000", "AAPL230616P00195000", "AAPL230616P00200000", "AAPL230616P00205000", "AAPL230616P00210000", "AAPL230616P00215000", "AAPL230616P00220000", "AAPL230616P00225000", "AAPL230616P00230000", "AAPL230616P00235000", "AAPL230616P00240000", "AAPL230616P00245000", "AAPL230616P00250000", "AAPL230616P00255000", "AAPL230616P00260000", "AAPL230616P00265000", "AAPL230616P00270000", "AAPL230616P00280000", "AAPL230616P00290000", "AAPL230616P00300000"],
  "underlying": ["AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL", "AAPL"],
  "expiration": [1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600, 1686945600],
  "side": ["call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "call", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put", "put"],
  "strike": [60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 280, 290, 300, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 280, 290, 300],
  "firstTraded": [1617197400, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616506200, 1616506200, 1616506200, 1616506200, 1616506200, 1616506200, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1617370200, 1617888600, 1618234200, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1626701400, 1626701400, 1626701400, 1626701400, 1617197400, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616506200, 1616506200, 1616506200, 1616506200, 1616506200, 1616506200, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1616592600, 1617370200, 1617888600, 1618234200, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1619184600, 1682083800, 1626701400, 1626701400, 1626701400, 1626701400],
  "dte": [26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26],
  "updated": [1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875, 1684702875],
  "bid": [114.1, 108.6, 103.65, 98.6, 93.6, 88.9, 84.3, 80.2, 74.75, 70, 64.35, 59.4, 54.55, 50, 45.1, 40.45, 35.75, 30.8, 25.7, 20.6, 15.9, 11.65, 7.55, 4.15, 1.77, 0.57, 0.18, 0.07, 0.03, 0.02, 0.02, 0.01, 0.01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0.01, 0.02, 0.02, 0.03, 0.04, 0.06, 0.07, 0.11, 0.14, 0.22, 0.32, 0.52, 0.92, 1.74, 3.3, 5.9, 9.8, 14.7, 19.3, 24.25, 28.7, 32.95, 38.65, 44.7, 48.4, 53.05, 58.8, 63.55, 68.05, 73.2, 78.5, 84.1, 88.05, 92.9, 103.15, 113.4, 123.05],
  "bidSize": [90, 90, 90, 90, 90, 90, 90, 98, 90, 102, 90, 90, 90, 90, 102, 90, 95, 95, 99, 258, 118, 202, 96, 38, 36, 30, 180, 310, 31, 319, 5, 822, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 64, 10, 163, 2, 5, 79, 31, 4, 1, 208, 30, 146, 5, 35, 1, 5, 6, 98, 90, 90, 90, 90, 90, 98, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90],
  "mid": [115.5, 110.38, 105.53, 100.5, 95.53, 90.28, 85.53, 80.68, 75.58, 70.75, 65.55, 60.67, 55.55, 50.9, 45.88, 40.7, 35.88, 30.93, 26.3, 20.93, 16.18, 11.78, 7.62, 4.2, 1.79, 0.58, 0.18, 0.08, 0.04, 0.03, 0.03, 0.01, 0.02, 0.09, 0.05, 0.09, 0.01, 0.08, 0.01, 0.08, 0.03, 0.23, 0.26, 0.51, 0.01, 0.01, 0.01, 0.01, 0.01, 0.03, 0.01, 0.08, 0.08, 0.01, 0.01, 0.01, 0.03, 0.07, 0.07, 0.04, 0.07, 0.08, 0.11, 0.16, 0.23, 0.33, 0.53, 0.94, 1.76, 3.33, 5.97, 10.2, 14.95, 20.52, 24.95, 30, 34.83, 39.88, 45, 49.83, 54.85, 59.85, 64.82, 69.75, 74.78, 80.12, 85.4, 89.9, 94.8, 104.95, 114.68, 124.82],
  "ask": [116.9, 112.15, 107.4, 102.4, 97.45, 91.65, 86.75, 81.15, 76.4, 71.5, 66.75, 61.95, 56.55, 51.8, 46.65, 40.95, 36, 31.05, 26.9, 21.25, 16.45, 11.9, 7.7, 4.25, 1.81, 0.6, 0.19, 0.08, 0.05, 0.04, 0.03, 0.02, 0.03, 0.17, 0.1, 0.17, 0.01, 0.16, 0.02, 0.16, 0.05, 0.46, 0.51, 1.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.05, 0.02, 0.16, 0.16, 0.01, 0.02, 0.02, 0.04, 0.12, 0.1, 0.05, 0.07, 0.09, 0.12, 0.18, 0.23, 0.34, 0.54, 0.95, 1.78, 3.35, 6.05, 10.6, 15.2, 21.75, 25.65, 31.3, 36.7, 41.1, 45.3, 51.25, 56.65, 60.9, 66.1, 71.45, 76.35, 81.75, 86.7, 91.75, 96.7, 106.75, 115.95, 126.6],
  "askSize": [90, 90, 90, 90, 90, 90, 90, 102, 90, 96, 90, 90, 90, 90, 96, 102, 90, 95, 96, 114, 103, 126, 90, 156, 20, 98, 397, 563, 251, 528, 238, 1, 30, 117, 99, 173, 89, 151, 196, 90, 92, 90, 90, 248, 1, 340, 180, 75, 50, 156, 1, 174, 231, 50, 500, 48, 2, 222, 136, 229, 587, 411, 226, 1, 128, 105, 142, 188, 34, 61, 45, 120, 105, 109, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90],
  "last": [115, 107.82, 105.75, 100.45, 94.2, 90.66, 86, 81, 75.59, 71.08, 66.07, 61.64, 55.8, 50.77, 46.12, 41.05, 35.9, 30.81, 25.95, 21.3, 16.33, 11.8, 7.6, 4.2, 1.78, 0.59, 0.18, 0.08, 0.05, 0.02, 0.02, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, null, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.04, 0.05, 0.06, 0.08, 0.11, 0.16, 0.23, 0.33, 0.52, 0.93, 1.76, 3.27, 6, 10.1, 14.84, 20.74, 25.39, 30.65, 37.1, null, 44.8, 59.6, 55.35, null, 83.49, null, 101.5, null, 109.39, null, 120.55, 128.67, 139.85, 151.1],
  "openInterest": [21957, 3012, 2796, 1994, 1146, 558, 2598, 988, 6574, 509, 1780, 917, 2277, 1972, 10751, 6080, 35508, 17559, 33003, 32560, 49905, 75976, 56201, 62509, 59821, 39370, 24498, 51472, 17565, 921, 13428, 273, 6935, 518, 4496, 533, 8128, 10, 14615, 100, 6765, 0, 2481, 3831, 2474, 17228, 57338, 9503, 13614, 8027, 7938, 3752, 21276, 13550, 46981, 14401, 26134, 40858, 34215, 33103, 92978, 47546, 67687, 35527, 87587, 51117, 72338, 82643, 43125, 12822, 2955, 619, 112, 2, 44, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "volume": [0, 0, 1, 4, 0, 8, 1, 43, 15, 49, 10, 5, 6, 5, 58, 72, 31, 427, 207, 104, 380, 1070, 3179, 7619, 10678, 5488, 1267, 718, 420, 73, 18, 1, 137, 348, 844, 27, 6, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 50, 23, 36, 32, 250, 142, 155, 135, 1969, 1068, 2005, 3018, 2641, 7861, 13154, 6299, 6389, 664, 101, 12, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "inTheMoney": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true],
  "intrinsicValue": [115.13, 110.13, 105.13, 100.13, 95.13, 90.13, 85.13, 80.13, 75.13, 70.13, 65.13, 60.13, 55.13, 50.13, 45.13, 40.13, 35.13, 30.13, 25.13, 20.13, 15.13, 10.13, 5.13, 0.13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.87, 9.87, 14.87, 19.87, 24.87, 29.87, 34.87, 39.87, 44.87, 49.87, 54.87, 59.87, 64.87, 69.87, 74.87, 79.87, 84.87, 89.87, 94.87, 104.87, 114.87, 124.87],
  "extrinsicValue": [0.37, 0.25, 0.4, 0.37, 0.4, 0.15, 0.4, 0.55, 0.45, 0.62, 0.42, 0.55, 0.42, 0.77, 0.75, 0.57, 0.75, 0.8, 1.17, 0.8, 1.05, 1.65, 2.5, 4.07, 1.79, 0.58, 0.18, 0.08, 0.04, 0.03, 0.03, 0.01, 0.02, 0.09, 0.05, 0.09, 0.01, 0.08, 0.01, 0.08, 0.03, 0.23, 0.26, 0.51, 0.01, 0.01, 0.01, 0.01, 0.01, 0.03, 0.01, 0.08, 0.08, 0.01, 0.01, 0.01, 0.03, 0.07, 0.07, 0.04, 0.07, 0.08, 0.11, 0.16, 0.23, 0.33, 0.53, 0.94, 1.76, 3.33, 1.1, 0.33, 0.08, 0.65, 0.08, 0.13, 0.05, 0, 0.13, 0.05, 0.02, 0.02, 0.05, 0.12, 0.09, 0.25, 0.53, 0.03, 0.07, 0.08, 0.19, 0.05],
  "underlyingPrice": [175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13, 175.13],
  "iv": [1.629, 1.923, 1.829, 1.696, 1.176, 1.455, 1.023, 0.978, 0.929, 0.795, 0.757, 0.676, 0.636, 0.592, 0.546, 0.422, 0.393, 0.361, 0.331, 0.282, 0.257, 0.231, 0.21, 0.192, 0.176, 0.167, 0.171, 0.184, 0.2, 0.224, 0.254, 0.268, 0.296, 0.322, 0.347, 0.36, 0.384, 0.407, 0.429, 0.451, 0.472, 0.492, 0.512, 0.551, 0.589, 0.624, 1.268, 1.177, 1.093, 1.014, 0.942, 0.872, 0.807, 0.745, 0.708, 0.651, 0.628, 0.573, 0.539, 0.501, 0.469, 0.431, 0.395, 0.359, 0.325, 0.291, 0.26, 0.233, 0.212, 0.194, 0.177, 0.164, 0.223, 0.274, 0.322, 0.396, 0.432, 0.452, 0.476, 0.53, 0.66, 0.677, 0.661, 0.769, 0.776, 0.73, 0.873, 0.863, 0.974, 1.063, 1.013, 1.092],
  "delta": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.998, 0.99, 0.971, 0.927, 0.849, 0.728, 0.549, 0.328, 0.147, 0.052, 0.014, 0.003, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.002, -0.01, -0.029, -0.073, -0.151, -0.272, -0.451, -0.672, -0.853, -0.948, -0.986, -0.997, -0.999, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
  "gamma": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0.002, 0.006, 0.012, 0.021, 0.032, 0.043, 0.042, 0.028, 0.013, 0.004, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0.002, 0.006, 0.012, 0.021, 0.032, 0.043, 0.042, 0.028, 0.013, 0.004, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "theta": [-0.009, -0.009, -0.01, -0.011, -0.012, -0.012, -0.013, -0.014, -0.014, -0.015, -0.016, -0.017, -0.017, -0.018, -0.019, -0.02, -0.021, -0.023, -0.027, -0.036, -0.05, -0.067, -0.08, -0.08, -0.064, -0.038, -0.017, -0.006, -0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.009, -0.009, -0.01, -0.011, -0.012, -0.012, -0.013, -0.014, -0.014, -0.015, -0.016, -0.017, -0.017, -0.018, -0.019, -0.02, -0.021, -0.023, -0.027, -0.036, -0.05, -0.067, -0.08, -0.08, -0.064, -0.038, -0.017, -0.006, -0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "vega": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0.003, 0.012, 0.035, 0.068, 0.113, 0.158, 0.192, 0.177, 0.114, 0.051, 0.016, 0.005, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.001, 0.003, 0.012, 0.035, 0.068, 0.113, 0.158, 0.192, 0.177, 0.114, 0.051, 0.016, 0.005, 0.001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
```

## Request Parameters

<Tabs>
<TabItem value="required" label="Required" default>

- **underlyingSymbol** `string`

  The underlying ticker symbol for the options chain you wish to lookup.

</TabItem>
<TabItem value="optional" label="Optional">

- **date** `date`

  Use to lookup a historical end of day options chain from a specific trading day. If no date parameter is specified the chain will be the most current chain available during market hours. When the market is closed the chain will be from the previous session. Accepted date inputs: `ISO 8601`, `unix`, `spreadsheet`.

</TabItem>

<TabItem value="expiration" label="Expiration Filters">

- **expiration** `date`

  - Limits the option chain to a specific expiration date. Accepted date inputs: `ISO 8601`, `unix`, `spreadsheet`.
  - If omitted the next monthly expiration for real-time quotes or the next monthly expiration relative to the `date` parameter for historical quotes will be returned.
  - Use the keyword `all` to return the complete option chain.

  :::caution
  Combining the `all` parameter with large options chains such as SPX, SPY, QQQ, etc. can cause you to consume your requests very quickly. The full SPX option chain has more than 20,000 contracts. A request is consumed for each contact you request with a price in the option chain.
  :::

- **dte** `number`

  Days to expiry. Limit the option chain to a single expiration date closest to the `dte` provided. Should not be used together with `from` and `to`. Take care before combining with `weekly`, `monthly`, `quarterly`, since that will limit the expirations `dte` can return. If you are using the `date` parameter, dte is relative to the `date` provided.

- **from** `date`

  Limit the option chain to expiration dates after `from` (inclusive). Should be combined with `to` to create a range. Accepted date inputs: `ISO 8601`, `unix`, `spreadsheet`. If omitted all expirations will be returned.

- **to** `date`

  Limit the option chain to expiration dates before `to` (inclusive). Should be combined with `from` to create a range. Accepted date inputs: `ISO 8601`, `unix`, `spreadsheet`. If omitted all expirations will be returned.

- **month** `number`

  Limit the option chain to options that expire in a specific month (**1-12**).

- **year** `number`

  Limit the option chain to options that expire in a specific **year**.

- **weekly** `boolean`

  Limit the option chain to weekly expirations by setting weekly to `true`. If set to `false`, no weekly expirations will be returned.

- **monthly** `boolean`

  Limit the option chain to standard monthly expirations by setting monthly to `true`. If set to `false`, no monthly expirations will be returned.

- **quarterly** `boolean`

  Limit the option chain to quarterly expirations by setting quarterly to `true`. If set to `false`, no quarterly expirations will be returned.

:::caution
When combining the `weekly`, `monthly`, and `quarterly` parameters, only identical boolean values will be honored. For example, `weekly=true&monthly=false` will return an error. You must use these parameters to either include or exclude values, but you may not include and exclude at the same time. A valid use would be `monthly=true&quarterly=true` to return both monthly and quarterly expirations.
:::


</TabItem>

<TabItem value="strike" label="Strike Filters">

- **strike** `string`

  - Limit the option chain to options with the specific strike specified. (e.g. `400`)
  - Limit the option chain to a specific set of strikes (e.g. `400,405`)
  - Limit the option chain to an open interval of strikes using a logical expression (e.g. `>400`)
  - Limit the option chain to a closed interval of strikes by specifying both endpoints. (e.g. `400-410`)

- **delta** `number`

  - Limit the option chain to a single strike closest to the `delta` provided. (e.g. `.50`)
  - Limit the option chain to a specific set of deltas (e.g. `.60,.30`)
  - Limit the option chain to an open interval of strikes using a logical expression (e.g. `>.50`)
  - Limit the option chain to a closed interval of strikes by specifying both endpoints. (e.g. `.30-.60`)

  :::tip
  Filter strikes using the absolute value of the delta. The values used will always return both sides of the chain (e.g. puts & calls). This means you must filter using `side` to exclude puts or calls. Delta cannot be used to filter the side of the chain, only the strikes.
  :::

- **strikeLimit** `number`

  Limit the number of total strikes returned by the option chain. For example, if a complete chain included 30 strikes and the limit was set to 10, the 20 strikes furthest from the money will be excluded from the response.

  :::tip
  If `strikeLimit` is combined with the `range` or `side` parameter, those parameters will be applied first. In the above example, if the range were set to `itm` (in the money) and side set to `call`, all puts and out of the money calls would be first excluded by the range parameter and then strikeLimit will return a maximum of 10 in the money calls that are closest to the money.
  If the `side` parameter has not been used but `range` has been specified, then `strikeLimit` will return the requested number of calls and puts for each side of the chain, but duplicating the number of strikes that are received.
  :::

  - **range** `string`

  Limit the option chain to strikes that are in the money, out of the money, at the money, or include all. If omitted all options will be returned. Valid inputs: `itm`, `otm`, `all`.

</TabItem>

<TabItem value="liquidity" label="Price/Liquidity Filters">

- **minBid** `number`

  Limit the option chain to options with a bid price greater than or equal to the `number` provided.

- **maxBid** `number`

  Limit the option chain to options with a bid price less than or equal to the `number` provided.

- **minAsk** `number`

  Limit the option chain to options with an ask price greater than or equal to the `number` provided.

- **maxAsk** `number`

  Limit the option chain to options with an ask price less than or equal to the `number` provided.

- **maxBidAskSpread** `number`

  Limit the option chain to options with a bid-ask spread less than or equal to the `number` provided.

- **maxBidAskSpreadPct** `number`

  Limit the option chain to options with a bid-ask spread less than or equal to the `percent` provided (relative to the underlying). For example, a value of `0.5%` would exclude all options trading with a bid-ask spread greater than $1.00 in an underlying that trades at $200.

- **minOpenInterest** `number`

  Limit the option chain to options with an open interest greater than or equal to the `number` provided.

- **minVolume** `number`

  Limit the option chain to options with a volume transacted greater than or equal to the `number` provided.

</TabItem>

<TabItem value="otherfilters" label="Other Filters">

- **nonstandard** `boolean`

  Include non-standard contracts by setting `nonstandard` to `true`. If set to `false`, no non-standard options expirations will be returned. If no parameter is provided, the output will default to false.

- **side** `string`

  Limit the option chain to either `call` or `put`. If omitted, both sides will be returned.

- **am** `boolean`

  Limit the option chain to A.M. expirations by setting `am` to `true`. If set to `false`, no A.M. expirations will be returned. This parameter is only applicable for index options such as SPX, NDX, etc. If no parameter is provided, both A.M. and P.M. expirations will be returned.

- **pm** `boolean`

  Limit the option chain to P.M. expirations by setting `pm` to `true`. If set to `false`, no P.M. expirations will be returned. This parameter is only applicable for index options such as SPX, NDX, etc. If no parameter is provided, both A.M. and P.M. expirations will be returned.

:::caution
The `am` and `pm` parameters are only applicable for index options such as SPX, NDX, etc. If they are used for stocks or ETFs, a bad parameters error will be returned.
:::

</TabItem>

</Tabs>

## Response Attributes

<Tabs>
<TabItem value="Success" label="Success" default>

- **s** `string`

  Status will always be `ok` when there is the quote requested.

- **optionSymbol** `array[string]`

  The option symbol according to OCC symbology.

- **underlying** `array[string]`

  The ticker symbol of the underlying security.

- **expiration** `array[number]`

  The option's expiration date in Unix time.

- **side** `array[string]`

  The response will be `call` or `put`.

- **strike** `array[number]`

  The exercise price of the option.

- **firstTraded** `array[date]`

  The date the option was first traded.

- **dte** `array[number]`

  The number of days until the option expires.

- **ask** `array[number]`

  The ask price.

- **askSize** `array[number]`

  The number of contracts offered at the ask price.

- **bid** `array[number]`

  The bid price.

- **bidSize** `array[number]`

  The number of contracts offered at the bid price.

- **mid** `array[number]`

  The midpoint price between the ask and the bid, also known as the mark price.

- **last** `array[number]`

  The last price negotiated for this option contract at the time of this quote.

- **volume** `array[number]`

  The number of contracts negotiated during the trading day at the time of this quote.

- **openInterest** `array[number]`

  The total number of contracts that have not yet been settled at the time of this quote.

- **underlyingPrice** `array[number]`

  The last price of the underlying security at the time of this quote.

- **inTheMoney** `array[booleans]`

  Specifies whether the option contract was in the money true or false at the time of this quote.

- **intrinsicValue** `array[number]`

  The intrinsic value of the option.

- **extrinsicValue** `array[number]`

  The extrinsic value of the option.

- **updated** `array[number]`

  The date and time of this quote snapshot in Unix time.

- **iv** `array[number]`

  The [implied volatility](https://www.investopedia.com/terms/i/iv.asp) of the option.

- **delta** `array[number]`

  The [delta](https://www.investopedia.com/terms/d/delta.asp) of the option.

- **gamma** `array[number]`

  The [gamma](https://www.investopedia.com/terms/g/gamma.asp) of the option.

- **theta** `array[number]`

  The [theta](https://www.investopedia.com/terms/t/theta.asp) of the option.

- **vega** `array[number]`

  The [vega](https://www.investopedia.com/terms/v/vega.asp) of the option.

</TabItem>
<TabItem value="NoData" label="No Data">

- **s** `string`

  Status will be `no_data` if no candles are found for the request.

- **nextTime** `number` optional

  Unix time of the next quote if there is no data in the requested period, but there is data in a subsequent period.

- **prevTime** `number` optional

  Unix time of the previous quote if there is no data in the requested period, but there is data in a previous period.

</TabItem>
<TabItem value="Error" label="Error">

- **s** `string`

  Status will be `error` if the request produces an error response.

- **errmsg** `string`
  An error message.

</TabItem>
</Tabs>

## Usage Information

### Data Availability

The type of option chain data you receive depends on your user type and OPRA entitlement. This may include real-time data, 15-minute delayed data, or historical data, depending on the plan or access level. To get real-time options data, users need to sign the OPRA agreement. [Learn more about entitlements](/account/entitlements).

| User Type | OPRA Entitlement | Data Type |
|-----------|------------------|-----------|
| Non-Professional | ✅ | Real-time |
| Non-Professional | ❌ | 15-min delayed |
| Professional | Any | Historical (1 day old) |
| Unknown | Any | Historical (1 day old) |

### Pricing

The cost of using the option chain API endpoint depends on the type of data you choose and your usage pattern. Here's a breakdown of the pricing:

| Data Type     | Cost Basis                | Credits Required per Unit |
|--------------------|---------------------------|---------------------------|
| Real-Time Data     | Per option symbol         | 1 credit                  |
| 15m Delayed Data     | Per option symbol         | 1 credit                  |
| Cached Data        | Per API call              | 1 credit                  |
| Historical Data    | Per 1000 option symbols   | 1 credit                  |

#### Examples

1. **Real-Time Usage**
   - If you query all strikes and all expirations for SPX (which has 22,718 total option contracts) in real-time, it will cost you 22,718 credits.

2. **15-minute Delayed Usage**
   - If you query all strikes and all expirations for SPX (which has 22,718 total option contracts) and opt for 15m delayed data, it will cost you 22,718 credits.

3. **Cached Mode Usage**
   - A single API call to SPX using the Cached Mode, regardless of the number of option symbols queried, will cost you 1 credit.

4. **Historical Data Usage**
   - When including the `date` parameter for historical queries, the cost is 1 credit per 1000 option symbols returned in the response.
   - For example, if a historical query returns 5,000 option symbols, it will cost 5 credits (5,000 ÷ 1000 = 5).
