---
updatedAt: 2026-05-15T09:04:24.000Z
agentTools:
  projectIndex: https://docs.ortex.com/llms.txt
---

# Option Chains


<p>API to retrieve the complete option chain for a given ticker and expiry date.</p>

<h3>Available Data Points:</h3>
<ul>
    <li><strong>strike_price:</strong> The strike price of the option contract.</li>
    <li><strong>option_type:</strong> Type of option ("call" or "put").</li>
    <li><strong>oi:</strong> Open interest for the option contract.</li>
    <li><strong>volume:</strong> Trading volume for the option contract.</li>
    <li><strong>last_price:</strong> Last traded price of the option.</li>
    <li><strong>last_size:</strong> Size of the last trade.</li>
    <li><strong>ask_price:</strong> Current ask price.</li>
    <li><strong>ask_size:</strong> Current ask size (number of contracts available at ask).</li>
    <li><strong>bid_price:</strong> Current bid price.</li>
    <li><strong>bid_size:</strong> Current bid size (number of contracts available at bid).</li>
    <li><strong>updated_date:</strong> Timestamp of the last update.</li>
</ul>

<p><strong>Try it out!</strong> You can test the API with the <strong>trial key</strong> <code>TEST</code>. Simply include it in your request headers; either here, or add the header <code>"Ortex-Api-Key": "TEST"</code> to your http request.</p>


<p>
<strong>Trial key restrictions: </strong>A list of randomly selected rows will be returned</p>
<p><strong>Get full access!</strong> Get a key at <a href="https://app.ortex.com/apis" target="_blank">app.ortex.com/apis</a></p>


# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "ORTEX APIs",
    "version": "1.0",
    "description": "A revolutionary global equity analytics platform which identifies and analyses relevant data for your stocks."
  },
  "paths": {
    "/api/v1/stock/{exchange_symbol}/{ticker}/options/chain": {
      "get": {
        "operationId": "stock_options_chain_list",
        "description": "\n<p>API to retrieve the complete option chain for a given ticker and expiry date.</p>\n\n<h3>Available Data Points:</h3>\n<ul>\n    <li><strong>strike_price:</strong> The strike price of the option contract.</li>\n    <li><strong>option_type:</strong> Type of option (\"call\" or \"put\").</li>\n    <li><strong>oi:</strong> Open interest for the option contract.</li>\n    <li><strong>volume:</strong> Trading volume for the option contract.</li>\n    <li><strong>last_price:</strong> Last traded price of the option.</li>\n    <li><strong>last_size:</strong> Size of the last trade.</li>\n    <li><strong>ask_price:</strong> Current ask price.</li>\n    <li><strong>ask_size:</strong> Current ask size (number of contracts available at ask).</li>\n    <li><strong>bid_price:</strong> Current bid price.</li>\n    <li><strong>bid_size:</strong> Current bid size (number of contracts available at bid).</li>\n    <li><strong>updated_date:</strong> Timestamp of the last update.</li>\n</ul>\n\n<p><strong>Try it out!</strong> You can test the API with the <strong>trial key</strong> <code>TEST</code>. Simply include it in your request headers; either here, or add the header <code>\"Ortex-Api-Key\": \"TEST\"</code> to your http request.</p>\n\n\n<p>\n<strong>Trial key restrictions: </strong>A list of randomly selected rows will be returned</p>\n<p><strong>Get full access!</strong> Get a key at <a href=\"https://app.ortex.com/apis\" target=\"_blank\">app.ortex.com/apis</a></p>\n",
        "summary": "Option Chains",
        "parameters": [
          {
            "in": "query",
            "name": "as_of_date",
            "schema": {
              "type": "string"
            },
            "description": "Format yyyy-mm-dd"
          },
          {
            "in": "path",
            "name": "exchange_symbol",
            "schema": {
              "type": "string"
            },
            "description": "Exchange symbol (e.g. \"nyse\", \"nasdaq\"), MIC code (e.g. \"xnys\", \"xnas\") or two character ISO country code (e.g \"us\", \"ca\" for ALL country exchanges)",
            "required": true,
            "examples": {
              "NewYorkStockExchangeSymbol": {
                "value": "nyse",
                "summary": "New York Stock Exchange symbol"
              },
              "NASDAQSymbol": {
                "value": "nasdaq",
                "summary": "NASDAQ symbol"
              },
              "NewYorkStockExchangeMICCode": {
                "value": "xnys",
                "summary": "New York Stock Exchange MIC code"
              },
              "NASDAQMICCode": {
                "value": "xnas",
                "summary": "NASDAQ MIC code"
              },
              "AllUSExchanges": {
                "value": "us",
                "summary": "All US exchanges"
              },
              "AllCanadianExchanges": {
                "value": "ca",
                "summary": "All Canadian exchanges"
              }
            }
          },
          {
            "in": "query",
            "name": "expiry",
            "schema": {
              "type": "string"
            },
            "description": "Format yyyy-mm-dd",
            "required": true
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "A page number within the paginated result set.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page_size",
            "required": false,
            "in": "query",
            "description": "Number of results to return per page.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "ticker",
            "schema": {
              "type": "string"
            },
            "description": "Ticker symbol",
            "required": true
          },
          {
            "in": "query",
            "name": "ticker_as_of_date",
            "schema": {
              "type": "string"
            },
            "description": "**US instruments only.** Picks *which* instrument a ticker refers to, as of the given date (format `yyyy-mm-dd`).\n\n**What it does:** changes instrument *resolution* only. It does **not** filter or move the returned data — that stays controlled by the endpoint's own data parameters (such as `from_date` / `to_date`, or `as_of_date` on the options endpoints). Think of it as answering \"who owned this ticker on this date?\", not \"what data do I want back?\".\n\n**Why you need it:** tickers get reused, renamed and delisted over time (e.g. `FB` → `META`; `SPLK` was delisted when Cisco acquired Splunk). By default the endpoint matches the ticker on the exchange in the URL path to the **currently-active** instrument — so a ticker that no longer trades returns **404**, and a recycled ticker resolves to today's owner, not the historical one.\n\n**When set:** the URL path exchange is **ignored** and **all US exchanges** are searched for whichever instrument held the ticker on that date. This lets you pull history for a company that has since changed ticker, delisted, or moved exchange.\n\n**Rules:**\n- Omitted → current behaviour, exactly unchanged.\n- Present (any value, even blank or a future date) → as-of resolution is applied; a blank value defaults to today.\n- A non-US exchange / MIC / country code combined with this parameter returns **400**.\n\nNote: on the options endpoints this is distinct from `as_of_date`, which filters the option *data* snapshot — `ticker_as_of_date` only selects the instrument.",
            "examples": {
              "RenamedTicker,AsItWasMid-2018": {
                "value": "2018-06-01",
                "summary": "Renamed ticker, as it was mid-2018"
              },
              "DelistedName,WhileItStillTraded": {
                "value": "2024-03-01",
                "summary": "Delisted name, while it still traded"
              }
            }
          }
        ],
        "tags": [
          "Options"
        ],
        "security": [
          {
            "ApiKeyAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedOptionChainList"
                },
                "examples": {
                  "OptionChain": {
                    "value": {
                      "paginationLinks": {
                        "next": "http://api.example.org/accounts/?page=4",
                        "previous": "http://api.example.org/accounts/?page=2"
                      },
                      "length": 123,
                      "rows": [
                        [
                          {
                            "strike_price": 100,
                            "option_type": "call",
                            "oi": 1500,
                            "volume": 300,
                            "last_price": 5.5,
                            "last_size": 20,
                            "ask_price": 5.6,
                            "ask_size": 50,
                            "bid_price": 5.4,
                            "bid_size": 45,
                            "updated_date": "2025-07-29"
                          },
                          {
                            "strike_price": 95,
                            "option_type": "put",
                            "oi": 1200,
                            "volume": 250,
                            "last_price": 4.1,
                            "last_size": 15,
                            "ask_price": 4.2,
                            "ask_size": 40,
                            "bid_price": 4,
                            "bid_size": 35,
                            "updated_date": "2025-07-29"
                          }
                        ]
                      ],
                      "creditsUsed": 3,
                      "creditsLeft": 999
                    },
                    "summary": "Option Chain"
                  }
                }
              }
            },
            "description": ""
          },
          "400": {
            "description": "Invalid request parameters"
          },
          "403": {
            "description": "Not authorized"
          },
          "404": {
            "description": "Data not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "OptionChain": {
        "type": "object",
        "properties": {
          "strikePrice": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "optionType": {
            "type": "string"
          },
          "oi": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "volume": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "lastPrice": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "lastSize": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "askPrice": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "askSize": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "bidPrice": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "bidSize": {
            "type": "number",
            "format": "double",
            "maximum": 1000000,
            "minimum": -1000000,
            "exclusiveMaximum": true,
            "exclusiveMinimum": true
          },
          "updatedDate": {
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "askPrice",
          "askSize",
          "bidPrice",
          "bidSize",
          "lastPrice",
          "lastSize",
          "oi",
          "optionType",
          "strikePrice",
          "updatedDate",
          "volume"
        ]
      },
      "PaginatedOptionChainList": {
        "type": "object",
        "required": [
          "length",
          "paginationLinks",
          "rows"
        ],
        "properties": {
          "paginationLinks": {
            "type": "object",
            "example": {
              "next": "http://api.example.org/accounts/?page=4",
              "previous": "http://api.example.org/accounts/?page=2"
            }
          },
          "length": {
            "type": "integer",
            "example": 123
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionChain"
            }
          },
          "creditsUsed": {
            "type": "integer",
            "example": 3
          },
          "creditsLeft": {
            "type": "integer",
            "example": 999
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Ortex-Api-Key",
        "description": "Use test API key: `TEST` to get a limited result."
      }
    }
  },
  "servers": [
    {
      "url": "https://api.ortex.com/",
      "description": "Production"
    }
  ]
}
```