Documentation
The Questrade API allows developers to create their own fully featured trading and analytical applications through their brokerage account.
REST operations
GET markets/quotes/options
Retrieves a single Level 1 market data quote and Greek data for one or more option symbols.
Request parameters
| Parameter | Type | Description |
|---|---|---|
| Parameterfilters | TypeComplex | DescriptionInput array of OptionIdFilter structures |
| Parameterids | TypeInteger[ ] | DescriptionInput array of option IDs. |
OptionIdFilter
Option filters based on underlying Ids
| Name | Type | Default | Description |
|---|---|---|---|
| NameoptionType | TypeEnumeration | Default | DescriptionOption type |
| NameunderlyingId | TypeInteger | Default | DescriptionUnderlying ID |
| NameexpiryDate | TypeDateTime | Default | DescriptionExpiry date |
| NameminstrikePrice | TypeDouble | Default0 | DescriptionMin strike price |
| NamemaxstrikePrice | TypeDouble | Default0 | DescriptionMax strike price |
Response properties
| Property | Type | Description |
|---|---|---|
| Propertyquotes | TypeComplex | DescriptionList of Level1OptionData records. |
| PropertyLevel1OptionData | TypeComplex | Description |
| Propertyunderlying | TypeString | DescriptionUnderlying name |
| PropertyunderlyingId | TypeInteger | DescriptionUnderlying ID |
| Propertysymbol | TypeString | DescriptionSymbol name |
| PropertysymbolId | TypeInteger | DescriptionSymbol ID |
| PropertybidPrice | TypeDouble | DescriptionBid price |
| PropertybidSize | TypeInteger | DescriptionBid size |
| PropertyaskPrice | TypeDouble | DescriptionAsk price |
| PropertyaskSize | TypeInteger | DescriptionAsk size |
| PropertylastTradePriceTrHrs | TypeDouble | DescriptionLast trade price trade hours |
| PropertylastTradePrice | TypeDouble | DescriptionLast trade price |
| PropertylastTradeSize | TypeInteger | DescriptionLast trade size |
| PropertylastTradeTick | TypeEnumeration | DescriptionLast trade tick |
| PropertylastTradeTime | TypeDateTime | DescriptionLast trade time |
| Propertyvolume | TypeInteger | DescriptionVolume |
| PropertyopenPrice | TypeDouble | DescriptionOpen price |
| PropertyhighPrice | TypeDouble | DescriptionHigh price |
| PropertylowPrice | TypeDouble | DescriptionLow price |
| Propertyvolatility | TypeDouble | DescriptionVolatility |
| Propertydelta | TypeDouble | DescriptionDelta |
| Propertygamma | TypeDouble | DescriptionGamma |
| Propertytheta | TypeDouble | DescriptionTheta |
| Propertyvega | TypeDouble | DescriptionVega |
| Propertyrho | TypeDouble | DescriptionRho |
| PropertyopenInterest | TypeInteger | DescriptionOpen interest |
| Propertydelay | TypeInteger | DescriptionHow much is data delayed |
| PropertyisHalted | TypeBoolean | DescriptionWhether or not the symbol was halted |
| PropertyVWAP | TypeDouble | DescriptionVolume Weighted Average Price |
The underlyingId and expiryDate fields are required in filters. Other fields are optional (if you need multiple expiries, specify multiple filters). You can specify an OptionIds and/or a filters vectors in any given request.
Sample request
POST https://api01.iq.questrade.com/v1/markets/quotes/options
{
“filters”: [
{
“optionType”: ”Call”,
“underlyingId”: 27426,
“expiryDate”: ”2017-01-20T00:00:00.000000-05:00”,
“minstrikePrice”: 70,
“maxstrikePrice”: 80
},
...
],
“optionIds”:
[
9907637,
9907638,
...
]
}Sample response
{
“optionQuotes”: [
{
“underlying”: ”MSFT”,
“underlyingId”: 27426,
“symbol”: ”MSFT20Jan17C70.00”,
“symbolId”: 7413503,
“bidPrice”: 4.90,
“bidSize”: 0,
“askPrice”: 4.95,
“askSize”: 0,
“lastTradePriceTrHrs”: 4.93,
“lastTradePrice”: 4.93,
“lastTradeSize”: 0,
“lastTradeTick”: ”Equal”,
“lastTradeTime”: ”2015-08-17T00:00:00.000000-04:00”,
“volume”: 0.
“openPrice”: 0,
“highPricehighPrice”: 4.93,
“lowPrice”: 0,
“volatility”: 52.374257,
“delta”: 0.06985,
“gamma”: 0.01038,
“theta”: -0.001406,
“vega”: 0.074554,
“rho”: 0.04153,
“openInterest”: 2292,
“delay”: 0,
“isHalted”: false,
“VWAP”: 0
},
...
]
}Already a Questrade client?
Create your first application using your Questrade account.
Integrate your application with Questrade API
Support
If you are using an api app developed by a third party, you are required to read, understand and accept the end-user license agreement for application program interface. If you are utilizing api access for an api-enabled app you built, you are required to read, understand and accept the Questrade personal application program interface ("api") license agreement ("license agreement"). This agreement can be found below. You may be bound by both agreements.


