market:options:order:snapshots

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" } ]
}
ParamTypeDescription
instrumentstringThe asset instrument. (REQUIRED)
exchangestringThe 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
            }
        }
    }
}
FieldTypeDescription
exchangestringThe exchange.
instrumentstringThe instrument.
timestampnumberThe 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.
bidsarray 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.
asksarray 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));
});