image

Premium selling strategies, often referred to as "Theta Gang" strategies, rely on the concept of time decay to generate profit. The core principle involves selling option contracts—such as Cash Secured Puts or Iron Condors—when Implied Volatility (IV) is high. High IV indicates that the market expects significant price movement, causing option premiums to inflate. By selling these expensive contracts, traders aim to buy them back later at a lower price as volatility contracts and time passes.

While many traders screen for these opportunities manually, efficient premium selling requires analyzing hundreds of tickers and expiration dates simultaneously. By automating this process with the Mboum API, developers can programmatically identify contracts that meet specific volatility and liquidity thresholds.

👉 To start building your own screener, obtain your API credentials here:
https://mboum.com/pages/api


The Endpoint

To build a volatility screener, you need access to the complete option chain, which includes pricing, volume, and the Greeks (Delta, Gamma, Theta, Vega) alongside Implied Volatility data.

The most robust endpoint for this task is the v3 Options Chain endpoint. It returns a comprehensive breakdown of Calls and Puts, categorized by expiration type (weekly or monthly).

Endpoint

GET /v3/markets/options

Documentation:
https://docs.mboum.com#stocks-options-GETapi-v3-markets-options

Key Parameters

  • ticker – The symbol of the asset (e.g., TSLA, SPY, or AMD)

  • expiration – (Optional) A specific expiration date in YYYY-MM-DD format. If omitted, the API returns upcoming expirations.


Python Example: Filtering for High Volatility

The following Python script demonstrates how to fetch the option chain for a specific ticker and filter for "High IV" Put contracts.

In this example, the script iterates through the chain to find contracts where the volatility (IV) is greater than 50% and there is sufficient liquidity (volume > 100).

import requests
import json

# Configuration
url = "https://api.mboum.com/v3/markets/options"
api_key = "{YOUR_AUTH_KEY}"
ticker = "TSLA"

querystring = {"ticker": ticker}

headers = {
    "Authorization": f"Bearer {api_key}",
    "Accept": "application/json"
}

try:
    response = requests.get(url, headers=headers, params=querystring)
    response.raise_for_status()
    data = response.json()

    # Access the Put contracts from the response body
    puts = data.get("body", {}).get("Put", [])

    print(f"Screening {ticker} Puts for IV > 50% and Volume > 100...\n")

    for contract in puts:
        # Extract fields
        strike = contract.get("strikePrice")
        expiration = contract.get("expirationDate")
        # Volatility usually comes as a string like "55.20%". Strip '%' and convert.
        iv_string = contract.get("volatility", "0").replace("%", "")
        volume_string = contract.get("volume", "0").replace(",", "")
        
        try:
            iv = float(iv_string)
            volume = int(volume_string)
        except ValueError:
            continue

        # Screening Logic: IV > 50 and Volume > 100
        if iv > 50.0 and volume > 100:
            bid = contract.get("bidPrice")
            ask = contract.get("askPrice")
            print(f"Exp: {expiration} | Strike: {strike} | IV: {iv}% | Vol: {volume} | Bid/Ask: {bid}/{ask}")

except requests.exceptions.RequestException as e:
    print(f"Error fetching data: {e}")

Understanding the Response

The v3/markets/options endpoint returns highly detailed financial data for every contract. When parsing the JSON response, specific fields are critical for assessing the quality of the premium.

Below is a snippet of a single option contract object from the response:

{
  "symbol": "SPY|20250530|590.00P",
  "baseSymbol": "SPY",
  "strikePrice": "590.00",
  "expirationDate": "05/30/25",
  "moneyness": "-0.19%",
  "bidPrice": "3.21",
  "midpoint": "3.22",
  "askPrice": "3.23",
  "lastPrice": "3.21",
  "volume": "23,676",
  "openInterest": "7,496",
  "volatility": "17.88%",
  "delta": "-0.4438",
  "theta": "-0.6105"
}

Key fields to analyze include:

  • strikePrice – The price at which the option can be exercised

  • volatility – The Implied Volatility percentage. Higher values generally result in higher premiums

  • bidPrice and askPrice – The market spread. Tight spreads are preferred to ensure you can enter and exit trades at fair prices

  • volume and openInterest – Indicators of liquidity. Low liquidity can lead to slippage

  • theta – Represents time decay. This value indicates how much value the option is expected to lose per day, assuming all other factors remain constant


Practical Use Cases

By automating the retrieval of this data, you can power several advanced trading workflows:

1. Short Strangles

A short strangle involves selling an out-of-the-money (OTM) Call and an OTM Put. This strategy benefits purely from high IV crushing down to lower levels. You can use the delta field in the API response to systematically find strikes with a roughly 0.15 to 0.20 Delta, ensuring a high probability of profit.

2. Cash Secured Puts

If you are looking to acquire a stock at a discount, you can write Puts. By filtering for stocks with high volatility, you ensure you are paid a significant premium for the risk of having the shares assigned to you.

3. IV Rank Analysis

While the raw volatility is useful, the API also provides impliedVolatilityRank1y. This metric compares current volatility to the past year's range. An IV Rank of 100% means the volatility is at its yearly high—often a strong signal for premium sellers to enter the market.

Manual scanning for high volatility options often results in missed opportunities or poor execution due to delayed data. By integrating the Mboum Options API, you can programmatically filter thousands of contracts to find the exact Greeks and volatility profiles that fit your premium selling strategy.

👉 Start building your automated volatility screener today: https://mboum.com/pages/api

How to Build a Trading Strategy Using Mboum Technical Indicators Jan 14, 2026

How to Build a Trading Strategy Using Mboum...

Learn how to build a specialized trading strategy using Mboum's Technical Indicator API and Python. This tutorial covers fetching SMA data to automate Golden Cross signals without complex manual calculations.

How to Calculate SMA, EMA, RSI, and MACD Using the Mboum Indicators API Jan 14, 2026

How to Calculate SMA, EMA, RSI, and MACD...

Learn how to calculate key technical indicators including SMA, EMA, RSI, and MACD using the Mboum API. This step-by-step Python guide helps developers streamline algorithmic trading strategies by offloading complex...

How to Screen High-IV Options for Premium Selling Strategies with Mboum API Jan 14, 2026

How to Screen High-IV Options for Premium Selling...

Learn how to automate premium selling strategies by building a Python screener for high Implied Volatility (IV) contracts using the Mboum v3 Options API endpoint.

How to Detect Unusual Options Activity with the Mboum API Jan 10, 2026

How to Detect Unusual Options Activity with the...

Learn to detect Unusual Options Activity (UOA) programmatically using the Mboum API. This guide covers filtering volume vs. open interest to identify institutional smart money flows using Python.