VERSION 1.7 (see Revision History)

1. Hosts

Environment REST WS WebApp

DEV

https://api.rest.dev.power.trade/

wss://api.wss.dev.power.trade/

https://powertrade-web-dev.web.app/

TEST

https://api.rest.test.power.trade/

wss://api.wss.test.power.trade/

https://powertrade-web-test.web.app/

STAGING

https://api.rest.staging.power.trade/

wss://api.wss.staging.power.trade/

https://powertrade-web-staging.web.app/

PROD

https://api.rest.prod.power.trade/

wss://api.wss.prod.power.trade/

https://app.power.trade/

2. Introduction

Market Data Feeds API is based on WebSocket API’s Market Data interface but has several important simplifications:

  • Session Control Protocol is eliminated in Feeds, so clients don’t need to implement it;

  • Feeds provide snapshots of order books and price books (listed in Feeds Additional Messages), so clients don’t need to build books from incremental updates (no need to implement the algorythms of chapter Order Book Handling);

  • Feeds provide additional rte_* messages (listed in Feeds Additional Messages) - the simplified editions of original Market Data messages where monetary values are added as new fields, so clients don’t need to convert to decimal monetary values (no need to implement conversions described in chapter Monetary Values), please see the Note;

  • Feeds allow clients to filter market data by product types, symbols and message types.

So the main concept of Market Data Feeds is to support a simpler handling of Market Data on client side. Thanks to mentioned above simplifications, clients can connect their WebSocket applications to desirable sub-streams of Market Data using connection parameters (filters) added to the API URL. Incremental subscription to new types of market data is also supported without reconnection (see Feeds control messages: subscribe, unsubscribe).

Please find various How-tos in the next chapters.

2.1. API URLs

Table 1. PowerTrade WebSocket Market Data Feeds API URLs:
Service Message set URI in Production Is authentication required?

BASE_URL

Market Data Feeds Messages

wss://api.wss.prod.power.trade/v1/feeds

no

Reference Data

reference data, subset of Market Data Feeds Messages

BASE_URL/reference_data

no

Per symbol Market Data

Market Data Feeds Messages

BASE_URL/{symbol_prefix}

or

BASE_URL/{tradeable_entity_id}

no

Start with zero subscriptions

Market Data Feeds Messages

BASE_URL/market_data

no

Table 2. Sandbox environment of PowerTrade Market Feeds WebSocket API available for API clients testing:
Service URI in Sandbox

Market Data Feeds

wss://api.wss.test.power.trade/v1/feeds

2.2. Connection parameters

Table 3. connection string parameters
Field Type Mandatory Description

tradeable_type[]

string

No

The type of markets to return data for.

Please see tradeable_type[] supported values

To exclude a certain type, use ^ character before such type (see sample requests).

type[]

string

No

Allow clients to specify messages types to return. See below for supported types. Defaults to all messages.

Please see type[] supported values

To exclude a certain type, use ^ character before such type (see sample requests).

examples:

to include rte_* messages, specify all_rte; to exclude rte_* messages, specify ^all_rte;

market_id[]

string

No

Allow clients to specify markets to return. See below for supported types. Defaults to all markets.

Please see market_id[] supported values

snapshot_depth

number

No

Maximal depth (number of price levels) of each book side. Default value is 25 levels per side.

mbp_period

number with optional units character

No

Price book snapshot update period. 0 means that no snapshots are sent. 1 means that snapshot is sent on each order book update. Defaults to 1.

Please see Table of units characters for the details

mbo_period

number with optional units character

No

Order book snapshot update period. 0 means that no snapshots are sent. 1 means that snapshot is sent on each order book update. Defaults to 1.

Please see Table of units characters for the details

since_timestamp

timestamp

No

To receive Reference Data with age less than this timestamp.

Normally equal to the last cycle_id or to the message timestamp from previous connection.

join_json

flag

No

To pack multiple JSON messages into a single JSON-object as an array of original messages: {"join_json": […​]}. . Defaults to false.

DEPRECATED greeks_only

flag

No

Only publish risk_snapshot data. Defaults to false.

Deprecated, use the following connection parameters instead:

BASE_URL/?type[]=risk&mbp_period=0&mbo_period=0

DEPRECATED multi_leg_only

flag

No

Only publish multi-leg data. Defaults to false.

Deprecated, use the following connection parameters instead:

BASE_URL/?type[]=all_multi_leg&tradeable_type[]=multi_leg

Please note the default connection parameters used when corresponding values are omitted:

?type[]=all,subscriptions_status&mbp_period=1&mbo_period=1&snapshot_depth=25

Table 4. tradeable_type[] values
Value Description

index

Index entities

option

Option entities

perpetual

Perpetual entities

future

Future entities

spot

Spot entities

multi_leg

Multi-leg entities

Table 5. type[] values
Value Description

all (default)

all Market Data Messages,

but no rte_* messages (add all_rte if need)

subscriptions_status (default)

subscriptions_status

all_display_order

display_order_added

display_order_deleted

display_order_executed

display_order_updated

multi_leg_display_order_added

multi_leg_display_order_deleted

multi_leg_display_order_executed

multi_leg_display_order_updated

all_rte

rte_trading_rule

rte_trade

rte_last_trade_price

all_multi_leg

cycle_starting

cycle_started

cycle_ending

cycle_ended

multi_leg_display_order_added multi_leg_display_order_deleted multi_leg_display_order_executed multi_leg_display_order_updated

display_order

display_order_added

display_order_deleted

display_order_executed

display_order_updated

multi_leg_display_order

multi_leg_display_order_added multi_leg_display_order_deleted multi_leg_display_order_executed multi_leg_display_order_updated

cycle

cycle_starting

cycle_started

cycle_ending

cycle_ended

deliverable

deliverable<fx_spot> deliverable<future> deliverable<option> deliverable<exchange_token> deliverable<stable_token> deliverable<fiat_currency> deliverable<exchange_trading_limit> deliverable<perpetual_future> deliverable<index> deliverable<aliased_deliverable>

tradeable_entity

tradeable_entity<simple_market> tradeable_entity<multi_market>

trading_state

trading_state

settlement_price

settlement_price

funding_rate

funding_rate

reference_price

reference_price

trading_rule

trading_rule

top_of_book

top_of_book

trade

trade

rte_trade

rte_trade

last_trade_price

last_trade_price

rte_last_trade_price

rte_last_trade_price

risk

risk_snapshot

Table 6. market_id[] values
Value Description

0

treadable market - where firm (executable) orders are placed;

none

indicative market - where indicative orders are placed

Table 7. mbp_period, mbo_period units characters
Units character Description

no character

period is given in number of book events/updates

examples:

0 - don’t send snapshot,

1 - (default) send snapshots after every update,

10 - send snapshots after every 10 updates;

s

period is given in seconds, e.g.: 10s stands for 10 sec period;

n

period is given in nanoseconds, e.g.: 10n stands for 10 ns period;

Please see usage examples in sample requests below.

2.3. Reference Data

Returns Reference Data and tradeable entity symbols, which can be used to subscribe to specific market feeds.

Sample Requests:
// PROD
websocat wss://api.wss.prod.power.trade/v1/feeds/reference_data
wscat -c wss://api.wss.prod.power.trade/v1/feeds/reference_data

// TEST
websocat wss://api.wss.test.power.trade/v1/feeds/reference_data
wscat -c wss://api.wss.test.power.trade/v1/feeds/reference_data

2.4. Per Symbol Channels

Per symbol channels that allows you subscribe to all market data. You can optionally subscribe to a single market based on the symbol or tradeable_entity_id URl slug. You can obtain this information from the reference data above.

When passing a symbol, the API supports instrument prefixes. This means you can pass BTC, BTC-202206, BTC-20220624, BTC-20220624-30000, or BTC-20220624-30000C to receive the relevant spot, future, and option markets.

Feeds accepts connection parameters that allow clients to request specific messages and exclude others. Additionally, you can request order book and price book snapshots and obviate the need to construct order books from the display_order_* messages.

Sample Requests:
// simple examples:

wscat -c 'wss://api.wss.test.power.trade/v1/feeds/?tradeable_type[]=index'
wscat -c 'wss://api.wss.test.power.trade/v1/feeds/?type[]=all_multi_leg&mbp_period=1s&mbo_period=0&multi_leg_only'

// example of including and excluding type[] parameters in the same connection request:

wscat -c 'wss://api.wss.test.power.trade/v1/feeds/ETH-USD-INDEX?type[]=all&type[]=^tradeable_entity&mbp_period=0&mbo_period=0'
Connected (press CTRL+C to quit)
< {"cycle_starting":{"cycle_id":"1657860000000078000","previous_cycle_id":"1657859400000049000"}}
< {"trading_state":{"timestamp":"1657860511242157000","tradeable_entity_id":"2","market_id":"0","suspension_status":"active","expiry_status":"active"}}
< {"reference_price":{"timestamp":"1657860511242157000","tradeable_entity_id":"2","market_id":"0","price":"11980800000000","price_type":"reference"}}
< {"cycle_started":{"cycle_id":"1657860000000078000","previous_cycle_id":"1657859400000049000"}}

Please note the need to use quotes '' (or "") for URL strings with complex parameters as shown above.

Also please note that values of type[] to include and exclude should be passed with separate type[]:

'wss://api.wss.test.power.trade/v1/feeds/ETH-USD-INDEX?type[]=all&type[]=^tradeable_entity&mbp_period=0&mbo_period=0'

so in the example above 2 values of type[] were passed:

  • to include all messages: type[]=all

  • to exclude tradeable_entity messages: type[]=^tradeable_entity

The values of type[] to only include (or only exclude) can be passed as comma-separated values with single type[]:

'wss://api.wss.test.power.trade/v1/feeds/ETH-USD-INDEX?type[]=tradeable_entity,reference_price'

or with separate type[]:

'wss://api.wss.test.power.trade/v1/feeds/ETH-USD-INDEX?type[]=tradeable_entity&type[]=reference_price'

2.5. Start with zero subscriptions

Connect to market data feeds starting with zero subscriptions and use subscribe request to build list of subscriptions:

Sample Requests:
wscat -c 'wss://api.wss.test.power.trade/v1/feeds/market_data'
Connected (press CTRL+C to quit)
< {"cycle_starting":{"cycle_id":"1657861800000061000","previous_cycle_id":"1657861200000521000"}}
< {"cycle_started":{"cycle_id":"1657861800000061000","previous_cycle_id":"1657861200000521000"}}
> {"subscribe":{"tradeable_entity_id":"5"}}
< {"subscribed":{"tradeable_entity_id":"5","symbol":"ETH-USD"}}
< {"tradeable_entity":{"tradeable_entity_id":"5","symbol":"ETH-USD","tags":["spot"],"price_deliverable_id":"2","price_decimal_places":"4","quantity_deliverable_id":"4","quantity_decimal_places":"6","buy_trading_limit_deliverable_id":"2","sell_trading_limit_deliverable_id":"4","tradeability":"tradeable","details":{"simple_market":{"market_id":"0","settlement_event":{"datetime":{"date":{"year":"none","month":"none","day":"none"},"time":{"hours":"none","minutes":"none","seconds":"none","nanoseconds":"none"}},"timezone":"UTC"}}}}}
< {"trading_rule":{"tradeable_entity_id":"5","market_id":"0","minimum_price":"100","maximum_price":"1000000000","price_step":"100","minimum_quantity":"1000","maximum_quantity":"1000000000","quantity_step":"1000","minimum_value":"100000","maximum_value":"1000000000000000000"}}
< {"trading_state":{"timestamp":"1657862061657584000","tradeable_entity_id":"5","market_id":"0","suspension_status":"active","expiry_status":"active"}}
< {"reference_price":{"timestamp":"1657862061657584000","tradeable_entity_id":"5","market_id":"0","price":"16834900","price_type":"reference"}}
< {"top_of_book":{"timestamp":"1657862061657584000","tradeable_entity_id":"5","market_id":"0","buy_price":"16828200","buy_quantity":"3000","sell_price":"16936300","sell_quantity":"3000"}}
< {"display_order_added":{"timestamp":"1657809306625318000","tradeable_entity_id":"5","market_id":"0","side":"buy","display_order_id":"7134906","display_price":"16828200","display_quantity":"3000"}}
< {"display_order_added":{"timestamp":"1657809306624064000","tradeable_entity_id":"5","market_id":"0","side":"buy","display_order_id":"7134905","display_price":"16821400","display_quantity":"1000"}}
...

Please note the need to use quotes '' (or "") for URL strings with complex parameters as shown above.

2.6. Usage of since_timestamp and join_json

Sample Requests:
// connection with since_timestamp:
wscat -c 'wss//api.wss.dev.power.trade/v1/feeds/reference_data?since_timestamp=1660026679016175000'
< {"subscriptions_in_progress":{"timestamp":"1660026698066802000","since_timestamp":"1660026679016175000","n_subscribed_tradeable_entities":"0","n_total_tradeable_entities":"1268","n_total_multi_leg_tradeable_entities":"2"}}
< {"cycle_starting":{"cycle_id":"1660026600001459000","previous_cycle_id":"1660026000000043000"}}
< {"cycle_started":{"cycle_id":"1660026600001459000","previous_cycle_id":"1660026000000043000"}}
< {"subscriptions_status":{"timestamp":"1660026698066802000","n_subscribed_tradeable_entities":"0","n_total_tradeable_entities":"1268","n_total_multi_leg_tradeable_entities":"2"}}

// connection with since_timestamp and join_json together:
wscat -c 'wss://api.wss.dev.power.trade/v1/feeds/reference_data?since_timestamp=1660027288121670000&join_json'
< {"subscriptions_in_progress":{"timestamp":"1660027440678049000","since_timestamp":"1660027288121670000","n_subscribed_tradeable_entities":"0","n_total_tradeable_entities":"1268","n_total_multi_leg_tradeable_entities":"2"}}
< {"join_json":[{"cycle_starting":{"cycle_id":"1660127400000113000","previous_cycle_id":"1660126800000136000"}},{"cycle_started":{"cycle_id":"1660127400000113000","previous_cycle_id":"1660126800000136000"}},{"subscriptions_status":{"timestamp":"1660127945894210000","n_subscribed_tradeable_entities":"0","n_total_tradeable_entities":"1268","n_total_multi_leg_tradeable_entities":"2"}}]}
...

Please note the need to use quotes '' (or "") for URL strings with complex parameters as shown above.

3. Message Reference Book

3.1. Message Sets

This section describes the following message sets:

3.1.1. Feeds Additional Messages

This message set includes the following requests and responses:

Name Description

rte_trade

Notification that a new trade was generated. It is extended version of trade message.

rte_last_trade_price

Last trade price information. It is extended version of last_trade_price message.

risk_snapshot

Option risk metrics snapshot.

ob_snapshot

Order book snapshot.

Controlled by snapshot period

pb_snapshot

Price book snapshot.

Controlled by snapshot period

multi_leg_ob_snapshot

Multi-leg order book snapshot.

Controlled by snapshot period

multi_leg_pb_snapshot

Multi-leg price book snapshot.

Controlled by snapshot period

subscriptions_status

Notification that all Reference Data (including reference prices related to treadable entities) for all treadebale entities was provided by the API.

Useful when a client connects to the API and needs to start proper interpetation of corresponding market data with minimal possible delay, so such marker in the stream can be used.

subscriptions_in_progress

Notification with the details about the Reference Data for ongoing subscriptions

subscribe

Request to subscribe to additional market data (without reconnection).

subscribed

Response of subscribe command or a notification about a new treadable entity listing.

subscribe_error

Response about an error of subscribe command.

unsubscribe

Request to unsubscribe from additional market data (without reconnection).

unsubscribed

Response of unsubscribe command or a notification about treadable entity de-listing.

unsubscribe_error

Response about an error of unsubscribe command.

Note:

If a response message is prefixed with rte_, then the original message was enhanced or enriched with useful fields. For example, rte_trade will include symbol and decimalized values that can be consumed by client programs without scaling/unscaling integers with decimal place values from the reference data.

3.1.2. Market Data Messages

This message set includes the following messages:

Name Description

cycle_starting

Indicates a new cycle is starting.

cycle_started

Indicates a new cycle has started.

cycle_ending

Indicates that the current cycle is ending soon.

cycle_ended

Indicates that the current cycle has ended.

deliverable<fx_spot>

Reference data for a single spot deliverable.

deliverable<future>

Reference data for a single future deliverable.

deliverable<option>

Reference data for a single option deliverable.

deliverable<exchange_token>

Reference data for an exchange token deliverable.

deliverable<stable_token>

Reference data for a stable token deliverable.

deliverable<fiat_currency>

Reference data for a fiat currency deliverable.

deliverable<exchange_trading_limit>

Reference data for an exchange trading limit deliverable.

deliverable<perpetual_future>

Reference data for a perpetual future deliverable.

deliverable<index>

Reference data for an index deliverable.

deliverable<aliased_deliverable>

Reference data for an aliased deliverable.

tradeable_entity<simple_market>

Reference data for a tradeable entity that is traded using a simple, single market.

tradeable_entity<multi_market>

Reference data for a tradeable entity that is traded using multiple markets.

trading_rule

A trading rule that determines order and trade validation.

time

Notification of an update to system time.

display_order_added

Notification that a new display order was added.

display_order_deleted

Notification that an existing display order was deleted.

display_order_executed

Notification that an existing display order executed.

display_order_updated

Notification that an existing display order was updated.

multi_leg_display_order_added

Notification that a new multi-leg display order was added.

multi_leg_display_order_deleted

Notification that an existing multi-leg display order was deleted.

multi_leg_display_order_executed

Notification that an existing multi-leg display order executed.

multi_leg_display_order_updated

Notification that an existing multi-leg display order was updated.

top_of_book

Notification of a change in the best bid and offer.

trade

Notification that a new trade was generated.

last_trade_price

Last trade price information.

reference_price

Notification of a reference price update.

settlement_price

Notification of a settlement price update.

trading_state

Reflects the current state of trading in the tradeable entity and market.

funding_rate

Notification of a funding rate update.

3.2. Messages

3.2.1. rte_trade

Notification that a new trade was generated.

A trade generated for the specified tradeable entity.

This message extends trade messages and defines the following fields:

Table 8. rte_trade fields
Name Type Description

timestamp

utc_timestamp

The time when the trade was generated.

symbol *

string

Symbol of the tradeable entity.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the trade.

trade_id

trade_id

The unique identifier for the trade.

price *

string

The price of the trade already properly converted into decimal format. The decimal part is padded to the number of decimal places determined by the tradeable entity.

price_type

trade_price_type

Specifies how the price of the trade was determined.

quantity *

string

The quantity of the trade in contract units, already properly converted into decimal format. The decimal part is padded to the number of decimal places determined by the tradeable entity.

quantity_in_underlying *

string

The quantity of the trade in units of underlying entity, already properly converted into decimal format. The decimal part is padded to the number of decimal places determined by the tradeable entity.

buy_display_order_id

display_order_id

The unique, exchange-assigned identifier of the display order on the buy side of the trade.

sell_display_order_id

display_order_id

The unique, exchange-assigned identifier of the display order on the sell side of the trade.

Note: fields marked by * are missing or have different values in trade messages.

JSON Example
{
    "rte_trade":{
        "timestamp":"1618427227000000000",
        "symbol": "SOL-USD",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "trade_id":"1234567",
        "price":"33.7950",
        "price_type":"passive",
        "quantity":"0.060000",
        "quantity_in_underlying": "0.060000",
        "buy_display_order_id":"777",
        "sell_display_order_id":"777"
    }
}

3.2.2. rte_last_trade_price

The last trade price information for obtaining initial state of corresponding market.

This message is sent only once (per market) in the following moments:

  • on new connection with enabled subscription;

  • on successful subscription per user’s request;

This message extends last_trade_price messages and defines the following fields:

Table 9. rte_last_trade_price fields
Name Type Description

timestamp

utc_timestamp

Timestamp of the corresponding trade.

symbol *

string

Symbol of the tradeable entity.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the trade.

price *

string

The price value already properly converted into decimal format.

price_type

trade_price_type

Specifies how the price of the trade was determined.

JSON Example
{
    "rte_last_trade_price":{
        "timestamp":"1618427227000000000",
        "symbol": "SOL-USD",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "price":"33.7950",
        "price_type":"passive"
    }
}

3.2.3. risk_snapshot

Option risk metrics snapshot.

Table 10. risk_snapshot fields
Name Type Description

symbol

string

Symbol of the tradeable entity

tradeable_entity_id

string

ID of the tradeable entity

market_id

string

"0" for normal market; "none" for multi-leg indicative order book. PowerTrade can support many different kinds of markets.

timestamp

string

Timestamp of the snapshot

time_to_expire

string

Time in years till expiration

theoretical

null or JSON Object:

{"price" : "…​", "volatility": "…​", "greeks": {…​}}

theoretical risk metrics, can be useful for some markets, e.g. for alt-coin options:

price - theoretical option price calculated by Black-Scholes model using volatility value;

volatility - implied volatility used for calculations of price, greeks;

greeks (delta, gamma, theta, rho, vega) - calculated using Black-Scholes model;

mid

null or JSON Object:

{"price" : "…​", "volatility": "…​", "greeks": {…​}}

risk metrics of the actual mid price of option book:

price - mid price;

volatility - implied volatility calculated from price by Black-Scholes model; used for the greeks calculations;

greeks (delta, gamma, theta, rho, vega) - calculated using Black-Scholes model;

bid

null or JSON Object:

{"price" : "…​", "volatility": "…​", "greeks": {…​}}

risk metrics of the actual bid price of option book:

price - bid price;

volatility - implied volatility calculated from price by Black-Scholes model; used for calculations of greeks;

greeks (delta, gamma, theta, rho, vega) - calculated using Black-Scholes model;

ask

null or JSON Object:

{"price" : "…​", "volatility": "…​", "greeks": {…​}}

risk metrics of the actual ask price of option book:

price - ask price;

volatility - implied volatility calculated from price by Black-Scholes model; used for calculations of greeks;

greeks (delta, gamma, theta, rho, vega) - calculated using Black-Scholes model;

JSON Example
{
    "risk_snapshot":{
        "symbol": "BTC-20220624-50000C",
        "tradeable_entity_id": "10835",
        "market_id": "0",
        "timestamp": "1646786270125039009",
        "time_to_expire": "0.29399618",
        "theoretical": null,
        "mid": {
            "price": "2717.044315",
            "volatility": "0.713200",
            "greeks": {
                "delta": "0.334122",
                "vega": "77.011051",
                "theta": "-26.766029",
                "rho": "3013.044691",
                "gamma": "0.009467"
            }
        },
        "bid": {
            "price": "2677.096478",
            "volatility": "0.708900",
            "greeks": {
                "delta": "0.331613",
                "vega": "76.753915",
                "theta": "-26.454029",
                "rho": "2996.165119",
                "gamma": "0.009492"
            }
        },
        "ask": {
            "price": "2741.685003",
            "volatility": "0.716500",
            "greeks": {
                "delta": "0.335436",
                "vega": "77.128658",
                "theta": "-26.920926",
                "rho": "3020.792592",
                "gamma": "0.009437"
            }
        }
    }
}

3.2.4. ob_snapshot

Order book snapshot.

Table 11. ob_snapshot fields
Name Type Description

timestamp

string

Timestamp of the snapshot

tradeable_entity_id

string

ID of the tradeable entity

market_id

string

"0" for normal market; "none" for multi-leg indicative order book. PowerTrade can support many different kinds of markets.

symbol

string

Symbol of the tradeable entity

bids

JSON Object

Contains bid-side of order book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, size, display_order_id (sorted by price in descending order);

asks

JSON Object

Contains ask-side of order book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, size, display_order_id (sorted by price in ascending order);

JSON Example
{
    "ob_snapshot":{
        "timestamp": "1657776995114801000",
        "tradeable_entity_id": "7",
        "market_id": "0",
        "symbol": "BTC-USD",
        "bids": {
            "n_levels": "639",
            "n_orders": "749",
            "levels": [
                [
                    ["20126.00", "0.00250000", "840152484"]
                ],
                [
                    ["20095.00", "0.00020000", "840133530"]
                ],
                [
                    ["20085.00", "0.00020000", "840133529"]
                ],
                [
                    ["20083.00", "0.00020000", "840133527"]
                ],
                [
                    ["20077.00", "0.00020000", "840133528"]
                ]
            ]
        },
        "asks": {
            "n_levels": "6112",
            "n_orders": "7193",
            "levels": [
                [
                    ["20221.00", "0.00020000", "840150969"],
                    ["20221.00", "0.00030000", "840150970"]
                ],
                [
                    ["20225.00", "0.00250000", "840152475"]
                ],
                [
                    ["20228.00", "0.00020000", "840150968"]
                ],
                [
                    ["20238.00", "0.00020000", "840150671"]
                ]
            ]
        }
    }
}

3.2.5. pb_snapshot

Price book snapshot.

Table 12. pb_snapshot fields
Name Type Description

timestamp

string

Timestamp of the snapshot

tradeable_entity_id

string

ID of the tradeable entity

market_id

string

"0" for normal market; "none" for multi-leg indicative price book. PowerTrade can support many different kinds of markets.

symbol

string

Symbol of the tradeable entity

bids

JSON Object

Contains bid-side of price book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, total_size (sorted by price in descending order);

asks

JSON Object

Contains ask-side of price book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, total_size (sorted by price in ascending order);

JSON Example
{
    "pb_snapshot":{
        "timestamp": "1657776995114801000",
        "tradeable_entity_id": "7",
        "market_id": "0",
        "symbol": "BTC-USD",
        "bids": {
            "n_levels": "639",
            "n_orders": "749",
            "levels": [
                ["20126.00", "0.00250000"],
                ["20095.00", "0.00020000"],
                ["20085.00", "0.00020000"],
                ["20083.00", "0.00020000"],
                ["20077.00", "0.00020000"]
            ]
        },
        "asks": {
            "n_levels": "6112",
            "n_orders": "7193",
            "levels": [
                ["20221.00", "0.00050000"],
                ["20225.00", "0.00250000"],
                ["20228.00", "0.00020000"],
                ["20238.00", "0.00020000"],
                ["20240.00", "0.00030000"]
            ]
        }
    }
}

3.2.6. multi_leg_ob_snapshot

Multi-leg order book snapshot.

Table 13. multi_leg_ob_snapshot fields
Name Type Description

timestamp

string

Timestamp of the snapshot

legs

JSON Array of tradeable_entity_leg

See "legs" fields of multi_leg_display_*,

e.g. "legs" in multi_leg_display_order_added

market_id

string

"0" for normal market; "none" for multi-leg indicative order book. PowerTrade can support many different kinds of markets.

symbol

string

Sub-strings of format <Symbol>@<Ratio>/… for each leg concatenated together. Legs are ordered according to the "legs" specification in multi_leg_display_order_added.

e.g. for 3 legs: "BTC-20220715-21000C@1/BTC-20220715-20000C@1/BTC-20220715-20500C@-2"

bids

JSON Object

Contains bid-side of order book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, size, display_order_id (sorted by price in descending order);

asks

JSON Object

Contains ask-side of order book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, size, display_order_id (sorted by price in ascending order);

JSON Example
{
    "multi_leg_ob_snapshot":{
        "timestamp": "1657778215635497000",
        "legs": [{
            "tradeable_entity_id": "1784",
            "ratio": "1"
        }, {
            "tradeable_entity_id": "1800",
            "ratio": "1"
        }, {
            "tradeable_entity_id": "1954",
            "ratio": "-2"
        }],
        "market_id": "0",
        "symbol": "BTC-20220715-21000C@1/BTC-20220715-20000C@1/BTC-20220715-20500C@-2",
        "bids": {
            "n_levels": "1",
            "n_orders": "1",
            "levels": [
                [
                    ["100.00", "0.02000000", "7133007"]
                ]
            ]
        },
        "asks": {
            "n_levels": "1",
            "n_orders": "2",
            "levels": [
                [
                    ["200.00", "0.14000000", "7132997"],
                    ["200.00", "0.12000000", "7133003"]
                ]
            ]
        }
    }
}

3.2.7. multi_leg_pb_snapshot

Multi-leg price book snapshot.

Table 14. multi_leg_pb_snapshot fields
Name Type Description

timestamp

string

Timestamp of the snapshot

legs

JSON Array of tradeable_entity_leg

See "legs" fields of multi_leg_display_*,

e.g. "legs" in multi_leg_display_order_added

market_id

string

"0" for normal market; "none" for multi-leg indicative order book. PowerTrade can support many different kinds of markets.

symbol

string

Sub-strings of format <Symbol>@<Ratio>/… for each leg concatenated together. Legs are ordered according to the "legs" specification in multi_leg_display_order_added.

e.g. for 3 legs: "BTC-20220715-21000C@1/BTC-20220715-20000C@1/BTC-20220715-20500C@-2"

bids

JSON Object

Contains bid-side of price book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, total_size (sorted by price in descending order);

asks

JSON Object

Contains ask-side of price book including:

n_levels - depth of side;

n_orders - number of orders;

levels - JSON Array of tuples: price, total_size (sorted by price in ascending order);

JSON Example
{
    "multi_leg_pb_snapshot":{
        "timestamp": "1657778215635497000",
        "legs": [{
            "tradeable_entity_id": "1784",
            "ratio": "1"
        }, {
            "tradeable_entity_id": "1800",
            "ratio": "1"
        }, {
            "tradeable_entity_id": "1954",
            "ratio": "-2"
        }],
        "market_id": "0",
        "symbol": "BTC-20220715-21000C@1/BTC-20220715-20000C@1/BTC-20220715-20500C@-2",
        "bids": {
            "n_levels": "1",
            "n_orders": "1",
            "levels": [
                ["100.00", "0.02000000"]
            ]
        },
        "asks": {
            "n_levels": "1",
            "n_orders": "2",
            "levels": [
                ["200.00", "0.26000000"]
            ]
        }
    }
}

3.2.8. subscriptions_status

Notification that all Reference Data (including reference prices related to treadable entities) for all treadebale entities was provided by the API.

Useful when a client connects to the API and needs to start proper interpetation of corresponding market data with minimal possible delay, so such marker in the stream can be used.

Table 15. subscriptions_status fields
Name Type Description

timestamp

string

Timestamp

n_subscribed_tradeable_entities

string

Number of client’s subscriptions at the moment - reflects the number of unique treadebale entities a client is subscribed to at the moment

n_total_tradeable_entities

string

Total number of treadebale entities in the Reference Data known by Feeds at the moment (including multi-leg ones)

n_total_multi_leg_tradeable_entities

string

Total number of multi-leg treadebale entities in the Reference Data known by Feeds at the moment

JSON Example
{
    "subscriptions_status":{
        "timestamp": "1658229182528457000",
        "n_subscribed_tradeable_entities": "3",
        "n_total_tradeable_entities": "1236",
        "n_total_multi_leg_tradeable_entities": "2"
    }
}

3.2.9. subscriptions_in_progress

Notification with the details about the Reference Data for ongoing subscriptions.

The main field of this message is since_timestamp. This timestamp can be used as a sign of incremental updates in Reference Data, or if missing, as a complete snapshot of Reference Data:

  • If correct connection parameter since_timestamp (last cycle_id or message’s timestamp from previous connection) was given to Feeds API (and Feeds were not restarted after that time), subscriptions_in_progress with since_timestamp equal to requested one will be sent to a client. After that incremental updates of Reference Data (if there is any) will be sent too.

  • Otherwise, subscriptions_in_progress will not have since_timestamp, so a complete snapshot of Reference Data will be sent, so locally cached Reference Data should be wiped as outdated one.

Table 16. subscriptions_in_progress fields
Name Type Description

timestamp

string

Timestamp

since_timestamp

string

OPTIONAL only provided when correct since_timestamp connection parameter was given

n_subscribed_tradeable_entities

string

Number of client’s subscriptions at the moment - reflects the number of unique treadebale entities a client is subscribed to at the moment

n_total_tradeable_entities

string

Total number of treadebale entities in the Reference Data known by Feeds at the moment (including multi-leg ones)

n_total_multi_leg_tradeable_entities

string

Total number of multi-leg treadebale entities in the Reference Data known by Feeds at the moment

JSON Example
{
    "subscriptions_in_progress":{
        "timestamp": "1660026698066802000",
        "timestamp": "1660026679016175000",
        "n_subscribed_tradeable_entities": "0",
        "n_total_tradeable_entities": "1268",
        "n_total_multi_leg_tradeable_entities": "2"
    }
}

3.2.10. subscribe

Subscribe to specific instruments on an active connection.

Please see usage examples in Start with zero subscriptions.

Table 17. subscribe fields
Name Type Mandatory Description

symbol_prefix

string

Yes if nothing else is provided.

Symbol prefix of the instrument you wish to subscribe to. For example, BTC will subscribe to all BTC related instruments (options, perpetuals, futures, spot), BTC-202206 for all option and futures instruments expiring in June ‘22, etc.

The subscribed instrument messages will respect the initial connection parameters. For example, if you requested tradeable_type[]=future and subscribed to BTC-202206 then you would only receive market data for futures expiring in June ‘22.

Additionally, the subscribed instruments will publish the message types specified in the type[] connection param. You cannot change type[] within an active connection.

There are no subscription limits.

symbol

string

Yes if nothing else is provided.

Exact symbol of instrument to subscribe to.

tradeable_entity_id

string

Yes if nothing else is provided.

ID of instrument to subscribe to.

JSON Example
// case 1:
// by symbol_prefix:
// subscribes to all future and option products expiring in June '22
{
    "subscribe":{
		"symbol_prefix": "BTC-202206"
	}
}

// case 2:
// by symbol: subscribes to BTC future
{
	"subscribe":{
		"symbol": "BTC-20220624"
	}
}

// case 3:
// by tradeable_entity_id:
{
	"subscribe":{
		"tradeable_entity_id": "4"
	}
}

3.2.11. subscribed

Confirmation of subscribe success or a notification about a new treadable entity listing.

Table 18. subscribed fields
Name Type Description

tradeable_entity_id

string

ID of subscribed tradeable entity

symbol

string

Symbol of subscribed instrument.

JSON Example
// case 1:
// `subscribe` by tradeable_entity_id:
{
    "subscribe":{
        "tradeable_entity_id":"2"
    }
}
// receiving response:
{
    "subscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
	}
}

// case 2:
// `subscribe` by symbol (to the same market):
{
    "subscribe":{
        "symbol":"ETH-USD-INDEX"
    }
}
// receiving response:
{
    "subscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
    }
}

// case 3:
// listing of the treadable entity happens (see trading_state)
// and then the following notification arrives:
{
    "subscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
    }
}

3.2.12. subscribe_error

Informs about an error of "subscribe" command.

Table 19. subscribe_error fields
Name Type Description

message

string

Textual error message

Table 20. subscribe_error messages
Message Description

"Already subscribed"

The client is already subscribed to the requested instrument.

"No tradeable entity found"

The requested symbol or tradeable_entity_id does not exist.

"No tradeable entity with requested params found"

If the requested instrument was not listed in the initial connection string’s list of tradeable_type[], this error is returned.

JSON Example
{
    "subscribe_error":{
        "message":"Already subscribed"
    }
}

3.2.13. unsubscribe

Unsubscribe from specific instruments on an active connection.

Table 21. unsubscribe fields
Name Type Mandatory Description

symbol_prefix

string

Yes if nothing else is provided.

Symbol prefix of the instrument you wish to unsubscribe from.

symbol

string

Yes if nothing else is provided.

Exact symbol of instrument to unsubscribe from.

tradeable_entity_id

string

Yes if nothing else is provided.

ID of instrument to unsubscribe from.

JSON Example
// case 1:
// by symbol_prefix:
// unsubscribes from all future and option products expiring in June '22
{
    "unsubscribe":{
		"symbol_prefix": "BTC-202206"
	}
}

// case 2:
// by symbol: unsubscribes from BTC future
{
	"unsubscribe":{
		"symbol": "BTC-20220624"
	}
}

// case 3:
// by tradeable_entity_id:
{
	"unsubscribe":{
		"tradeable_entity_id": "4"
	}
}

3.2.14. unsubscribed

Confirmation of unsubscribe success or a notification about treadable entity de-listing.

Table 22. unsubscribed fields
Name Type Description

tradeable_entity_id

string

ID of unsubscribed tradeable entity

symbol

string

Symbol of unsubscribed instrument.

JSON Example
// case 1:
// `unsubscribe` by tradeable_entity_id:
{
    "unsubscribe":{
        "tradeable_entity_id":"2"
    }
}
// response:
{
    "unsubscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
	}
}

// case 2:
// `unsubscribe` by symbol (from the same market):
{
    "unsubscribe":{
        "symbol":"ETH-USD-INDEX"
    }
}
// response:
{
    "unsubscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
    }
}

// case 3:
// de-listing of the treadable entity happens (see trading_state)
// and then the following notification arrives:
{
    "unsubscribed":{
		"tradeable_entity_id":"2",
        "symbol":"ETH-USD-INDEX"
    }
}

3.2.15. unsubscribe_error

Informs about an error of "unsubscribe" command.

Table 23. unsubscribe_error fields
Name Type Description

message

string

Textual error message

Table 24. unsubscribe_error messages
Message Description

"Subscription(s) not found"

The client has no active subscriptions for the requested instrument.

JSON Example
{
    "unsubscribe_error":{
        "message":"Subscription(s) not found"
    }
}

3.2.16. cycle_ended

Indicates that the current cycle has ended.

Generated to indicate that the current cycle has ended.

This message defines the following fields:

Table 25. cycle_ended fields
Name Type Description

cycle_id

utc_timestamp

A timestamp that uniquely identifies the current cycle.

next_cycle_id

utc_timestamp

A timestamp that uniquely identifies the next cycle, or 'none' if there will be no new cycle.

JSON Example
{
    "cycle_ended":{
        "cycle_id":"1618427227000000000",
        "next_cycle_id":"1618427827000000000"
    }
}

3.2.17. cycle_ending

Indicates that the current cycle is ending soon.

Generated to indicate that the current cycle will be ending soon.

This message defines the following fields:

Table 26. cycle_ending fields
Name Type Description

cycle_id

utc_timestamp

A timestamp that uniquely identifies the current cycle.

next_cycle_id

utc_timestamp

A timestamp that uniquely identifies the next cycle, or 'none' if there will be no new cycle.

JSON Example
{
    "cycle_ending":{
        "cycle_id":"1618427227000000000",
        "next_cycle_id":"1618427827000000000"
    }
}

3.2.18. cycle_started

Indicates a new cycle has started.

Generated to indicate that a new cycle has started.

This message defines the following fields:

Table 27. cycle_started fields
Name Type Description

cycle_id

utc_timestamp

A timestamp that uniquely identifies the current cycle.

previous_cycle_id

utc_timestamp

A timestamp that uniquely identifies the previous cycle, or 'none' if there was no preceding cycle.

JSON Example
{
    "cycle_started":{
        "cycle_id":"1618427227000000000",
        "previous_cycle_id":"1618426627000000000"
    }
}

3.2.19. cycle_starting

Indicates a new cycle is starting.

Generated to indicate that a new cycle is starting.

This message defines the following fields:

Table 28. cycle_starting fields
Name Type Description

cycle_id

utc_timestamp

A timestamp that uniquely identifies the new cycle.

previous_cycle_id

utc_timestamp

A timestamp that uniquely identifies the previous cycle, or 'none' if there was no preceding cycle.

JSON Example
{
    "cycle_starting":{
        "cycle_id":"1618427227000000000",
        "previous_cycle_id":"1618426627000000000"
    }
}

3.2.21. deliverable<aliased_deliverable>

Reference data for an aliased deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 29. deliverable<aliased_deliverable> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "aliased_deliverable" of type aliased_deliverable

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"6257",
        "symbol":"Reference USD",
        "tags":["usd_aliased_deliverable"],
        "decimal_places":"2",
        "listing_status":"active",
        "details":{
            "aliased_deliverable":{
                "aliased_deliverable_id":"2"
            }
        }
    }
}

3.2.22. deliverable<exchange_token>

Reference data for an exchange token deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 30. deliverable<exchange_token> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "exchange_token" of type exchange_token

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"3",
        "symbol":"BTC",
        "tags":["fundable"],
        "decimal_places":"8",
        "listing_status":"active",
        "details":{
            "exchange_token":{
                "common_name":"Bitcoin",
                "ledger_name":"Bitcoin",
                "ledger_address":"0x000000000000000000000000000000",
                "minor_units":"0"
            }
        }
    }
}

3.2.23. deliverable<exchange_trading_limit>

Reference data for an exchange trading limit deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 31. deliverable<exchange_trading_limit> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "exchange_trading_limit" of type exchange_trading_limit

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"7",
        "symbol":"BTC Buy Trading Limit",
        "tags":[],
        "decimal_places":"8",
        "listing_status":"active",
        "details":{
            "exchange_trading_limit":{
                "quote_deliverable_id":"3",
                "side":"buy"
            }
        }
    }
}

3.2.24. deliverable<fiat_currency>

Reference data for a fiat currency deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 32. deliverable<fiat_currency> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "fiat_currency" of type fiat_currency

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"2",
        "symbol":"USD",
        "tags":["reference_deliverable","fundable"],
        "decimal_places":"10",
        "listing_status":"active",
        "details":{
            "fiat_currency":{
                "currency":"US Dollar",
                "code":"USD",
                "number":"840",
                "minor_units":"2"
            }
        }
    }
}

3.2.25. deliverable<future>

Reference data for a single future deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 33. deliverable<future> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "future" of type future

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"23",
        "symbol":"BTC-20210924",
        "tags":["BTC","future","month"],
        "decimal_places":"4",
        "listing_status":"active",
        "details":{
            "future":{
                "expiry":{
                    "datetime":{
                        "date":{
                            "year":"2021",
                            "month":"9",
                            "day":"24"
                        },
                        "time":{
                            "hours":"8",
                            "minutes":"0",
                            "seconds":"0",
                            "nanoseconds":"0"
                        }
                    },
                    "timezone":"UTC"
                },
                "delivery_style":"cash",
                "underlying_deliverable_id":"3",
                "contract_size_deliverable_id":"3",
                "contract_size":"100000000",
                "settlement_deliverable_id":"2",
                "utc_creation_time":"1615315440212884641",
                "creation_source_id":"0",
                "margin_spec_id":"2"
            }
        }
    }
}

3.2.26. deliverable<fx_spot>

Reference data for a single spot deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 34. deliverable<fx_spot> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "fx_spot" of type fx_spot

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"14",
        "symbol":"BTC-USD",
        "tags":["spot"],
        "decimal_places":"8",
        "listing_status":"active",
        "details":{
            "fx_spot":{
                "base_deliverable_id":"3",
                "quote_deliverable_id":"2",
                "contract_size":"1"
            }
        }
    }
}

3.2.27. deliverable<index>

Reference data for an index deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 35. deliverable<index> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "index" of type index

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"14",
        "symbol":"BTC-USD-INDEX",
        "tags":["BTC","index"],
        "decimal_places":"6",
        "listing_status":"active",
        "details":{
            "index":{
                "base_deliverable_id":"3",
                "quote_deliverable_id":"2"
            }
        }
    }
}

3.2.28. deliverable<option>

Reference data for a single option deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 36. deliverable<option> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "option" of type option

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"92",
        "symbol":"BTC-20210625-20000P",
        "tags":["BTC","option","month"],
        "decimal_places":"4",
        "listing_status":"active",
        "details":{
            "option":{
                "expiry":{
                    "datetime":{
                        "date":{
                            "year":"2021",
                            "month":"6",
                            "day":"25"
                        },
                        "time":{
                            "hours":"8",
                            "minutes":"0",
                            "seconds":"0",
                            "nanoseconds":"0"
                        }
                    },
                    "timezone":"UTC"
                },
                "strike_price":"20000000000",
                "option_type":"put",
                "exercise_style":"european",
                "valuation_approach":"vanilla",
                "delivery_style":"cash",
                "underlying_deliverable_id":"3",
                "contract_size_deliverable_id":"3",
                "contract_size":"100000000",
                "settlement_deliverable_id":"2",
                "utc_creation_time":"1615315441357287486",
                "creation_source_id":"0",
                "margin_spec_id":"1",
                "strikes_spec_id":"1"
            }
        }
    }
}

3.2.29. deliverable<perpetual_future>

Reference data for a perpetual future deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 37. deliverable<perpetual_future> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "perpetual_future" of type perpetual_future

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"24",
        "symbol":"BTC-USD-PERPETUAL",
        "tags":["BTC","future","perpetual"],
        "decimal_places":"4",
        "listing_status":"active",
        "details":{
            "perpetual_future":{
                "funding_period":{
                    "hours":"1",
                    "minutes":"0",
                    "seconds":"0",
                    "nanoseconds":"0"
                },
                "funding_reference_time":{
                    "datetime":{
                        "date":{
                            "year":"2021",
                            "month":"0",
                            "day":"0"
                        },
                        "time":{
                            "hours":"1",
                            "minutes":"0",
                            "seconds":"0",
                            "nanoseconds":"0"
                        }
                    },
                    "timezone":"UTC"
                },
                "funding_spec_id":"1",
                "underlying_deliverable_id":"14",
                "contract_size_deliverable_id":"3",
                "contract_size":"100000000",
                "settlement_deliverable_id":"2",
                "utc_creation_time":"1615315440215106227",
                "creation_source_id":"0",
                "margin_spec_id":"3"
            }
        }
    }
}

3.2.30. deliverable<stable_token>

Reference data for a stable token deliverable.

Contains reference data associated with a single deliverable.

This message defines the following fields:

Table 38. deliverable<stable_token> fields
Name Type Description

deliverable_id

deliverable_id

The unique, exchange-assigned identifier for the deliverable.

symbol

String

A human-readable identifier for the deliverable.

tags

array of String

A collection of tags used for classifying the deliverable.

decimal_places

decimal_places

The number of decimal places used when expressing quantities and balances in terms of the deliverable.

listing_status

listing_status

The listing status of the deliverable.

details

object with a single field "stable_token" of type stable_token

Contains additional details describing the deliverable.

JSON Example
{
    "deliverable":{
        "deliverable_id":"2",
        "symbol":"USDT",
        "tags":["reference_deliverable", "fundable"],
        "decimal_places":"6",
        "listing_status":"active",
        "details":{
            "stable_token":{
                "common_name":"USDt ERC20 Token",
                "ledger_name":"Ethereum",
                "ledger_address":"0x000000000000000000000000000000",
                "minor_units":"6",
                "stabilisation_approach":"fiat_backed",
                "backing_deliverable_id":"123"
            }
        }
    }
}

3.2.31. display_order_added

Notification that a new display order was added.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 39. display_order_added fields
Name Type Description

timestamp

utc_timestamp

The time when the order was added.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

display_price

price

The displayed price of the order. The number of decimal places is determined by the tradeable entity.

display_quantity

quantity

The displayed quantity of the order. The number of decimal places is determined by the tradeable entity.

JSON Example
{
    "display_order_added":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777",
        "display_price":"10000000000000",
        "display_quantity":"10000000000"
    }
}

3.2.32. display_order_deleted

Notification that an existing display order was deleted.

Represents the deletion of a displayed order from the tradeable entity.

This message defines the following fields:

Table 40. display_order_deleted fields
Name Type Description

timestamp

utc_timestamp

The time when the order was deleted.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

JSON Example
{
    "display_order_deleted":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777"
    }
}

3.2.33. display_order_executed

Notification that an existing display order executed.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 41. display_order_executed fields
Name Type Description

timestamp

utc_timestamp

The time when the order was executed.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

executed_price

price

The price of the trade. The number of decimal places is determined by the tradeable entity.

executed_quantity

quantity

The quantity of the trade. The number of decimal places is determined by the tradeable entity.

trade_id

trade_id

The unique, exchange-assigned identifier for the trade.

JSON Example
{
    "display_order_executed":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777",
        "executed_price":"10000000000000",
        "executed_quantity":"10000000000",
        "trade_id":"1234567"
    }
}

3.2.34. display_order_updated

Notification that an existing display order was updated.

Represents the update of a displayed order in a tradeable entity.

This message defines the following fields:

Table 42. display_order_updated fields
Name Type Description

timestamp

utc_timestamp

The time when the order was updated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

old_display_order_id

display_order_id

The current unique, exchange-assigned identifier for the displayed order.

new_display_order_id

display_order_id

The new unique, exchange-assigned identifier for the displayed order.

display_price

price

The displayed price of the order. The number of decimal places is determined by the tradeable entity.

display_quantity

quantity

The displayed quantity of the order. The number of decimal places is determined by the tradeable entity.

JSON Example
{
    "display_order_updated":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "side":"buy",
        "old_display_order_id":"777",
        "new_display_order_id":"777",
        "display_price":"10000000000000",
        "display_quantity":"10000000000"
    }
}

3.2.35. funding_rate

Notification of a funding rate update.

Communicates an update to the funding rate for a specified tradeable entity.

This message defines the following fields:

Table 43. funding_rate fields
Name Type Description

timestamp

utc_timestamp

The time when the funding rate update was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity associated with this funding rate.

applies_from

utc_timestamp

The time from when the funding rate applies.

rate

basis_points

The rate as calculated in basis points.

mark_price

price

The mark price associated with the funding rate.

underlying_price

price

The underlying price associated with the funding rate.

JSON Example
{
    "funding_rate":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "applies_from":"1618427227000000000",
        "rate":"100",
        "mark_price":"10000000000000",
        "underlying_price":"10000000000000"
    }
}

3.2.36. multi_leg_display_order_added

Notification that a new multi-leg display order was added.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 44. multi_leg_display_order_added fields
Name Type Description

timestamp

utc_timestamp

The time when the order was added.

legs

array of tradeable_entity_leg

Identifies the target tradeable entities and leg ratios for the order. Contains at least two entries, in ascending order by tradeable_entity_id, with each tradeable entity appearing no more than once. The greatest common divisor of the absolute values of the leg ratios is one. The ratio of the first leg is always positive.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

display_price

price

The displayed price of the order, with decimal places. The number of decimal places is the smallest price_decimal_places value for the tradeable entities in the legs.

display_quantity

quantity

The displayed quantity of the order, with decimal places. The number of decimal places is the smallest quantity_decimal_places value for the tradeable entities in the legs.

JSON Example
{
    "multi_leg_display_order_added":{
        "timestamp":"1618427227000000000",
        "legs":[
            {
                "tradeable_entity_id":"7777",
                "ratio":"123"
            }
        ],
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777",
        "display_price":"10000000000000",
        "display_quantity":"10000000000"
    }
}

3.2.37. multi_leg_display_order_deleted

Notification that an existing multi-leg display order was deleted.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 45. multi_leg_display_order_deleted fields
Name Type Description

timestamp

utc_timestamp

The time when the order was deleted.

legs

array of tradeable_entity_leg

Identifies the target tradeable entities and leg ratios for the order. Contains at least two entries, in ascending order by tradeable_entity_id, with each tradeable entity appearing no more than once. The greatest common divisor of the absolute values of the leg ratios is one. The ratio of the first leg is always positive.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

JSON Example
{
    "multi_leg_display_order_deleted":{
        "timestamp":"1618427227000000000",
        "legs":[
            {
                "tradeable_entity_id":"7777",
                "ratio":"123"
            }
        ],
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777"
    }
}

3.2.38. multi_leg_display_order_executed

Notification that an existing multi-leg display order executed.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 46. multi_leg_display_order_executed fields
Name Type Description

timestamp

utc_timestamp

The time when the order was executed.

legs

array of tradeable_entity_leg

Identifies the target tradeable entities and leg ratios for the order. Contains at least two entries, in ascending order by tradeable_entity_id, with each tradeable entity appearing no more than once. The greatest common divisor of the absolute values of the leg ratios is one. The ratio of the first leg is always positive.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

display_order_id

display_order_id

The unique, exchange-assigned identifier for the displayed order.

executed_price

price

The executed price of the order, with decimal places. The number of decimal places is the smallest price_decimal_places value for the tradeable entities in the legs.

executed_quantity

quantity

The executed quantity of the order, with decimal places. The number of decimal places is the smallest quantity_decimal_places value for the tradeable entities in the legs.

JSON Example
{
    "multi_leg_display_order_executed":{
        "timestamp":"1618427227000000000",
        "legs":[
            {
                "tradeable_entity_id":"7777",
                "ratio":"123"
            }
        ],
        "market_id":"0",
        "side":"buy",
        "display_order_id":"777",
        "executed_price":"10000000000000",
        "executed_quantity":"10000000000"
    }
}

3.2.39. multi_leg_display_order_updated

Notification that an existing multi-leg display order was updated.

Represents the addition of a displayed order to the tradeable entity.

This message defines the following fields:

Table 47. multi_leg_display_order_updated fields
Name Type Description

timestamp

utc_timestamp

The time when the order was updated.

legs

array of tradeable_entity_leg

Identifies the target tradeable entities and leg ratios for the order. Contains at least two entries, in ascending order by tradeable_entity_id, with each tradeable entity appearing no more than once. The greatest common divisor of the absolute values of the leg ratios is one. The ratio of the first leg is always positive.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

old_display_order_id

display_order_id

The current unique, exchange-assigned identifier for the displayed order.

new_display_order_id

display_order_id

The new unique, exchange-assigned identifier for the displayed order.

display_price

price

The displayed price of the order, with decimal places. The number of decimal places is the smallest price_decimal_places value for the tradeable entities in the legs.

display_quantity

quantity

The displayed quantity of the order, with decimal places. The number of decimal places is the smallest quantity_decimal_places value for the tradeable entities in the legs.

JSON Example
{
    "multi_leg_display_order_updated":{
        "timestamp":"1618427227000000000",
        "legs":[
            {
                "tradeable_entity_id":"7777",
                "ratio":"123"
            }
        ],
        "market_id":"0",
        "side":"buy",
        "old_display_order_id":"777",
        "new_display_order_id":"777",
        "display_price":"10000000000000",
        "display_quantity":"10000000000"
    }
}

3.2.40. reference_price

Notification of a reference price update.

Communicates an update to the reference price for a specified tradeable entity.

This message defines the following fields:

Table 48. reference_price fields
Name Type Description

timestamp

utc_timestamp

The time when the reference price update was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the reference price update.

price

price

The price. The number of decimal places is determined by the tradeable entity.

price_type

reference_price_type

The type of the reference price update

JSON Example
{
    "reference_price":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "price":"10000000000000",
        "price_type":"reference"
    }
}

3.2.41. settlement_price

Notification of a settlement price update.

Communicates an update to the settlement price for a specified tradeable entity.

This message defines the following fields:

Table 49. settlement_price fields
Name Type Description

timestamp

utc_timestamp

The time when the settlement price update was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

price

price

The price. The number of decimal places is determined by the tradeable entity.

price_type

settlement_price_type

The type of the settlement price update

settlement_event

zoned_datetime

Indicates the settlement date and time to which the settlement price applies. Interim settlement prices are typically published prior to this time, but may be published on or after this time if there is a delay in determining the final settlement price. Final prices are published only on or after this time. If equal to the quantity deliverable’s expiry, the price being published is for settlement at expiry and the settlement_event_type will be expiry. Otherwise, the settlement_event_type is cyclical.

settlement_event_type

settlement_event_type

The type of the settlement event to which the price applies.

JSON Example
{
    "settlement_price":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "price":"10000000000000",
        "price_type":"interim_price",
        "settlement_event":{
            "datetime":{
                "date":{
                    "year":"2021",
                    "month":"7",
                    "day":"31"
                },
                "time":{
                    "hours":"7",
                    "minutes":"0",
                    "seconds":"0",
                    "nanoseconds":"849936000"
                }
            },
            "timezone":"UTC"
        },
        "settlement_event_type":"cyclical"
    }
}

3.2.42. time

Notification of an update to system time.

Used to communicate an update to the internal clock.

This message defines the following fields:

Table 50. time fields
Name Type Description

timestamp

utc_timestamp

The time when the message was generated.

JSON Example
{
    "time":{
        "timestamp":"1618427227000000000"
    }
}

3.2.43. top_of_book

Notification of a change in the best bid and offer.

The current best bid and best offer for a specified tradeable entity.

This message defines the following fields:

Table 51. top_of_book fields
Name Type Description

timestamp

utc_timestamp

The time when the top_of_book was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the top-of-book information.

buy_price

price

The price of the best bid. The number of decimal places is determined by the tradeable entity.

buy_quantity

quantity

The total quantity at the best bid price. The number of decimal places is determined by the tradeable entity.

sell_price

price

The price of the best offer. The number of decimal places is determined by the tradeable entity.

sell_quantity

quantity

The total quantity at the best offer price. The number of decimal places is determined by the tradeable entity.

JSON Example
{
    "top_of_book":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "buy_price":"10000000000000",
        "buy_quantity":"10000000000",
        "sell_price":"10000000000000",
        "sell_quantity":"10000000000"
    }
}

3.2.44. trade

Notification that a new trade was generated.

A trade generated for the specified tradeable entity.

This message defines the following fields:

Table 52. trade fields
Name Type Description

timestamp

utc_timestamp

The time when the trade was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the trade.

trade_id

trade_id

The unique identifier for the trade.

price

price

The price of the trade. The number of decimal places is determined by the tradeable entity.

price_type

trade_price_type

Specifies how the price of the trade was determined.

quantity

quantity

The quantity of the trade. The number of decimal places is determined by the tradeable entity.

buy_display_order_id

display_order_id

The unique, exchange-assigned identifier of the display order on the buy side of the trade.

sell_display_order_id

display_order_id

The unique, exchange-assigned identifier of the display order on the sell side of the trade.

JSON Example
{
    "trade":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "trade_id":"1234567",
        "price":"10000000000000",
        "price_type":"passive",
        "quantity":"10000000000",
        "buy_display_order_id":"777",
        "sell_display_order_id":"777"
    }
}

3.2.45. last_trade_price

The last trade price information for obtaining initial state of corresponding market.

This message is sent only once (per market) in the following moments:

  • on new connection with enabled subscription;

  • on successful subscription per user’s request;

This message defines the following fields:

Table 53. last_trade_price fields
Name Type Description

timestamp

utc_timestamp

The time when the trade was generated.

tradeable_entity_id

tradeable_entity_id

A unique, exchange-assigned identifier for the tradeable entity.

market_id

market_id

Identifies the target market for the trade.

price

price

The price of the trade. The number of decimal places is determined by the tradeable entity.

price_type

trade_price_type

Specifies how the price of the trade was determined.

JSON Example
{
    "last_trade_prirce":{
        "timestamp":"1618427227000000000",
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "price":"10000000000000",
        "price_type":"passive"
    }
}

3.2.46. tradeable_entity

tradeable_entity may refer to one of the following messages:

3.2.47. tradeable_entity<multi_market>

Reference data for a tradeable entity that is traded using multiple markets.

Contains reference data associated with a single tradeable entity.

This message defines the following fields:

Table 54. tradeable_entity<multi_market> fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

The unique, exchange-assigned identifier for the tradeable entity.

symbol

String

A human-readable identifier for the tradeable entity.

tags

array of String

A collection of tags used for classifying the tradeable entity.

price_deliverable_id

deliverable_id

Identifies the deliverable used to express the price.

price_decimal_places

decimal_places

The number of decimal places used for prices.

quantity_deliverable_id

deliverable_id

Identifies the deliverable used to express the quantity.

quantity_decimal_places

decimal_places

The number of decimal places used for quantities.

buy_trading_limit_deliverable_id

deliverable_id

Identifies the deliverable used to express trading limits for buy side orders and trades.

sell_trading_limit_deliverable_id

deliverable_id

Identifies the deliverable used to express trading limits for sell side orders and trades.

tradeability

tradeability

Specifies the tradeability of a tradeable entity.

details

object with a single field "multi_market" of type multi_market

Contains additional details describing the tradeable entity.

3.2.48. tradeable_entity<simple_market>

Reference data for a tradeable entity that is traded using a simple, single market.

Contains reference data associated with a single tradeable entity.

This message defines the following fields:

Table 55. tradeable_entity<simple_market> fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

The unique, exchange-assigned identifier for the tradeable entity.

symbol

String

A human-readable identifier for the tradeable entity.

tags

array of String

A collection of tags used for classifying the tradeable entity.

price_deliverable_id

deliverable_id

Identifies the deliverable used to express the price.

price_decimal_places

decimal_places

The number of decimal places used for prices.

quantity_deliverable_id

deliverable_id

Identifies the deliverable used to express the quantity.

quantity_decimal_places

decimal_places

The number of decimal places used for quantities.

buy_trading_limit_deliverable_id

deliverable_id

Identifies the deliverable used to express trading limits for buy side orders and trades.

sell_trading_limit_deliverable_id

deliverable_id

Identifies the deliverable used to express trading limits for sell side orders and trades.

tradeability

tradeability

Specifies the tradeability of a tradeable entity.

details

object with a single field "simple_market" of type simple_market

Contains additional details describing the tradeable entity.

JSON Example
{
    "tradeable_entity":{
        "tradeable_entity_id":"84",
        "symbol":"BTC-20210625-20000P",
        "tags":["BTC","option","month"],
        "price_deliverable_id":"2",
        "price_decimal_places":"6",
        "quantity_deliverable_id":"92",
        "quantity_decimal_places":"4",
        "buy_trading_limit_deliverable_id":"11",
        "sell_trading_limit_deliverable_id":"12",
        "tradeability":"tradeable",
        "details":{
            "simple_market":{
                "market_id":"0",
                "settlement_event":{
                    "datetime":{
                        "date":{
                            "year":"2021",
                            "month":"6",
                            "day":"25"
                        },
                        "time":{
                            "hours":"8",
                            "minutes":"0",
                            "seconds":"0",
                            "nanoseconds":"0"
                        }
                    },
                    "timezone":"UTC"
                }
            }
        }
    }
}

3.2.49. trading_rule

A trading rule that determines order and trade validation.

Contains rules used to determine order and trade validity.

This message defines the following fields:

Table 56. trading_rule fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

The tradeable entity to which the rule applies. If none, applies to all tradeable entities.

market_id

market_id

The market to which the rule applies. If none, applies to all markets.

minimum_price

price

Specifies the minimum price on an order. The number of decimal places is determined by the tradeable entity.

maximum_price

price

Specifies the maximum price on an order. The number of decimal places is determined by the tradeable entity.

price_step

price

Specifies the valid price step for an order. The number of decimal places is determined by the tradeable entity.

minimum_quantity

quantity

Specifies the minimum quantity on an order. The number of decimal places is determined by the tradeable entity.

maximum_quantity

quantity

Specifies the maximum quantity on an order. The number of decimal places is determined by the tradeable entity.

quantity_step

quantity

Specifies the valid quantity step for an order. The number of decimal places is determined by the tradeable entity.

minimum_value

value

Specifies the minimum value of an order. The number of decimal places is determined by the tradeable entity.

maximum_value

value

Specifies the maximum value of an order. The number of decimal places is determined by the tradeable entity.

JSON Example
{
    "trading_rule":{
        "tradeable_entity_id":"7777",
        "market_id":"0",
        "minimum_price":"10000000000000",
        "maximum_price":"10000000000000",
        "price_step":"10000000000000",
        "minimum_quantity":"10000000000",
        "maximum_quantity":"10000000000",
        "quantity_step":"10000000000",
        "minimum_value":"100000000",
        "maximum_value":"100000000"
    }
}

3.2.50. trading_state

Reflects the current state of trading in the tradeable entity and market.

Indicates the current state of a tradeable entity and market.

This message defines the following fields:

Table 57. trading_state fields
Name Type Description

timestamp

utc_timestamp

The time when the trading state was reported.

tradeable_entity_id

tradeable_entity_id

The tradeable entity to which the state applies.

market_id

market_id

The market to which the state applies.

suspension_status

suspension_status

Whether trading is active or suspended.

expiry_status

expiry_status

Whether the tradeable entity is active or expired.

settlement_event

zoned_datetime

The date and time against which trades will be recorded.

JSON Example
{
    "trading_state":{
        "timestamp":"123",
        "tradeable_entity_id":"123",
        "market_id":"123",
        "suspension_status":"active",
        "expiry_status":"active",
        "settlement_event":{
            "datetime":{
                "date":{
                    "year":"123",
                    "month":"123",
                    "day":"123"
                },
                "time":{
                    "hours":"123",
                    "minutes":"123",
                    "seconds":"123",
                    "nanoseconds":"123"
                }
            },
            "timezone":"A"
        }
    }
}

3.3. Structures

This section describes the following structures:

3.3.1. aliased_deliverable

Contains reference data associated with an aliased deliverable.

This structure defines the following fields:

Table 58. aliased_deliverable fields
Name Type Description

aliased_deliverable_id

deliverable_id

The deliverable ID that is being aliased.

3.3.2. date

Represents a calendar date.

This structure defines the following fields:

Table 59. date fields
Name Type Description

year

year

The four digit year.

month

month

The month (1-12).

day

day

The day of the month (1-31).

3.3.3. datetime

Represents a datetime.

This structure defines the following fields:

Table 60. datetime fields
Name Type Description

date

date

The date.

time

time_of_day

The time of day.

3.3.4. exchange_token

Contains reference data associated with an exchange token.

This structure defines the following fields:

Table 61. exchange_token fields
Name Type Description

common_name

String

The common name of the exchange token.

ledger_name

String

The name of the exchange token’s anchoring ledger.

ledger_address

Bytes

The address of the exchange token on the ledger, if any.

minor_units

decimal_places

The minor units supported for the token.

3.3.5. exchange_trading_limit

Contains reference data associated with an exchange trading limit.

This structure defines the following fields:

Table 62. exchange_trading_limit fields
Name Type Description

quote_deliverable_id

deliverable_id

The deliverable that is being bought or sold in exchange for the quote deliverable.

side

side

Whether the trading limit is a buy or sell.

3.3.6. fiat_currency

Contains reference data associated with a fiat currency.

This structure defines the following fields:

Table 63. fiat_currency fields
Name Type Description

currency

String

The ISO 4217 name of the currency.

code

String

The ISO 4217 alphabetic code for the currency.

number

iso4217_currency_number

The ISO 4217 numeric code for the currency.

minor_units

decimal_places

The ISO 4217 specified number of minor units for the currency.

3.3.7. full_order<account_id>

Attributes used for full order entry.

This structure defines the following fields:

Table 64. full_order<account_id> fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

Identifies the target tradeable entity for the order.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

time_in_force

time_in_force

Specifies how long the order remains valid.

time_to_live

time_to_live

In conjunction with time_in_force, specifies how long the order remains valid.

quantity

quantity

The quantity of the order. The number of decimal places is determined by the tradeable entity.

minimum_quantity

quantity

The minimum quantity of the order. Must be 0 or 18446744073709551615 ("none") unless time_in_force is immediate_or_cancel. Must be less than or equal to the quantity of the order. The number of decimal places is determined by the tradeable entity.

price

price

Order price. 9223372036854775807 ("none") denotes a market order. The number of decimal places is determined by the tradeable entity.

party_data

object with a single field "account_id" of type account_id

Contains attributes identifying the party associated with the order.

execution_instructions

optional array of execution_instruction

Contains optional instructions specifying how an order should be handled.

trigger_instructions

optional trigger_instructions

Contains optional instructions specifying how and when the order will be triggered.

3.3.8. future

Contains reference data associated with a single future entity.

This structure defines the following fields:

Table 65. future fields
Name Type Description

expiry

zoned_datetime

The expiry for the future.

delivery_style

delivery_style

The future delivery style.

underlying_deliverable_id

deliverable_id

Denotes the unique deliverable_id assigned to the underlying security within exchange.

contract_size_deliverable_id

deliverable_id

Identifies the deliverable used to express the contract size.

contract_size

contract_size

Specifies the contract size.

settlement_deliverable_id

deliverable_id

Identifies the deliverable used to express settlement values.

utc_creation_time

utc_timestamp

The UTC time when the future was created.

creation_source_id

creation_source_id

The creation source ID for the future.

margin_spec_id

margin_spec_id

Identifies the margin specification to be used for the future.

3.3.9. fx_spot

Contains reference data associated with a single fx_spot entity.

This structure defines the following fields:

Table 66. fx_spot fields
Name Type Description

base_deliverable_id

deliverable_id

The deliverable that is being bought or sold in exchange for the quote deliverable.

quote_deliverable_id

deliverable_id

The deliverable that is being paid to secure the base deliverable.

contract_size

contract_size

Specifies the contract size.

3.3.10. greeks

Represents each of the greek values.

This structure defines the following fields:

Table 67. greeks fields
Name Type Description

delta

scaled_fixed_point

How much an options price is expected to change per $1 change in the underlying.

theta

scaled_fixed_point

The change in the price of an option for a one-day decrease in its time to expiration.

gamma

scaled_fixed_point

The rate of change in an options delta per $1 change in the price of the underlying.

vega

scaled_fixed_point

The rate of change in an options price per 1% change in the implied volatility of the underlying.

3.3.11. index

Contains reference data associated with a single index entity.

This structure defines the following fields:

Table 68. index fields
Name Type Description

base_deliverable_id

deliverable_id

The deliverable that is being priced in reference to the quote deliverable.

quote_deliverable_id

deliverable_id

The deliverable that is being used to quote the base deliverable.

3.3.12. multi_leg_order<account_id>

Attributes used for simple order entry.

This structure defines the following fields:

Table 69. multi_leg_order<account_id> fields
Name Type Description

legs

array of tradeable_entity_leg

Identifies the target tradeable entities and leg ratios for the order. Must contain at least two entries, in ascending order by tradeable_entity_id, with each tradeable entity appearing no more than once. The greatest common divisor of the absolute values of the leg ratios must be one. The ratio of the first leg must be positive.

market_id

market_id

Identifies the target market for the order. Must be a valid ID for all tradeable entities in the legs.

side

side

Whether the order is a buy or sell.

time_in_force

time_in_force

Specifies how long the order remains valid.

time_to_live

time_to_live

In conjunction with time_in_force, specifies how long the order remains valid. Must be 65535 ("none") if the time_in_force is immediate_or_cancel. Otherwise, must be less than or equal to 65534.

quantity

quantity

The quantity of the order. The number of decimal places is the smallest quantity_decimal_places value for the tradeable entities in the legs.

minimum_quantity

quantity

The minimum quantity of the order. Must be 0 or 18446744073709551615 ("none") unless time_in_force is immediate_or_cancel. Must be less than or equal to the quantity of the order. The number of decimal places is the smallest quantity_decimal_places for the tradeable entities in the legs.

price

price

Order price. 9223372036854775807 ("none") denotes a market order. The number of decimal places is the largest price_decimal_places value for the tradeable entities in the legs.

party_data

object with a single field "account_id" of type account_id

Contains attributes identifying the party associated with the order.

execution_instructions

optional array of execution_instruction

Contains optional instructions specifying how an order should be handled.

3.3.13. multi_market

Describes a set of markets valid for trading in a tradeable entity.

This structure defines the following fields:

Table 70. multi_market fields
Name Type Description

market_ids

array of market_id

The market identifiers that are valid for the tradeable entity.

3.3.14. option

Contains reference data associated with a single option entity.

This structure defines the following fields:

Table 71. option fields
Name Type Description

expiry

zoned_datetime

The expiry for the option.

strike_price

price

The option strike price.

option_type

option_type

The option type (Put or Call).

exercise_style

option_exercise_style

The exercise style of the option.

valuation_approach

option_valuation_approach

The valuation approach of the option.

delivery_style

delivery_style

The option delivery style.

underlying_deliverable_id

deliverable_id

Denotes the unique deliverable_id assigned to the underlying security within exchange.

contract_size_deliverable_id

deliverable_id

Identifies the deliverable used to express the contract size.

contract_size

contract_size

Specifies the contract size. Uses the decimals specified on the corresponding contract deliverable.

settlement_deliverable_id

deliverable_id

Identifies the deliverable used to express settlement values.

utc_creation_time

utc_timestamp

The UTC time when the option was created.

creation_source_id

creation_source_id

The creation source ID for the option.

margin_spec_id

margin_spec_id

Identifies the margin specification to be used for the option.

strikes_spec_id

strikes_spec_id

Identifies the strikes specification to be used for the option.

3.3.15. perpetual_future

Contains reference data associated with a single perpetual future.

This structure defines the following fields:

Table 72. perpetual_future fields
Name Type Description

funding_period

time_of_day

The funding period over which funding occures, expressed in hours, minutes and seconds.

funding_reference_time

zoned_datetime

A date time that represents the reference time for funding periods.

funding_spec_id

funding_spec_id

Identifies the funding specification to be used for the perpetual future.

underlying_deliverable_id

deliverable_id

Denotes the unique deliverable_id assigned to the underlying security within exchange.

contract_size_deliverable_id

deliverable_id

Identifies the deliverable used to express the contract size.

contract_size

contract_size

Specifies the contract size.

settlement_deliverable_id

deliverable_id

Identifies the deliverable used to express settlement values.

utc_creation_time

utc_timestamp

The UTC time when the perpetual future was created.

creation_source_id

creation_source_id

The creation source ID for the perpetual future.

margin_spec_id

margin_spec_id

Identifies the margin specification to be used for the perpetual future.

3.3.16. simple_market

Describes a simple, single market for trading in a tradeable entity.

This structure defines the following fields:

Table 73. simple_market fields
Name Type Description

market_id

market_id

The market identifier.

settlement_event

zoned_datetime

The date and time against which trades will be recorded.

3.3.17. simple_order<account_id>

Attributes used for simple order entry.

This structure defines the following fields:

Table 74. simple_order<account_id> fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

Identifies the target tradeable entity for the order.

market_id

market_id

Identifies the target market for the order.

side

side

Whether the order is a buy or sell.

time_in_force

time_in_force

Specifies how long the order remains valid.

time_to_live

time_to_live

In conjunction with time_in_force, specifies how long the order remains valid.

quantity

quantity

The quantity of the order. The number of decimal places is determined by the tradeable entity.

price

price

Order price. 9223372036854775807 ("none") denotes a market order. The number of decimal places is determined by the tradeable entity.

party_data

object with a single field "account_id" of type account_id

Contains attributes identifying the party associated with the order.

3.3.18. stable_token

Contains reference data associated with a single stable_token entity.

This structure defines the following fields:

Table 75. stable_token fields
Name Type Description

common_name

String

The common name of the exchange token.

ledger_name

String

The name of the exchange tokens anchoring ledger.

ledger_address

Bytes

The address of the exchange token on the ledger, if any.

minor_units

decimal_places

The minor units supported for the token.

stabilisation_approach

stabilisation_approach

The stabilisation approach used by the stable token.

backing_deliverable_id

deliverable_id

The deliverable used to back the stable token, if any.

3.3.19. time_of_day

Represents a time of day.

This structure defines the following fields:

Table 76. time_of_day fields
Name Type Description

hours

hours

The hours (0-23).

minutes

minutes

The minutes (0-59).

seconds

seconds

The seconds (0-59).

nanoseconds

nanoseconds

The nanonseconds (0-999,999,999).

3.3.20. tradeable_entity_leg

Represents a single leg in a multi-leg order or strategy.

This structure defines the following fields:

Table 77. tradeable_entity_leg fields
Name Type Description

tradeable_entity_id

tradeable_entity_id

The tradeable entity ID of the leg.

ratio

leg_ratio

Ratio indicating the quantity to buy/sell relative to other legs.

3.3.21. trigger_instructions

Specifies how and when an order should be triggered.

This structure defines the following fields:

Table 78. trigger_instructions fields
Name Type Description

event_type

trigger_event_type

The type of event when the trigger will be hit.

tradeable_entity_id

tradeable_entity_id

Identifies the tradeable entity against which the trigger price will be compared.

market_id

market_id

Identifies the market against which the trigger price will be compared.

price_type

trigger_price_type

The type of the price in the target tradeable entity and market that the price is compared to.

price_direction

trigger_price_direction

Whether the order is triggered based on a movement up or down through the trigger price.

price

price

The trigger price. The number of decimal places is determined by the tradeable entity.

3.3.22. zoned_datetime

Represents a zoned datetime.

This structure defines the following fields:

Table 79. zoned_datetime fields
Name Type Description

datetime

datetime

The date and time of day.

timezone

String

The timezone.

3.4. Types

This section describes the following types:

3.4.1. account_id

Uniquely identifies an account.

account_id is an enumeration with the following well-known string constants:

Table 80. account_id constants
Value Equivalent integer Description

"none"

18446744073709551615

A constant used to specify no account ID.

"all"

18446744073709551614

A constant used to specify all account IDs.

3.4.2. basis_points

Basis Points.

basis_points is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 81. basis_points constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no basis points.

3.4.3. channel_id

Uniquely identifies a channel.

channel_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 82. channel_id constants
Value Equivalent integer Description

"none"

0

A constant used to specify no channel ID.

3.4.4. contract_size

Specifies the contract size.

contract_size is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 83. contract_size constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no contract size.

3.4.5. creation_source_id

Identifies the source of an instrument.

creation_source_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 84. creation_source_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no creation source.

3.4.6. day

Day of the month (1-31).

day is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 85. day constants
Value Equivalent integer Description

"none"

255

A constant used to specify no day.

3.4.7. decimal_places

Decimal Places.

decimal_places is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 86. decimal_places constants
Value Equivalent integer Description

"none"

255

A constant used to specify no decimal places.

3.4.8. deliverable_id

Uniquely identifies a deliverable.

deliverable_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 87. deliverable_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no deliverable ID.

3.4.9. delivery_style

Specifies how derivative delivery will occur.

delivery_style is an enumeration with the following well-known string constants:

Table 88. delivery_style constants
Value Equivalent integer Description

"physical"

80

The derivative settlement deliverable is the same as the quantity deliverable.

"cash"

67

The derivative settlement deliverable is a cash-style deliverable.

"non_deliverable"

78

The derivative is non-deliverable.

"elect_at_exercise"

69

The derivative’s delivery is elected at exercise.

3.4.10. display_order_id

Uniquely identifies a display order.

display_order_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 89. display_order_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no display order ID.

3.4.11. execution_instruction

Instructions for order handling

execution_instruction is an enumeration with the following well-known string constants:

Table 90. execution_instruction constants
Value Equivalent integer Description

"participate_do_not_initiate"

54

The order will participate in a match only when it is a passive order. It will not initiate a match as an aggressor.

"do_not_participate"

68

The order will be cancelled rather than participate in a match.

3.4.12. expiry_status

Specifies whether an entity has expired or is active.

expiry_status is an enumeration with the following well-known string constants:

Table 91. expiry_status constants
Value Equivalent integer Description

"active"

65

The entity is active.

"expired"

69

The entity has expired.

3.4.13. funding_spec_id

Uniquely identifies a funding specification for a perpetual derivative.

funding_spec_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 92. funding_spec_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no funding spec ID.

3.4.14. hours

Hours.

hours is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 93. hours constants
Value Equivalent integer Description

"none"

255

A constant used to specify no hours.

3.4.15. iso4217_currency_number

Unique numeric identifier for a currency according to the ISO4217 standard.

iso4217_currency_number is an unsigned 16-bit integer with supported values from 0 to 65535 inclusive. The type also supports the following string constants:

Table 94. iso4217_currency_number constants
Value Equivalent integer Description

"none"

65535

(max unsigned 16-bit integer)

A constant used to specify no currency number.

3.4.16. leg_ratio

A leg_ratio.

leg_ratio is a signed 16-bit integer with supported values from -32768 to 32767 inclusive. The type also supports the following string constants:

Table 95. leg_ratio constants
Value Equivalent integer Description

"none"

32767

(max signed 16-bit integer)

A constant used to specify no leg_ratio.

3.4.17. liquidity_flag

Specifies how an order affects liquidity.

liquidity_flag is an enumeration with the following well-known string constants:

Table 96. liquidity_flag constants
Value Equivalent integer Description

"added"

65

Liquidity was added

"taken"

84

Liquidity was taken

"neither"

78

Liquidity was neither added nor taken

3.4.18. listing_status

Specifies the listing_status of a deliverable.

listing_status is an enumeration with the following well-known string constants:

Table 97. listing_status constants
Value Equivalent integer Description

"active"

65

An active deliverable.

"delisted"

88

The deliverable is marked for delisting.

3.4.19. margin_spec_id

Uniquely identifies a margin spec.

margin_spec_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 98. margin_spec_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no margin spec ID.

3.4.20. market_id

Uniquely identifies a market.

market_id is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 99. market_id constants
Value Equivalent integer Description

"none"

255

A constant used to specify no market ID.

3.4.21. minutes

Minutes.

minutes is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 100. minutes constants
Value Equivalent integer Description

"none"

255

A constant used to specify no minutes.

3.4.22. month

Month (1-12).

month is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 101. month constants
Value Equivalent integer Description

"none"

255

A constant used to specify no month.

3.4.23. nanoseconds

Nanoseconds.

nanoseconds is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 102. nanoseconds constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no nanoseconds.

3.4.24. option_exercise_style

Specifies how the option may be exercised.

option_exercise_style is an enumeration with the following well-known string constants:

Table 103. option_exercise_style constants
Value Equivalent integer Description

"european"

69

The option is a European style option and can only be exercised on expiry.

3.4.25. option_type

Specifies whether option is a call or put.

option_type is an enumeration with the following well-known string constants:

Table 104. option_type constants
Value Equivalent integer Description

"call"

67

Call option.

"put"

80

Put option.

3.4.26. option_valuation_approach

Specifies the general approach used to value the option.

option_valuation_approach is an enumeration with the following well-known string constants:

Table 105. option_valuation_approach constants
Value Equivalent integer Description

"vanilla"

86

The option is a Vanilla option.

"asian"

65

The option is an Asian option.

"digital"

68

The option is Digital (Binary) option.

"barrier"

66

The option is a Barrier option.

"digital_barrier"

71

The option is a Digital Barrier option.

"loopback"

76

The option is a Loopback option.

3.4.27. order_action_reject_reason

Specifies why an order was rejected.

order_action_reject_reason is an enumeration with the following well-known string constants:

Table 106. order_action_reject_reason constants
Value Equivalent integer Description

"invalid_tradeable_entity"

1

Invalid tradeable entity

"invalid_fields"

2

Invalid fields

"fill_side_empty"

3

Fill side empty

"no_orders_to_peg_to"

4

No orders to peg to

"invalid_this_period"

5

Invalid this period

"invalid_order_flow"

6

Invalid order flow

"illegal_order_flow"

7

Illegal order flow

"trading_suspended"

8

Trading suspended

"invalid_participant"

9

Invalid participant

"invalid_account"

10

Invalid account

"insufficient_account_balance"

11

Insufficient account balance

"invalid_market"

12

Invalid market

"account_suspended"

13

The account is suspended

"expired_tradeable_entity"

14

The tradeable entity has expired

"invalid_quantity_deliverable"

15

Invalid quantity deliverable

"invalid_trading_limit_deliverable"

16

Invalid trading limit deliverable

"deliverable_is_not_a_derivative"

17

The deliverable is not a derivative

"price_less_than_minimum_price"

18

The price of the order is less than the minimum price allowed by the trading rules that are currently in force.

"price_greater_than_maximum_price"

19

The price of the order is greater than the maximum price allowed by the trading rules that are currently in force.

"price_not_a_valid_price_step"

20

The price of the order is not on an allowed price step as required by the trading rules that are currently in force.

"quantity_less_than_minimum_quantity"

21

The quantity of the order is less than the minimum quantity allowed by the trading rules that are currently in force.

"quantity_greater_than_maximum_quantity"

22

The quantity of the order is greater than the maximum quantity allowed by the trading rules that are currently in force.

"quantity_not_a_valid_quantity_step"

23

The quantity of the order is not on an allowed quantity step as required by the trading rules that are currently in force.

"order_value_greater_than_maximum_supported"

24

The value of the order is greater than the maximum supported.

"order_value_less_than_minimum_allowed"

25

The value of the order is less than the minimum value allowed by the trading rules that are currently in force.

"order_value_greater_than_maximum_allowed"

26

The value of the order is greater than the maximum value allowed by the trading rules that are currently in force.

"invalid_legs"

27

The legs of the multi-leg order do not conform to the rules on tradeable entity ordering, uniqueness, and ratios.

"invalid_trigger_instructions"

28

The trigger instructions of the full order do not conform to the supported rules for triggered orders.

"too_many_trigger_orders"

29

There are too many existing trigger orders

"invalid_execution_instructions"

30

The execution instructions contain invalid values

3.4.28. order_cancelled_reason

Specifies why an order was cancelled.

order_cancelled_reason is an enumeration with the following well-known string constants:

Table 107. order_cancelled_reason constants
Value Equivalent integer Description

"user_cancelled"

1

The order was cancelled by the user.

"immediate_with_insufficient_liquidity"

2

There was insufficient liquidity to match the immediate order.

"timeout"

3

The order timed out due to its time_in_force attribute.

"liquidation"

4

The order was cancelled during account liquidation.

"insufficient_account_balance"

5

The order was cancelled due to an insufficient account balance.

"invalid_pending_order_flow"

6

The order was cancelled because this type of order cannot be in a pending state.

"too_many_pending_orders"

7

The order was cancelled as concurrent pending orders on the same deliverable are not allowed.

"disconnection"

8

The order was cancelled as the cancel-on-disconnect setting applies to the endpoint, and a disconnection event occurred.

"supervisory"

9

The order was cancelled by a market supervisor.

"would_initiate"

10

The order was cancelled as it was marked participate-do-not-initiate and would have initiated a match.

"would_participate"

11

The order was cancelled as it was marked do-not-participate and would have entered the order book.

3.4.29. order_execution_prevented_reason

Specifies why an order execution was prevented.

order_execution_prevented_reason is an enumeration with the following well-known string constants:

Table 108. order_execution_prevented_reason constants
Value Equivalent integer Description

"self_trade"

1

The order would have resulted in the party trading with itself.

"market_maker"

2

The order is a market maker order.

3.4.30. order_id

Uniquely identifies an order.

order_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 109. order_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no order ID.

3.4.31. order_state

Specifies state of an order following [order_entered].

order_state is an enumeration with the following well-known string constants:

Table 110. order_state constants
Value Equivalent integer Description

"accepted"

65

The order has been accepted and is eligible for matching.

"pending"

80

The order is pending and not yet eligible for matching.

"untriggered"

85

The order is a triggered order and has not yet been triggered.

"expired"

69

The order has expired. No further messages will be generated for it.

3.4.32. order_token

A 64-bit client-generated ID to uniquely identify an order. Must be increased for each inbound order management request. The top 8 bits are reserved and must be 0.

order_token is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 111. order_token constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no order token.

3.4.33. percent

A percentage scaled to 4 decimal places.

percent is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 112. percent constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no percentage value.

3.4.34. position_balance

A position balance.

position_balance is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 113. position_balance constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no position_balance.

3.4.35. position_kind

Specifies the type of position being added.

position_kind is an enumeration with the following well-known string constants:

Table 114. position_kind constants
Value Equivalent integer Description

"cash"

67

Cash position.

"realised"

82

Realised position.

"unrealised"

85

Unrealised position.

"margin"

77

Margin position.

"payoff"

80

Payoff position.

"payout"

70

Payout (funding) position.

"expired"

69

The position is Expired but not yet realised.

"funding_due"

68

The position is no longer held but is due a funding payment.

"trading_limit"

84

The position that represents the locked trading limit.

"risk"

75

The risk metrics (E.g. the Greeks) that are set for a position.

"unrealised_pending_buy_orders"

90

Unrealised position based on pending buy orders.

"unrealised_pending_sell_orders"

79

Unrealised position based on pending sell orders.

"margin_pending_buy_orders"

89

Margin position based on pending buy orders.

"margin_pending_sell_orders"

65

Margin position based on pending sell orders.

"unrealised_open_buy_orders"

88

Unrealised position based on open buy orders.

"unrealised_open_sell_orders"

73

Unrealised position based on sell orders.

"margin_open_buy_orders"

87

Margin position based on open buy orders.

"margin_open_sell_orders"

74

Margin position based on open sell orders.

"cash_pending_buy_orders"

72

Cash position based on pending buy orders.

"cash_pending_sell_orders"

71

Cash position based on pending sell orders.

"cash_open_buy_orders"

83

Cash position based on open buy orders.

"cash_open_sell_orders"

76

Cash position based on open sell orders.

"cash_open_buy_orders_committed"

66

Cash position based on long open orders commitments.

"cash_open_sell_orders_committed"

78

Cash position based on short open orders commitments.

3.4.36. position_source_id

The source_id that triggered a position update.

position_source_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 115. position_source_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no position source ID.

3.4.37. position_source_type

Specifies the source trigger for this position message

position_source_type is an enumeration with the following well-known string constants:

Table 116. position_source_type constants
Value Equivalent integer Description

"deposit"

68

The position update was triggered by a deposit.

"withdrawal"

87

The position update was triggered by a withdrawal.

"trade"

84

The position update was triggered by a trade.

"expiry"

69

The position update was triggered by an expiry.

"mark_to_market"

70

The position update was triggered by a mark to market settlement.

"mark_price"

77

The position update was triggered by a change in mark price.

"settlement_price"

83

The position update was triggered by a change in settlement price.

"funding_rate"

80

The position update was triggered by a new funding rate.

"portfolio_risk_engine"

82

The position update was triggered by a message from a portfolio risk engine.

"holdings_data"

72

The position update was triggered by a message from the holdings and registry facility.

"restatement"

88

The position update was triggered by the start of a cycle.

"order"

79

The position update was by a pending order.

"none"

78

A constant used to specify no source type.

3.4.38. position_value

A position_value.

position_value is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 117. position_value constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no position value.

3.4.39. positions_risk_status

Indicates the risk status associated with outstanding positions

positions_risk_status is an enumeration with the following well-known string constants:

Table 118. positions_risk_status constants
Value Equivalent integer Description

"normal"

78

The positions have a normal risk status.

"at_risk"

82

The positions are considered 'At Risk' and some restrictions will apply.

"critical"

67

The positions are considered 'Critical' and full trading restrictions will apply.

"liquidate"

76

The positions risk status has passed the 'Critical' level and the positions need to be liquidated.

3.4.40. price

A price.

price is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 119. price constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no price.

3.4.41. product_type

Specifies product type of product a position is related to .

product_type is an enumeration with the following well-known string constants:

Table 120. product_type constants
Value Equivalent integer Description

"reference_balance"

82

Balance positions for the reference currency.

"balance"

66

Balance.

"spot"

83

Spot.

"future"

70

Future.

"option"

79

Option.

"none"

78

No product.

"trading_limit"

84

The current trading limit.

3.4.42. quantity

A quantity.

quantity is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 121. quantity constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no quantity.

3.4.43. reference_price_type

Specifies the type of reference price.

reference_price_type is an enumeration with the following well-known string constants:

Table 122. reference_price_type constants
Value Equivalent integer Description

"reference"

82

Reference price.

"close"

67

Close price.

3.4.44. scaled_fixed_point

A scaled_fixed_point scaled to 10 decimal places.

scaled_fixed_point is a signed 64-bit integer with supported values from -9223372036854775808 to 9223372036854775807 inclusive. The type also supports the following string constants:

Table 123. scaled_fixed_point constants
Value Equivalent integer Description

"none"

9223372036854775807

(max signed 64-bit integer)

A constant used to specify no scaled_fixed_pointage value.

3.4.45. seconds

Seconds.

seconds is an unsigned 32-bit integer with supported values from 0 to 4294967295 inclusive. The type also supports the following string constants:

Table 124. seconds constants
Value Equivalent integer Description

"none"

255

A constant used to specify no seconds.

3.4.46. sequence_number

A message sequence number.

sequence_number is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 125. sequence_number constants
Value Equivalent integer Description

"none"

0

A used to specify no sequence number.

3.4.47. session_end_reason

Specifies why a session was ended.

session_end_reason is an enumeration with the following well-known string constants:

Table 126. session_end_reason constants
Value Equivalent integer Description

"logout"

1

The session was ended due to a logout request from the client.

"timeout"

2

The session was ended due to an inactivity timeout.

"stopped"

3

The session was ended due to the server component being stopped.

"violation"

4

The session was ended due to a protocol violation by the client.

3.4.48. session_id

Uniquely identifies a session.

session_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 127. session_id constants
Value Equivalent integer Description

"none"

0

A constant used to specify no session ID.

3.4.49. settlement_event_type

Specifies the type of settlement event.

settlement_event_type is an enumeration with the following well-known string constants:

Table 128. settlement_event_type constants
Value Equivalent integer Description

"cyclical"

67

The settlement event is cyclical, such as a daily settlement.

"expiry"

69

The settlement event is associated with a deliverable’s expiry.

3.4.50. settlement_price_type

Specifies the type of settlement price.

settlement_price_type is an enumeration with the following well-known string constants:

Table 129. settlement_price_type constants
Value Equivalent integer Description

"interim_price"

73

Interim price.

"final_price"

70

Final price.

3.4.51. side

Specifies whether order is a buy or sell.

side is an enumeration with the following well-known string constants:

Table 130. side constants
Value Equivalent integer Description

"buy"

66

Buy order.

"sell"

83

Sell order.

3.4.52. stabilisation_approach

Specifies the general approach used to stabilise the token.

stabilisation_approach is an enumeration with the following well-known string constants:

Table 131. stabilisation_approach constants
Value Equivalent integer Description

"fiat_backed"

70

The token is backed by a fiat currency, either directly, or by pegging, or against a basket.

"asset_backed"

65

The token is backed by an asset, such as commodities like gold price or other kinds of assets.

"token_backed"

84

The token is backed by other cryptoasset tokens, such as a diversified basket.

"unbacked"

85

The token is a seigniorage-style, unbacked token that uses some form of algorithm to control supply and value.

3.4.53. stream_id

Uniquely identifies a stream.

stream_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 132. stream_id constants
Value Equivalent integer Description

"none"

0

A constant used to specify no stream ID.

3.4.54. stream_reject_reason

Specifies why a stream request was rejected.

stream_reject_reason is an enumeration with the following well-known string constants:

Table 133. stream_reject_reason constants
Value Equivalent integer Description

"invalid_channel_id"

1

The channel ID did not refer to a known channel

"invalid_sequence_number"

2

The begin or end sequence number was invalid

"stream_id_in_use"

3

The stream ID is already being used for another active stream.

"too_many_streams"

4

The number of active streams is already at the maximum allowed.

3.4.55. strikes_spec_id

Uniquely identifies a strikes specification.

strikes_spec_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 134. strikes_spec_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no strikes spec ID.

3.4.56. suspension_status

Specifies whether an entity is suspended or active.

suspension_status is an enumeration with the following well-known string constants:

Table 135. suspension_status constants
Value Equivalent integer Description

"active"

65

The entity is active.

"suspended"

83

The entity is suspended.

3.4.57. time_in_force

Specifies the duration of the order.

time_in_force is an enumeration with the following well-known string constants:

Table 136. time_in_force constants
Value Equivalent integer Description

"good_for_cycles"

67

Good for the number of system cycles specified in time_to_live.

"immediate_or_cancel"

73

Immediate or cancel order.

3.4.58. time_to_live

Used in conjunction with time_in_force to specify an order’s lifetime.

time_to_live is an unsigned 16-bit integer with supported values from 0 to 65535 inclusive. The type also supports the following string constants:

Table 137. time_to_live constants
Value Equivalent integer Description

"none"

65535

(max unsigned 16-bit integer)

A constant used to specify no time_to_live.

3.4.59. trade_id

Uniquely identifies a trade.

trade_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 138. trade_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no trade ID.

3.4.60. trade_price_type

Specifies how the price of a trade was determined.

trade_price_type is an enumeration with the following well-known string constants:

Table 139. trade_price_type constants
Value Equivalent integer Description

"passive"

80

The trade occurred during continuous matching and uses the price of the passive order.

"equilibrium"

69

The trade occurred during an auction and uses a calculated equilibrium price.

"multi_leg_to_multi_leg"

77

The trade was between two multi-leg orders and uses a price derived from one of the legs.

"off_market"

79

The trade occurred off-market and uses a reported price.

3.4.61. tradeability

Specifies the tradeability of a tradeable_entity.

tradeability is an enumeration with the following well-known string constants:

Table 140. tradeability constants
Value Equivalent integer Description

"tradeable"

84

Can enter orders.

"display_only"

68

Cannot enter orders, but we may publish market data.

"non_tradeable"

78

Cannot enter orders, no market data.

"delisted"

88

The tradeable entity is set to be removed from the market data.

3.4.62. tradeable_entity_id

Uniquely identifies a tradeable entity.

tradeable_entity_id is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 141. tradeable_entity_id constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no tradeable entity ID.

3.4.63. trigger_event_type

Defines when the trigger will be hit.

trigger_event_type is an enumeration with the following well-known string constants:

Table 142. trigger_event_type constants
Value Equivalent integer Description

"partial_execution"

69

The order is triggered by partial execution at the trigger price.

"price_movement"

80

The order is triggered by price movement to or through the specified price.

3.4.64. trigger_price_direction

The side from which the trigger price is reached.

trigger_price_direction is an enumeration with the following well-known string constants:

Table 143. trigger_price_direction constants
Value Equivalent integer Description

"up"

85

The order is triggered if the price goes up to or through the specified price.

"down"

68

The order is triggered if the price goes down to or through the specified price.

3.4.65. trigger_price_type

The type of price that the specified trigger price is compared to.

trigger_price_type is an enumeration with the following well-known string constants:

Table 144. trigger_price_type constants
Value Equivalent integer Description

"best_bid"

66

The specified trigger price is compared against the best bid.

"best_offer"

79

The specified trigger price is compared against the best offer.

"last_trade"

84

The specified trigger price is compared against the last trade.

3.4.66. utc_timestamp

A UTC timestamp expressed in nanoseconds since the epoch (1970-01-01 00:00:00).

utc_timestamp is an unsigned 64-bit integer with supported values from 0 to 18446744073709551615 inclusive. The type also supports the following string constants:

Table 145. utc_timestamp constants
Value Equivalent integer Description

"none"

18446744073709551615

(max unsigned 64-bit integer)

A constant used to specify no timestamp.

3.4.67. value

A value.

value is a signed 128-bit integer with supported values from -170141183460469231731687303715884105728 to 170141183460469231731687303715884105727 inclusive. The type also supports the following string constants:

Table 146. value constants
Value Equivalent integer Description

"none"

170141183460469231731687303715884105727

(max signed 128-bit integer)

A constant used to specify no value.

3.4.68. year

The year (YYYY).

year is an unsigned 16-bit integer with supported values from 0 to 65535 inclusive. The type also supports the following string constants:

Table 147. year constants
Value Equivalent integer Description

"none"

65535

(max unsigned 16-bit integer)

A constant used to specify no year.

4. Revision History

Table 148. revision history:
Date Version Notes

2024-02-16

1.7

Add last_trade_price, rte_last_trade_price

2024-02-13

1.6

Add the Hosts section

2023-10-12

1.5

Adding .theoretical field into risk_snapshot;

2022-08-30

1.4

Adding connection parameter market_id[];

adding multi_leg into tradeable_type[];

DEPRECATED: greeks_only, multi_leg_only.

2022-08-15

1.3

Adding subscriptions_in_progress, since_timestamp, join_json

2022-08-14

1.2

Adding tradeable_entity<multi_market>

2022-07-19

1.1

Adding subscriptions_status

2022-07-15

1.0

Initial Market Data Feeds API documentation