been using polygon.io for options data since april. here’s my review after 1 month.
background #
was using alpha vantage (free tier) until march. data quality was shit:
- delayed quotes (5-15 min lag)
- missing greeks
- API rate limits constantly hit
- no real-time options chain
switched to polygon april 1. paying $99/month for stocks + options plan.
what polygon gives you #
real-time data:
- stock prices (sub-second latency)
- options chains (all strikes, all expirations)
- greeks (delta, gamma, theta, vega, rho)
- IV data
- open interest and volume
historical data:
- minute bars back to 2004
- daily bars back to forever
- options historical pricing
- splits/dividends adjusted
API quality:
- websocket streaming (for real-time)
- REST API (for historical)
- 5 requests/second limit (plenty for my needs)
- python client library (works well)
integration code #
from polygon import RESTClient
from polygon import WebSocketClient
class PolygonDataFeed:
def __init__(self, api_key):
self.rest_client = RESTClient(api_key)
self.ws_client = WebSocketClient(
api_key=api_key,
feed='options' # or 'stocks', 'forex', 'crypto'
)
def get_options_chain(self, underlying, expiration):
"""Get full options chain for expiration date"""
chain = self.rest_client.list_options_contracts(
underlying_ticker=underlying,
expiration_date=expiration
)
return chain
def get_option_greeks(self, option_symbol):
"""Get greeks for specific option"""
snapshot = self.rest_client.get_snapshot_option(
underlying_ticker=self.extract_underlying(option_symbol),
option_contract=option_symbol
)
return snapshot.greeks
def stream_quotes(self, symbols, callback):
"""Stream real-time option quotes"""
def handle_msg(msgs):
for msg in msgs:
callback(msg)
self.ws_client.subscribe_options_trades(symbols)
self.ws_client.run(handle_msg)
data quality #
greeks accuracy:
compared polygon greeks vs my black-scholes calculations. usually within 2-3% which is fine for my strategies.
occasionally see bigger differences (5-10%) on deep OTM options with low volume. probably stale data or wide bid-ask causing issues.
latency:
websocket quotes arrive 50-200ms after trade timestamp. good enough for my 1-5 minute bar strategies.
not suitable for HFT but i’m not doing that.
reliability:
one outage in april (lasted 15 minutes). otherwise 99.9%+ uptime.
historical data requests occasionally timeout but retry logic handles it.
vs alternatives #
polygon vs alpha vantage:
- polygon: real-time, accurate greeks, $99/month
- alpha vantage: delayed, missing data, free
obvious winner for anyone serious.
polygon vs IEX cloud:
- polygon: better options coverage
- IEX: cheaper for stocks-only
i need options so polygon wins.
polygon vs interactive brokers data:
- polygon: cleaner API, better docs
- IB: free if you’re a customer, but API is painful
using both. polygon for backtesting/analysis, IB for live trading execution.
cost analysis #
$99/month = $1,188/year
needs to save me one bad trade per year to be worth it.
better data already helped me:
- avoid 3 low-IV setups in april (saved ~$400)
- caught assignment risk earlier (saved ~$200)
- more accurate position greeks (better risk management)
easily worth $100/month.
what i wish was better #
1. options chains are huge
downloading full SPX chain with all strikes/expirations returns 5000+ contracts. takes 10-15 seconds.
wish they had better filtering on the API side instead of downloading everything then filtering locally.
2. IV percentile would be nice
they give you IV rank in some places but not consistently. had to build my own percentile calculations from historical IV.
3. docs could be better
generally good but some endpoints poorly documented. had to trial-and-error to figure out correct parameters.
alternatives i considered #
thetadata:
- $60/month
- similar features
- smaller company (worried about reliability)
tradier:
- $30/month
- less options coverage
- slower updates
tastyworks/TD ameritrade APIs:
- free with account
- data quality inconsistent
- rate limits too restrictive
recommendation #
if you’re trading options algorithmically, polygon is worth it. $99/month is nothing compared to trading losses from bad data.
i’ll probably keep polygon long-term. only reason to switch would be if i move to HFT and need ultra-low latency (which isn’t happening).
my setup #
currently:
- polygon for real-time data + backtesting
- IB for order execution
- timescaledb for storing historical bars
- redis for caching recent data
works well. no latency issues. data quality is solid.
8:15pm. been meaning to write this review for weeks. polygon is legit, would recommend.
-AK