API Documentation
Programmatic access to screened options strategy data across 15 strategies.
API access is included with direct Option Screener Premium subscriptions and the Trader Bundle.
Authentication
Pass the key generated on your Account page in the X-API-Key header.
Endpoint
/api/getOptionsDataRetrieve screened contracts for one strategy with optional filters, sorting, and pagination.
- Base URL:
- https://option-screener.com/api
- Rate limit:
- 60 requests per 60 seconds, aggregated by IP address and domain
Option Chains and Ticker Retrieval
The API does not return a raw, exhaustive exchange option chain. It returns the contracts and multi-leg combinations produced by a selected Option Screener strategy.
For a strategy-oriented, chain-like view, query an exact symbol with ticker=AAPL, request up to 500 records per page, and continue until you have collected the reported total. Repeat for each relevant strategy, then group records by expiration, strike, call/put type, and contract or leg identifiers.
Strategies
| Code | Strategy | Category |
|---|---|---|
| CC | Covered Call | Wheel |
| CSP | Cash-Secured Put | Wheel |
| LC | Long Call | Long |
| LP | Long Put | Long |
| CDS | Call Debit Spread | Spreads |
| CCS | Call Credit Spread | Spreads |
| PDS | Put Debit Spread | Spreads |
| PCS | Put Credit Spread | Spreads |
| LSTRAD | Long Straddle | Volatility |
| LSTRANGLE | Long Strangle | Volatility |
| LCCS | Long Call Calendar | Calendar |
| LPCS | Long Put Calendar | Calendar |
| SCCS | Short Call Calendar | Calendar |
| SPCS | Short Put Calendar | Calendar |
| LEAPS | LEAPS | LEAPS |
Query Parameters
Only strategy is required. Exact ticker and partial search filters cannot be combined.
| Name | Type | Required | Description |
|---|---|---|---|
| strategy | string | Yes | One of: CC, CSP, LC, LP, CDS, CCS, PDS, PCS, LSTRAD, LSTRANGLE, LCCS, LPCS, SCCS, SPCS, LEAPS |
| ticker | string | No | Case-insensitive exact ticker match, such as AAPL |
| search | string | No | Case-insensitive partial ticker match; cannot be combined with ticker |
| min_score / max_score | number | No | Composite score range |
| min_delta / max_delta | number | No | Option delta range |
| min_dte / max_dte | number | No | Days-to-expiration range |
| min_stock_price / max_stock_price | number | No | Underlying price range |
| min_strike / max_strike | number | No | Strike price range |
| min_iv / max_iv | number | No | Implied volatility range |
| min_volume / max_volume | number | No | Contract volume range |
| min_oi / max_oi | number | No | Open interest range |
| min_market_cap / max_market_cap | number | No | Market capitalization range |
| min_beta / max_beta | number | No | Underlying beta range |
| min_pe / max_pe | number | No | Price-to-earnings range |
| min_annualized_return / max_annualized_return | number | No | Annualized return range |
| min_pop / max_pop | number | No | Delta-based probability-of-profit range |
| min_max_profit / max_max_profit | number | No | Maximum profit range |
| min_max_loss / max_max_loss | number | No | Maximum loss range |
| min_pl / max_pl | number | No | Profit/loss metric range |
| sector / industry / country / exchange / index | string | No | Comma-separated values to include |
| exclude_sector / exclude_industry / exclude_country / exclude_exchange / exclude_index | string | No | Comma-separated values to exclude |
| order_by | string | No | Response column used for sorting; defaults to score |
| order_direction | string | No | asc or desc; defaults to desc |
| page | integer | No | One-based page number; defaults to 1 |
| page_size | integer | No | Results per page; defaults to 50 and values above 500 are capped at 500 |
Response
Successful responses use a paginated JSON envelope and are gzip-compressed.
{
"success": true,
"data": [
{
"ticker": "AAPL",
"option_id": "example-contract-id",
"strategy": "CC",
"expiration_date": "2026-07-17T00:00:00Z",
"strike": 210,
"put_call": "C",
"bid": 3.10,
"ask": 3.25,
"mark": 3.18,
"iv": 0.28,
"delta": 0.31,
"open_interest": 8400,
"volume": 1250,
"score": 92
}
],
"total": 1842,
"page": 1,
"page_size": 500
}| Fields | Description |
|---|---|
| ticker | Underlying symbol |
| option_id / full_contract_name | Contract identifiers |
| strategy / option_legs | Strategy code and multi-leg definition when applicable |
| expiration_date / days_to_expiration | Expiration timestamp and DTE |
| strike / put_call | Strike and call/put type |
| bid / ask / last / mark | Contract pricing |
| volume / open_interest | Contract activity and liquidity |
| iv / delta / gamma / theta / vega / rho | Implied volatility and Greeks |
| score / liquidity_percent | Option Screener ranking metrics |
| max_profit / max_loss / pl / delta_pop / annualized_return | Strategy risk and return metrics when applicable |
| stock_price / market_cap / beta / price_to_earnings | Underlying market and fundamental data |
| sector / industry / country / exchange / index | Underlying classifications |
Examples and Official Clients
The examples retrieve covered-call results for AAPL in expiration order.
curl --compressed \
-H "X-API-Key: optionscreener_live_YOUR_KEY" \
"https://option-screener.com/api/getOptionsData?strategy=CC&ticker=AAPL&page=1&page_size=500&order_by=expiration_date&order_direction=asc"Errors
Error responses use {"success":false,"error":"message"}.
| Status | Meaning | Description |
|---|---|---|
| 400 | Bad Request | A required parameter is missing or a supplied value is invalid |
| 401 | Unauthorized | The API key is missing or invalid |
| 403 | Forbidden | The API key is valid but its API entitlement is inactive |
| 429 | Too Many Requests | The 60-request rate limit was exceeded |
| 500 | Internal Server Error | The request could not be completed by the service |
Ready to get started?
Generate your API key from the Account page and start querying screened data.
Get Your API Key