image

Premium selling strategies, often popularized by "Theta Gang" traders, rely on selling option contracts (writing calls or puts) to collect premium while letting time decay work in the seller's favor. The most lucrative environment for these strategies is when Implied Volatility (IV) is high. High IV suggests that the market expects significant price movement, inflating the price of option premiums. By identifying contracts with the highest IV, developers can build automated scanners to find opportunities for strategies like the Wheel, Iron Condors, or Credit Spreads.


Obtain API key

Get your API key


The Endpoint

To programmatically identify these opportunities, SteadyAPI provides a dedicated endpoint that ranks specific option contracts based on their volatility metrics.

Endpoint: GET /v1/markets/options/highest-iv

Documentation:
https://docs.steadyapi.com/#stocks-options-GETapi-v1-markets-options-highest-iv


Detailed Parameter Analysis

This endpoint is designed to return a list of option contracts ranked by their Implied Volatility percentage. To effectively screen for premium selling candidates, you must configure the parameters to target the most expensive options relative to their strike price.

  • sort
    This parameter controls the ranking order. For premium selling, set this to HIGHEST. This ensures the API returns contracts with the most inflated volatility first. While LOWEST is available, it is typically used for long strategies (buying options) where volatility expansion is desired.
  • page
    The API returns results in paginated sets. Increment this integer to traverse through the list of high-IV contracts if the initial batch does not meet your liquidity or underlying asset criteria.

Python Example

The following script demonstrates how to fetch the top 20 highest IV options. It also calculates a Yield metric (Bid Price divided by Strike Price), which helps quantify the return on capital if the option were cash-secured or covered.

import requests

url = "https://api.steadyapi.com/v1/markets/options/highest-iv"

# Replace with your actual API key
headers = {
    "Authorization": "Bearer YOUR_AUTH_KEY"
}

# Requesting the highest IV contracts
params = {
    "sort": "HIGHEST",
    "page": "1"
}

response = requests.get(url, headers=headers, params=params)

if response.status_code == 200:
    data = response.json()
    options_list = data.get("body", [])

    print(f"{'Symbol':<20} | {'Strike':<8} | {'Type':<5} | {'Bid':<6} | {'IV':<8} | {'Yield %':<8}")
    print("-" * 70)

    for option in options_list:
        symbol = option.get("baseSymbol")
        strike = float(option.get("strikePrice"))
        opt_type = option.get("symbolType")
        bid = float(option.get("bidPrice"))
        iv = option.get("volatility")
        
        # Calculate immediate yield based on the bid price
        # Yield = (Premium Received / Collateral) * 100
        yield_pct = (bid / strike) * 100 if strike > 0 else 0

        print(f"{symbol:<20} | {strike:<8.2f} | {opt_type:<5} | {bid:<6.2f} | {iv:<8} | {yield_pct:<8.2f}")
else:
    print(f"Error: {response.status_code} - {response.text}")

Understanding the Response

The API returns a JSON object containing a list of option contracts. Each object represents a specific strike and expiration with its associated market data.

{
  "body": [
    {
      "symbol": "WULF|20250117|1.50C",
      "baseSymbol": "WULF",
      "baseLastPrice": "2.14",
      "symbolType": "Call",
      "strikePrice": "1.50",
      "expirationDate": "01/17/25",
      "daysToExpiration": "329",
      "bidPrice": "1.35",
      "askPrice": "2.05",
      "volatility": "420.81%"
    }
  ]
}

Key Fields

  • volatility
    This is the annualized Implied Volatility percentage. A value of 420.81 percent indicates extreme expected movement. In premium selling, this is the primary filter; higher values equate to richer premiums but higher risk.
  • bidPrice
    The price at which you can sell the option immediately. When calculating potential returns for writing contracts, always use the bid price rather than the last price or ask price to ensure realistic return estimates.
  • askPrice
    The price to buy the option. A wide gap between bidPrice and askPrice indicates low liquidity. Algorithms should filter out options with wide spreads to ensure you can close the position later at a fair price.
  • strikePrice
    The price at which the asset can be bought or sold. For cash-secured puts, this represents the collateral required (Strike multiplied by 100).
  • expirationDate
    The date the contract expires. This is critical for calculating annualized returns. A high yield on a contract expiring in 329 days is different from the same yield on a contract expiring in 7 days.

Practical Use Cases

Automated Covered Call Scanners

Investors holding long stock positions can use this endpoint to check if their specific holdings appear in the high-IV list. If a stock they own spikes in IV, it may be an opportune time to sell covered calls against the position to reduce cost basis.

Cash-Secured Put Screeners

Traders employing the Wheel strategy can filter this list for stocks priced under a certain threshold (for example, under 50 dollars). By identifying high-IV puts on relatively stable or bullish stocks, traders can sell puts to generate income or acquire the stock at a discount if assigned.


Learn more or explore other endpoints:
SteadyAPI Stock and Options Data API

How to Search Rental Listings Using SteadyAPI Oct 14, 2026

How to Search Rental Listings Using SteadyAPI

Search rental listings by location. Show price.display, and move to the next page with offset.

How to Get a Property Estimate Using SteadyAPI Oct 14, 2026

How to Get a Property Estimate Using SteadyAPI

Current and historical value for one property id. The optional bounds are calendar dates, not year counts.

How to Read a Tweet Using SteadyAPI Oct 13, 2026

How to Read a Tweet Using SteadyAPI

Read one tweet by id. The text and counts are on legacy. meta.reply_count is how many replies were included.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.