been using thetadata for 8 months now.
here’s the real review for options algo traders.
what is thetadata #
options-focused market data provider.
specializes in:
- real-time options greeks
- historical options data
- end-of-day snapshots
- intraday tick data
why i switched #
before (polygon.io only):
good for stocks/futures.
options data limited.
greeks calculation: DIY.
after (thetadata + polygon):
polygon for stocks/futures.
thetadata for options greeks.
pre-calculated IV, delta, gamma, theta, vega.
pricing #
thetadata plans:
standard: $30/month (end-of-day only)
pro: $100/month (real-time + historical)
enterprise: custom pricing
my plan: pro ($100/month)
value: saves 10+ hours/month calculating greeks myself.
$100/month = $10/hour for saved time.
worth it.
python integration #
from thetadata import ThetaClient
client = ThetaClient(username="your_user", passwd="your_pass")
# get real-time greeks
with client.connect():
greeks = client.get_opt_greeks(
root="SPX",
exp="2025-06-20",
strike=5800,
right="C"
)
print(f"Delta: {greeks['delta']}")
print(f"Gamma: {greeks['gamma']}")
print(f"Theta: {greeks['theta']}")
print(f"Vega: {greeks['vega']}")
print(f"IV: {greeks['implied_volatility']}")
clean API. well documented.
greeks accuracy #
my testing (vs calculated):
| greek | thetadata | my calc | diff |
|---|---|---|---|
| delta | 0.4521 | 0.4518 | 0.07% |
| gamma | 0.0089 | 0.0088 | 1.14% |
| theta | -2.34 | -2.31 | 1.30% |
| vega | 12.45 | 12.42 | 0.24% |
| IV | 18.2% | 18.1% | 0.55% |
accuracy: excellent
differences within acceptable tolerance.
historical data quality #
coverage:
- SPX options: 2010+
- ETF options: 2012+
- equity options: 2015+
granularity:
- end-of-day: included in standard
- 1-minute: pro plan
- tick data: enterprise
my use case:
backtesting options strategies 2020-2025.
5 years of greeks data.
critical for volatility research.
bulk data retrieval #
import pandas as pd
from thetadata import ThetaClient
client = ThetaClient(username="user", passwd="pass")
with client.connect():
# get all SPX options for expiration
chain = client.get_opt_chain(
root="SPX",
exp="2025-06-20"
)
df = pd.DataFrame(chain)
print(f"Options in chain: {len(df)}")
print(f"Strikes: {df['strike'].nunique()}")
speed: ~500 options/second
fast enough for real-time chain scanning.
comparing to alternatives #
| feature | thetadata | polygon | CBOE livevol |
|---|---|---|---|
| price | $100/mo | $200/mo | $500/mo |
| greeks | pre-calc | DIY | pre-calc |
| latency | 50ms | 30ms | 20ms |
| history | 15 years | 5 years | 20 years |
| API quality | excellent | good | good |
winner for options: thetadata (best value)
winner for stocks: polygon (better latency)
integration with my stack #
# my options data pipeline
class OptionsDataManager:
def __init__(self):
self.theta = ThetaClient(username=THETA_USER, passwd=THETA_PASS)
self.polygon = PolygonClient(api_key=POLYGON_KEY)
def get_option_data(self, symbol, expiry, strike, right):
"""Get complete option data from both sources"""
with self.theta.connect():
greeks = self.theta.get_opt_greeks(
root=symbol,
exp=expiry,
strike=strike,
right=right
)
# polygon for underlying price
underlying = self.polygon.get_snapshot(symbol)
return {
'greeks': greeks,
'underlying_price': underlying['price'],
'underlying_volume': underlying['volume']
}
thetadata + polygon = complete options data stack.
what i use it for #
1. delta-neutral positioning:
real-time delta tracking across portfolio.
automated rebalancing triggers.
2. volatility analysis:
IV rank calculations.
term structure analysis.
skew monitoring.
3. backtesting:
historical greeks for strategy testing.
IV percentile backtests.
theta decay modeling.
limitations #
cons:
- no futures options (CME only via separate feed)
- websocket stability issues occasionally
- documentation could be better organized
workarounds:
- use polygon for ES/NQ futures data
- implement reconnection logic
- join their discord for support
real-world performance #
my options strategy results (thetadata-powered):
2024: +$28,400 options P&L
2025 YTD: +$14,200 options P&L
attribution:
better greeks data = better entry timing.
IV percentile filters = fewer bad trades.
real-time delta = faster hedging.
recommendation #
who should use thetadata:
- options algo traders (essential)
- volatility researchers
- anyone selling premium
who shouldn’t:
- stock-only traders (polygon better)
- futures traders (not their focus)
- casual investors (overkill)
the NexusFi historical options data discussion has good comparison of options data providers if you’re evaluating alternatives.
final verdict #
thetadata: 8.5/10
pros:
- pre-calculated greeks (huge time saver)
- excellent historical coverage
- reasonable pricing ($100/mo)
- clean python API
cons:
- occasional websocket issues
- no futures options
- documentation gaps
my allocation: 100% of options data budget
tonight (june 5, 2:45am) #
thetadata review. been using 8 months for options greeks. $100/month pro plan. pre-calculated delta, gamma, theta, vega, IV. accuracy within 1% of my calculations. 15 years historical data. 500 options/second bulk retrieval. comparing: thetadata best value for options, polygon better for stocks. integration with my stack working well. 2025 ytd +$14,200 options P&L powered by better greeks data. recommendation: essential for options algo traders.
2:45am thursday. thetadata 8-month review. options greeks data provider. $100/mo pro plan worth it (saves 10+ hrs/mo calculating greeks). accuracy excellent (<1.5% diff vs manual calc). historical coverage 2010+. clean python API. comparing: thetadata for options, polygon for stocks, CBOE livevol overpriced. options strategy P&L: 2024 +$28,400, 2025 ytd +$14,200. essential for options algo trading.
-AK