getOptionsScreener API

The getOptionsScreener API allows a user to screen for specific equity and ETF option strikes using a variety of filters and parameters that highlight where unusual options activity may be occuring. Users can build powerful market scanners to implement professional trading strategies.

All APIs

Contact Us to Get Access

Inputs

instrumentType optional

The type of underlying instrument of the option. If a user does not specify a particular instrument type, then stocks are returned by default.

Type
enum (A type which includes a list of valid possible values.) 
Example
stocks 
Default
stocks 

Valid Values:
stocks, etfs

optionType optional

Specify whether to return calls, puts, or both types of instruments

Type
enum (A type which includes a list of valid possible values.) 
Example
both 
Default
both 

Valid Values:
call, put, both

minVolume optional

The minimum volume for the data set

Type
int (A numeric type defining a whole number. (example: 2)) 
Example
10000 

maxVolume optional

The maximum volume for the data set

Type
int (A numeric type defining a whole number. (example: 2)) 
Example
10000 

minOpenInterest optional

The minimum open interest value for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.91 

maxOpenInterest optional

The maximum open interest value for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.91 

minDTE optional

The minimum days to expiry (DTE) of the options returned in the dataset. DTE is based on calendar days

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.12 

maxDTE optional

The maximum days to expiry (DTE) of the options returned in the dataset. DTE is based on calendar days

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.21 

minPrice optional

The minimum price for a particular strike to be returned in the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.11 

maxPrice optional

The maximum price for a particular strike to be returned in the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.13 

minVolumeOpenInterestRatio optional

The minimum volume/open interest ratio for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.21 

maxVolumeOpenInterestRatio optional

The maximum volume/open interest ratio for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.24 

minDelta optional

The minimum delta value for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
12.4 

maxDelta optional

The maximum delta value for the data set

Type
double (A numeric type defining a number with fractional parts. (example: 2.14)) 
Example
1.24 

fields optional

A comma separated list of the optional output fields that should be included in the result.

Type
list (A comma or semi-colon delimited string.) 
Example
delta,gamma 

limit optional

The number of maximum results that should be returned

Type
enum (A type which includes a list of valid possible values.) 
Example
100 
Default
100 

Valid Values:
100, 200, 300, 400, 500

page optional

The page number to return the results. This sets the offset for the results.s

Type
int (A numeric type defining a whole number. (example: 2)) 
Example
Default

eod optional

End of day data is returned by default. Pass ‘false’ to return intraday values

Type
boolean (A logical type representing the truth of a value as 'true' or 'false'.) 
Default

Outputs

Name / Requirement
Description
Type
underlyingSymbol
always returned
The underlying instrument symbol
string
A sequence of characters. (example: GOOG)
instrumentType
always returned
String classifying the type of instrument, either 'Stocks' or 'ETF'
string
A sequence of characters. (example: GOOG)
exchange
always returned
Exchange code for the marketplace where the financial instruments are listed.
string
A sequence of characters. (example: GOOG)
type
always returned
The type of option, either call or put.
string
A sequence of characters. (example: GOOG)
strike
always returned
The strike price for the given option
float
A numeric type defining a number with fractional parts. (example: 2.14)
expirationDate
always returned
Expiration date for the option
date
A date in the format of YYYY-MM-DD.
lastPrice
always returned
The last price for the underlying instrument
float
A numeric type defining a number with fractional parts. (example: 2.14)
optionPrice
always returned
The last price of the option
float
A numeric type defining a number with fractional parts. (example: 2.14)
optionNetChange
always returned
Net change in the option price
float
A numeric type defining a number with fractional parts. (example: 2.14)
tradeTime
always returned
The time indicative of the price.
dateTime
A date and time in the format of YYYY-MM-DD HH:MI:SS<TIMEZONE_OFFSET>.
delta
as requested
The ratio of change in the price of the instrument price to the corresponding change in the price of option
float
A numeric type defining a number with fractional parts. (example: 2.14)
gamma
as requested
The rate of change in the option's delta per 1-point move in the underlying instrument's price
float
A numeric type defining a number with fractional parts. (example: 2.14)
theta
as requested
A measure of the rate of decline in the value of the option due to the passage of time
float
A numeric type defining a number with fractional parts. (example: 2.14)
vega
as requested
The measurement of the option's sensitivity to changes in teh volatility of the underlying instrument
float
A numeric type defining a number with fractional parts. (example: 2.14)
bid
as requested
Current bid price
float
A numeric type defining a number with fractional parts. (example: 2.14)
ask
as requested
Current ask price
float
A numeric type defining a number with fractional parts. (example: 2.14)
volume
as requested
The volume of the option
int
A numeric type defining a whole number. (example: 2)
openInterest
as requested
Current open intereset for the option
float
A numeric type defining a number with fractional parts. (example: 2.14)
volumeOpenInterestRatio
as requested
Ratio of volume to open interest
float
A numeric type defining a number with fractional parts. (example: 2.14)
volatility
as requested
The statistical measure of the dispersion of returns for the option
float
A numeric type defining a number with fractional parts. (example: 2.14)

Status Code Responses

200
OK
Success
400
Bad Request
The request was invalid, please see the message for more information.
500
Internal Server Error
Something is not working correctly, please contact support.


JSON

GET

GET https://ondemand.websol.barchart.com/getOptionsScreener.json?apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1
Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getOptionsScreener.json
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1

Response

{
    "status": {
        "code": 204,
        "message": "Success, but no content to return."
    },
    "results": null
}

XML

GET

GET https://ondemand.websol.barchart.com/getOptionsScreener.xml?apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1
Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getOptionsScreener.xml
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1

Response


<?xml version="1.0" encoding="utf-8"?>
 <getOptionsScreener>
  <status>
   <code>204</code>
   <message>Success, but no content to return.</message>
  </status>
 </getOptionsScreener>

CSV

GET

GET https://ondemand.websol.barchart.com/getOptionsScreener.csv?apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1
Host: ondemand.websol.barchart.com

POST

POST https://ondemand.websol.barchart.com/getOptionsScreener.csv
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

apikey=YOUR_API_KEY&instrumentType=stocks&optionType=both&minVolume=10000&maxVolume=10000&minOpenInterest=1.91&maxOpenInterest=1.91&minDTE=1.12&maxDTE=1.21&minPrice=1.11&maxPrice=1.13&minVolumeOpenInterestRatio=1.21&maxVolumeOpenInterestRatio=1.24&minDelta=12.4&maxDelta=1.24&fields=delta%2Cgamma&limit=100&page=1

Response




PHP

<?php

$ondemand = new SoapClient('https://ondemand.websol.barchart.com/service?wsdl');

$params = [
    'apikey' => 'YOUR_API_KEY',
    'instrumentType' => 'stocks',
    'optionType' => 'both',
    'minVolume' => '10000',
    'maxVolume' => '10000',
    'minOpenInterest' => '1.91',
    'maxOpenInterest' => '1.91',
    'minDTE' => '1.12',
    'maxDTE' => '1.21',
    'minPrice' => '1.11',
    'maxPrice' => '1.13',
    'minVolumeOpenInterestRatio' => '1.21',
    'maxVolumeOpenInterestRatio' => '1.24',
    'minDelta' => '12.4',
    'maxDelta' => '1.24',
    'fields' => 'delta,gamma',
    'limit' => '100',
    'page' => '1',
];

$result = $ondemand->getOptionsScreener($params);
var_dump($result);

Classic ASP

Dim ondemand
Dim result

Set ondemand = Server.CreateObject("MSSOAP.SoapClient30")
ondemand.ClientProperty("ServerHTTPRequest") = True
ondemand.MSSoapInit("https://ondemand.websol.barchart.com/service?wsdl")

Set result = ondemand.getOptionsScreener("YOUR_API_KEY", "stocks", "both", "10000", "10000", "1.91", "1.91", "1.12", "1.21", "1.11", "1.13", "1.21", "1.24", "12.4", "1.24", "delta,gamma", "100", "1")

Perl

use SOAP::Lite;
use SOAP::WSDL;

my $ondemand = SOAP::Lite
    -> service('https://ondemand.websol.barchart.com/service?wsdl');

my $result = $ondemand->getOptionsScreener('YOUR_API_KEY', 'stocks', 'both', '10000', '10000', '1.91', '1.91', '1.12', '1.21', '1.11', '1.13', '1.21', '1.24', '12.4', '1.24', 'delta,gamma', '100', '1');

print $result;

Python

from suds.client import Client
ondemand = Client('https://ondemand.websol.barchart.com/service?wsdl')

result = client.service.getOptionsScreener('YOUR_API_KEY', 'stocks', 'both', '10000', '10000', '1.91', '1.91', '1.12', '1.21', '1.11', '1.13', '1.21', '1.24', '12.4', '1.24', 'delta,gamma', '100', '1')

print result

Ruby

require 'savon'

ondemand = Savon.client(wsdl: 'https://ondemand.websol.barchart.com/service?wsdl')

response = ondemand.call(
    :getOptionsScreener,
    message: {
        apikey: 'YOUR_API_KEY',
        instrumentType: 'stocks',
        optionType: 'both',
        minVolume: '10000',
        maxVolume: '10000',
        minOpenInterest: '1.91',
        maxOpenInterest: '1.91',
        minDTE: '1.12',
        maxDTE: '1.21',
        minPrice: '1.11',
        maxPrice: '1.13',
        minVolumeOpenInterestRatio: '1.21',
        maxVolumeOpenInterestRatio: '1.24',
        minDelta: '12.4',
        maxDelta: '1.24',
        fields: 'delta,gamma',
        limit: '100',
        page: '1',
    }
)

response.body