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 Pull Company Profile Modules with the Mboum API Oct 01, 2026

How to Pull Company Profile Modules with the Mboum API

Pull one company profile module at a time for a ticker and read address, sector, summary, and officers from the Mboum stock modules endpoint.

How to Get a Cryptocurrency Profile with the Mboum API Sep 30, 2026

How to Get a Cryptocurrency Profile with the Mboum API

Crypto dashboards need more than a price tick, and a profile lookup gives you the coin name, symbol, category, and official links so you can label charts and deep-link to...

How to Fetch the Economic Calendar with the Mboum API Sep 30, 2026

How to Fetch the Economic Calendar with the Mboum API

Macro calendars matter for overnight risk and event-driven strategies, and actual, consensus, and previous values help you see whether a release beat or missed expectations.

How to Pull Analyst Price Targets with the Mboum API Sep 29, 2026

How to Pull Analyst Price Targets with the Mboum API

Consensus price targets help you summarize what analysts expect for a name without collecting each research note yourself.