Subscribes/Unsubscribes to market options Order Book Snapshots data.
Once you're connected to this subscription: wss://ws.amberdata.com/options, every subscription message must include an explicit instrument
. This is mandatory across all market types.
- You must always specify the
instrument
. - For Futures and Options, you must also include the
exchange
field.
See here for more details and examples.
Request
{
"jsonrpc" : "2.0",
"id" : 1,
"method" : "subscribe",
"params" : [ "market:options:order:snapshots", { "instrument": "BTC-24JUN22-15000-P", "exchange": "deribit" } ]
}
Param | Type | Description |
---|---|---|
instrument | string | The asset instrument. (REQUIRED) |
exchange | string | The exchange for which to retrieve asset instruments. (OPTIONAL) |
Response
{
"jsonrpc": "2.0",
"method": "subscription",
"params": {
"subscription": "cd09d018-fa34-408d-aef7-8a5ef2c641b3",
"result": {
"exchange": "deribit",
"instrument": "BTC-12APR24-71000-C",
"timestamp": 1711571460000,
"exchangeTimestamp": 1711571461951,
"exchangeTimestampNanoseconds": 0,
"underlyingPrice": 69599.7133,
"underlyingIndex": "SYN.BTC-12APR24",
"stats": {
"volume_usd": 376871.48,
"volume": 88.7,
"price_change": -16.9492,
"low": 0.049,
"high": 0.0669
},
"state": "open",
"openInterest": 293.2,
"minPrice": 0.017,
"maxPrice": 0.1,
"markPrice": 0.0477,
"markIv": 69.04,
"lastPrice": 0.049,
"interestRate": 0,
"indexPrice": 68922.78,
"greeks": {
"rho": 12.53638,
"theta": -127.22042,
"vega": 57.04281,
"gamma": 0.00004,
"delta": 0.47249
},
"estimatedDeliveryPrice": 68922.78,
"bids": [
[
0.0475,
4.7
],
[
0.047,
53.7
],
[
0.0465,
13.4
]
],
"bidIv": 68.75,
"bestBidPrice": 0.0475,
"bestBidAmount": 4.7,
"bestAskPrice": 0.0485,
"bestAskAmount": 26.4,
"asks": [
[
0.0485,
26.4
],
[
0.049,
38.8
],
[
0.0495,
8
]
],
"askIv": 69.97,
"sequence": 68116518368,
"metadata": {
"settlementPrice": 0.05367167
}
}
}
}
Field | Type | Description | |
---|---|---|---|
exchange | string | The exchange. | |
instrument | string | The instrument. | |
timestamp | number | The time at which the order book snapshot took place. | |
exchangeTimestamp | `number \ | null` | Timestamp that the exchange returned. |
exchangeTimestampNanoseconds | `number \ | null` | Nanoseconds part of exchangeTimestamp . |
underlyingPrice | `number \ | null` | Underlying price for implied volatility calculations. |
underlyingIndex | `string \ | null` | Name of the underlying future, or indexPrice . |
stats | `object \ | null` | |
stats.high | `number \ | null` | Highest price during 24h. |
stats.low | `number \ | null` | Lowest price during 24h. |
stats.price_change | `number \ | null` | 24-hour price change expressed as a percentage, null if there weren't any trades. |
stats.volume | `number \ | null` | Volume during last 24h in base currency. |
stats.volume_usd | `number \ | null` | |
state | `string \ | null` | The state of the order book. Possible values are open and closed . |
openInterest | `number \ | null` | The amount of corresponding cryptocurrency contracts, e.g., BTC or ETH. |
minPrice | `number \ | null` | The minimum price for the future. Any sell orders you submit lower than this price will be clamped to this minimum. |
maxPrice | `number \ | null` | The maximum price for the future. Any buy orders you submit higher than this price, will be clamped to this maximum. |
markPrice | `number \ | null` | The mark price for the instrument. |
markIv | `number \ | null` | Implied volatility for mark price. |
lastPrice | `number \ | null` | The price for the last trade. |
interestRate | `number \ | null` | Interest rate used in implied volatility calculations. |
indexPrice | `number \ | null` | Current index price |
greeks | `object \ | null` | |
greeks.delta | `number \ | null` | The delta value for the option. |
greeks.gamma | `number \ | null` | The gamma value for the option. |
greeks.rho | `number \ | null` | The rho value for the option. |
greeks.theta | `number \ | null` | The theta value for the option. |
greeks.vega | `number \ | null` | The vega value for the option. |
estimatedDeliveryPrice | `number \ | null` | The settlement price for the instrument. Only when state = open . |
bids | array of [price, amount] | List of bids. | |
bidIv | `number \ | null` | Implied volatility for best bid. |
bestBidPrice | `number \ | null` | The current best bid price, null if there aren't any bids. |
bestBidAmount | `number \ | null` | It represents the requested order size of all best bids. |
bestAskPrice | `number \ | null` | The current best ask price, null if there aren't any asks. |
bestAskAmount | `number \ | null` | It represents the requested order size of all best asks. |
asks | array of [price, amount] | List of asks. | |
askIv | `number \ | null` | Implied volatility for best ask. |
sequence | `number \ | null` | |
metadata | `object \ | null` |
Example
const WebSocket = require('ws');
const ws = new WebSocket('wss://ws.amberdata.com/options', {headers: {x-api-key:'<api_key>'}});
ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'subscribe',
params: ['market:options:order:snapshots'],
id: 1,
}));
});
ws.on('message', data => {
console.log(JSON.stringify(JSON.parse(data), null, 2));
});