Protocol Documentation

Table of Contents

Top

openfeed.proto

AddOrder

Add an order to the order book. Indexed by orderId, which is unique per channel

Field Type Label Description
transactionTime sint64
orderId sint64
side BookSide
price sint64
quantity sint64
isImplied bool
priority sint64

AddPriceLevel

Insert a new price level, pushing existing levels down

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
level sint32 price level index, starting at 1
side BookSide
price sint64 Divide by priceDenominator
quantity sint64 Divide by quantityDenominator
orderCount sint32
impliedQuantity sint64

AdminMessage

Administrative Message

Field Type Label Description
originationTime sint64 Origination time = UTC timestamp nano seconds since Unix epoch
source string
languageCode string
headLine string
text string
status AdminMessage.Status
channel sint32

BestBidOffer

Best Bid and Offer. / If a side is not present, then that side has been deleted. / By default this value is the NBBO, if regional/participant quote then regional = true

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
bidPrice sint64 Divide by priceDenominator
bidQuantity sint64 Divide by quantityDenominator
bidOrderCount sint32
bidOriginator bytes Liquidity provider information For Forex: BANK:CITY For Equities: EXCHANGE_MIC
bidQuoteCondition bytes
offerPrice sint64 Divide by priceDenominator
offerQuantity sint64 Divide by quantityDenominator
offerOrderCount sint32
offerOriginator bytes Liquidity provider information For Forex: BANK:CITY For Equities: EXCHANGE_MIC
offerQuoteCondition bytes
quoteCondition bytes
regional bool True if regional/participant member quote

CapitalDistributions

Capital Distributions

Field Type Label Description
transactionTime sint64
instrumentType string
corporateAction string Corporate Action
payableDate sint32 Date only, format 2012-07-04 -> 20120704
recordDate sint32
exDate sint32
shortTermCapitalGain sint64 Distributions
longTermCapitalGain sint64
unallocatedDistributions sint64
returnOfCapital sint64
currencyCode string
notes string repeated
reinvestDate sint32

ChannelReset

Channel Reset

Field Type Label Description
channel sint32
transactionTime sint64

ClearBook

Clear all data from the order books that are configured for this market.

Field Type Label Description
reserved sint32
transactionTime sint64

Close

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
currency string

Context

Field Type Label Description
data ContextData repeated
tracePoints TracePoint repeated

ContextData

Field Type Label Description
id string
vstring string
vbytes bytes
vbool bool
vsint32 sint32
vsint64 sint64
vfloat float
vdouble double

DeleteOrder

Delete an order from the order book. Indexed by orderId, which is unique per channel

Field Type Label Description
transactionTime sint64
orderId sint64
side BookSide

DeletePriceLevel

Delete an existing price level, pulling existing levels up

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
level sint32 price level index, starting at 1
side BookSide

DepthOrder

Depth By Order

Field Type Label Description
orders DepthOrder.Entry repeated

DepthOrder.Entry

Field Type Label Description
addOrder AddOrder
deleteOrder DeleteOrder
modifyOrder ModifyOrder

DepthPriceLevel

Depth Price Level

Field Type Label Description
levels DepthPriceLevel.Entry repeated

DepthPriceLevel.Entry

Field Type Label Description
addPriceLevel AddPriceLevel
deletePriceLevel DeletePriceLevel
modifyPriceLevel ModifyPriceLevel

DividendsIncomeDistributions

Dividends and Income Distributions

Field Type Label Description
transactionTime sint64
instrumentType string
corporateAction string Corporate Action
distributionType string Distribution Type
payableDate sint32 Date only, format 2012-07-04 -> 20120704
recordDate sint32
exDividendDate sint32
amount sint64 Cash amount of distribution
currencyCode string
notes string repeated
totalCashDistribution sint64
nonQualifiedCashDistribution sint64
qualifiedCashDistribution sint64
taxFreeCashDistribution sint64
ordinaryForeignTaxCredit sint64
qualifiedForeignTaxCredit sint64
stockDividendRatio sint64
reinvestDate sint32

HeartBeat

Heart Beat

Field Type Label Description
transactionTime sint64 UTC timestamp of transaction, nano seconds since Unix epoch
status string
exchange bool
channel sint32

High

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
currency string

IndexValue

For non-tradable index products

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
last sint64
volume sint64
open sint64
settlementOpen sint64
specialOpen sint64
high sint64
low sint64
close sint64
bid sint64
offer sint64

InstrumentGroupStatus

Instrument Group Status

Field Type Label Description
transactionTime sint64 UTC Timestamp of transaction, nano seconds since Unix epoch
instrumentGroupId string
tradingStatus InstrumentTradingStatus
tradeDate sint32
channel sint32

InstrumentStatus

Instrument Status

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
tradingStatus InstrumentTradingStatus
openingTime sint64 UTC Timestamp, nano seconds since Unix epoch
note string
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
regulationSHOShortSalePriceTest RegulationSHOShortSalePriceTest

Last

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
quantity sint64 Divide by quantityDenominator
currency string
session string

Low

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
currency string

MarketSession

Session used in snapshot.

Field Type Label Description
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
open Open Most recent opening price
high High High price for the trading session
low Low Low price for the trading session
last Last Most recent traded price and quantity
volume Volume Total traded volume
settlement Settlement Most recent settlement price
prevSettlement Settlement Most recent settlement price
openInterest OpenInterest Most recent open interest
numberOfTrades NumberOfTrades Number of trades
monetaryValue MonetaryValue Monetary value

MarketSnapshot

Snapshot for a market

Field Type Label Description
marketId sint64 Unique id identifying the market
transactionTime sint64 UTC Timestamp of transaction, nano seconds since Unix epoch
marketSequence int64 Instrument level sequence number
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
totalChunks sint32 A snapshot with market depth may exceed the maximum message size. In that case, the snapshot will be broken up across multiple snapshot messages.
currentChunk sint32
symbol string Optional symbol identifier
priceDenominator sint32 Divide prices by this value to get real price values. Optional, use value / from InstrumentDefinition if not set.
service Service
instrumentStatus InstrumentStatus
bbo BestBidOffer Best Bid Offer
index IndexValue Index Value
priceLevels AddPriceLevel repeated Price Level Book
orders AddOrder repeated Order Book
news News
open Open Most recent opening price
high High High price for the trading session
low Low Low price for the trading session
close Close Most recent closing price
prevClose PrevClose Previous closing price
last Last Most recent traded price and quantity
yearHigh YearHigh Year high price
yearLow YearLow Year low price
volume Volume Total traded volume
settlement Settlement Most recent settlement price
openInterest OpenInterest Most recent open interest
vwap Vwap Most recent volume weighted average price
dividendsIncomeDistributions DividendsIncomeDistributions
numberOfTrades NumberOfTrades
monetaryValue MonetaryValue
capitalDistributions CapitalDistributions
sharesOutstanding SharesOutstanding
netAssetValue NetAssetValue
previousSession MarketSession Previous session.
tSession MarketSession 'T' session.
volumeAtPrice VolumeAtPrice Volume at price. Used by the market state/ JERQ.

MarketSnapshotResponse

Used by market state to return snapshot.

Field Type Label Description
result SnapshotRequestResult
message string
marketSnapshot MarketSnapshot

MarketStatus

Market Status

Field Type Label Description
transactionTime sint64 UTC Timestamp of transaction, nano seconds since Unix epoch
channel sint32
marketWideStatus MarketWideStatus

MarketSummary

Intra and EOD Market Summary

Field Type Label Description
transactionTime sint64
tradingDate sint32 Date only, format 2012-07-04 -> 20120704
startOfDay bool
endOfDay bool
clear MarketSummary.ClearSet
instrumentStatus InstrumentStatus
bbo BestBidOffer
open Open
high High
low Low
close Close
prevClose PrevClose
last Last
volume Volume
settlement Settlement
openInterest OpenInterest
vwap Vwap
session string Used by CME ITC.
summaryType MarketSummary.SummaryType

MarketUpdate

Market Update for an instrument

Field Type Label Description
marketId sint64 Unique id identifying the market
symbol string Optional symbol identifier
transactionTime sint64 UTC Timestamp of transaction, nano seconds since Unix epoch / This is usually the execution venue timestamp.
distributionTime sint64 Distribution time in nano seconds since epoch.
marketSequence sint64 Market level sequencing number
sourceSequence sint64 Data source sequence number
originatorId bytes Market participant/originator
priceDenominator sint32 Divide prices by this value to get real price values. Optional, use value / from InstrumentDefinition if not set.
context Context Feed specific context data set as required.
session MarketSession Current session. This is used to 'enhance' updates from the translator in the Market State
tSession MarketSession 'T' session. This is used to 'enhance' updates from the translator in the Market State
previousSession MarketSession Previous session. This is used to 'enhance' updates from the translator in the Market State
regional bool True if message applies to regional/participant member
news News
clearBook ClearBook
instrumentStatus InstrumentStatus
bbo BestBidOffer
depthPriceLevel DepthPriceLevel
depthOrder DepthOrder
index IndexValue
trades Trades
open Open
high High
low Low
close Close
prevClose PrevClose
last Last
yearHigh YearHigh
yearLow YearLow
volume Volume
settlement Settlement
openInterest OpenInterest
vwap Vwap
dividendsIncomeDistributions DividendsIncomeDistributions
numberOfTrades NumberOfTrades
monetaryValue MonetaryValue
capitalDistributions CapitalDistributions
sharesOutstanding SharesOutstanding
netAssetValue NetAssetValue
marketSummary MarketSummary

ModifyOrder

Modify the price or quantity of an order. The side and implied flag cannot change

Field Type Label Description
transactionTime sint64
orderId sint64
side BookSide
price sint64
quantity sint64
isImplied bool
priority sint64

ModifyPriceLevel

Modify the quantity or orderCount of an existing price level. / The price itself will not change.

Field Type Label Description
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
level sint32 price level index, starting at 1
side BookSide
price sint64 Divide by priceDenominator
quantity sint64 Divide by quantityDenominator
orderCount sint32
impliedQuantity sint64

MonetaryValue

Total monetary value of trades

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
value sint64 Divide by priceDenominator
valueCurrencyCode string

NetAssetValue

Field Type Label Description
netAssetValue sint64
transactionTime sint64

News

News or informational message

Field Type Label Description
originationTime sint64 Origination time = UTC timestamp nano seconds since Unix epoch
source string
languageCode string
headLine string
text string
symbols string repeated

NumberOfTrades

Total number of trades

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
numberTrades sint64

Ohlc

Open,High,Low,Close

Field Type Label Description
marketId sint64
symbol string
open Open Most recent opening price
high High High price for the trading session
low Low Low price for the trading session
close Close Most recent closing price

Open

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
OpenCloseSettlementFlag OpenCloseSettlementFlag
currency string

OpenInterest

Open interest

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
volume sint64

OpenfeedMessage

A wrapper for Openfeed data. Will contain exactly one of the supported message types

Field Type Label Description
sendingTime sint64 Nanoecond unix epoch at time of message transmission (UTC)
totalCount sint32 The total number of markets available on this channel at the time the message was sent. For UDP snapshot and definition feeds.
syncSequence int64 The most recent packet sequence number sent on the incremental feed at the time this message was sent. For UDP snapshot and definition feeds.
context Context Feed specific context data
channelReset ChannelReset
heartBeat HeartBeat
adminMessage AdminMessage
instrumentDefinition InstrumentDefinition
instrumentGroupStatus InstrumentGroupStatus
marketSnapshot MarketSnapshot
marketUpdate MarketUpdate
marketStatus MarketStatus

PrevClose

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
currency string

Settlement

Settlement value for futures and options markets.

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
price sint64 Divide by priceDenominator
preliminarySettle bool
currency string
settlementSource SettlementSource
session string Used by CME ITC.
reserved bool Reserved

SharesOutstanding

Field Type Label Description
sharesOutstanding sint64
transactionTime sint64

SnapshotRequest

Request for the snapshot to the Market state.

Field Type Label Description
channel int32
resetNumber int32
requestId string
snapshotRequestTypes SnapshotRequest.SnapshotRequestType repeated

TCPHistoricalReplayRequest

TCP replay request.

Field Type Label Description
channel int32
resetNumber int32
sequence int64
count int32
requestId string

TracePoint

Tracing

Field Type Label Description
id string
componentId string
timestampNs sint64
componentLatencyNs int32

Trade

A live trade. When received, update the "last" field

Field Type Label Description
originatorId bytes Market participant/originator
transactionTime sint64 UTC Timestamp, nano seconds since Unix epoch
price sint64 Divide by priceDenominator
quantity sint64 Divide by quantityDenominator
tradeId bytes
side BookSide The side of the aggressing order that caused the trade
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
buyerId bytes
sellerId bytes
openingTrade bool
systemPriced bool
marketOnClose bool
oddLot bool
settlementTerms SettlementTerms
crossType CrossType
byPass bool
lastPrice sint64
saleCondition bytes
currency string
doesNotUpdateLast bool Does not update Last
doesNotUpdateVolume bool Does not update Volume
session string
blockTrade bool Is this a block trade.
distributionTime sint64 Distribution time in nano seconds since epoch.
transactionTime2 sint64 time in nano seconds since epoch.

TradeCancel

Trade Cancel/Break

Field Type Label Description
originatorId bytes Market participant/originator
transactionTime sint64
correctedTradePrice sint64
correctedTradeQuantity sint64
tradeId bytes
saleCondition bytes
currency string
distributionTime sint64 Distribution time in nano seconds since epoch.
transactionTime2 sint64 time in nano seconds since epoch.

TradeCorrection

Trade Correction

Field Type Label Description
originatorId bytes Market participant/originator
transactionTime sint64
price sint64 Corrected Price
quantity sint64 Corrected Quantity
tradeId bytes
side BookSide
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
buyerId bytes
sellerId bytes
openingTrade bool
systemPriced bool
marketOnClose bool
oddLot bool
settlementTerms SettlementTerms
crossType CrossType
byPass bool
originalTradeId bytes
saleCondition bytes
currency string
distributionTime sint64 Distribution time in nano seconds since epoch.
transactionTime2 sint64 time in nano seconds since epoch.

Trades

Trades

Field Type Label Description
trades Trades.Entry repeated

Trades.Entry

Field Type Label Description
trade Trade
tradeCorrection TradeCorrection
tradeCancel TradeCancel

Volume

Total volume traded

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
volume sint64 Total volume traded.

VolumeAtPrice

The VolumeAtPrice class encapsulates all of the trades throughout the day, / and organizes a table of volume at prices.

Field Type Label Description
marketId sint64
symbol string
transactionTime sint64 UTC Timestamp of transaction, nano seconds since Unix epoch
lastPrice sint64
lastQuantity sint64
lastCumulativeVolume sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
priceVolumes VolumeAtPrice.PriceLevelVolume repeated

VolumeAtPrice.PriceLevelVolume

Field Type Label Description
price sint64
volume sint64

Vwap

Volume Weighted Average Price

Field Type Label Description
transactionTime sint64
tradeDate sint32 Date only, format 2012-07-04 -> 20120704
vwap sint64

YearHigh

52 week

Field Type Label Description
transactionTime sint64
price sint64 Divide by priceDenominator
currency string

YearLow

52 week

Field Type Label Description
transactionTime sint64
price sint64 Divide by priceDenominator
currency string

AdminMessage.Status

Name Number Description
OK 0

BookSide

Book side

Name Number Description
UNKNOWN_BOOK_SIDE 0
BID 1
OFFER 2

CrossType

Name Number Description
UNKNOWN_CROSS_TYPE 0
DEFAULT 1
INTERNAL 2
BASIS 3
CONTINGENT 4
SPECIAL 5
VWAP 6
REGULAR 7

InstrumentTradingStatus

Name Number Description
UNKNOWN_TRADING_STATUS 0
TRADING_RESUME 1
PRE_OPEN 2
OPEN 3
PRE_CLOSE 4
CLOSE 5
TRADING_HALT 6
QUOTATION_RESUME 7
OPEN_DELAY 8
NO_OPEN_NO_RESUME 9
FAST_MARKET 10
FAST_MARKET_END 11
LATE_MARKET 12
LATE_MARKET_END 13
POST_SESSION 14
POST_SESSION_END 15
NEW_PRICE_INDICATION 16
NOT_AVAILABLE_FOR_TRADING 17
PRE_CROSS 18
CROSS 19
POST_CLOSE 20
NO_CHANGE 21
NAFT 22 Not available for trading.

MarketSummary.ClearSet

Clears sets of fields

Name Number Description
NONE 0
ALL 1
BA 2
CUSTOM_1 3

MarketSummary.SummaryType

Used to differntiate various ddf messages.

Name Number Description
EXCHANGE_REFRESH 0 DDF 2/1 Exchange refresh
REFRESH_LIVE_PRICE 1 DDF 2/6 Live Prices refresh
EOD_COMMODITY_PRICES 2 DDF 3/C end-of-day commodity prices
EOD_STOCK_FOREX_PRICES 3 DDF 3/S end-of-day stock and forex prices and volume
EOD_COMMODITY_STATS 4 DDF 3/I end-of-day commodity volume and open interest message

MarketWideStatus

Name Number Description
STATUS_UNKNOWN 0
STATUS_START_OF_DAY 1
STATUS_END_OF_DAY 2
STATUS_OPEN 3
STATUS_CLOSE 4

OpenCloseSettlementFlag

Name Number Description
UNKNOWN 0
DAILY_OPEN 1
INDICATIVE_OPEN_PRICE 2

RegulationSHOShortSalePriceTest

Name Number Description
UNKNOWN_PRICE_TEST 0
PRICE_TEST_NONE 1
PRICE_TEST_IN_EFFECT 2
PRICE_TEST_REMAINS_IN_EFFECT 3

Service

Name Number Description
UNKNOWN_SERVICE 0
REAL_TIME 1
DELAYED 2
REAL_TIME_SNAPSHOT 3
DELAYED_SNAPSHOT 4
END_OF_DAY 5

SettlementSource

Name Number Description
UNKNOWN_SETTLEMENT_SOURCE 0
GLOBEX 1
ITC 2
MANUAL 3

SettlementTerms

Name Number Description
UNKNOWN_SETTLEMENT_TERMS 0
CASH 1
NON_NET 2
CONTINGENT_TRADE 3
CASH_TODAY 4
DATE 5

SnapshotRequest.SnapshotRequestType

Name Number Description
ALL 0
QUOTE 1
DEPTH 2
VOLUME_AT_PRICE 3

SnapshotRequestResult

Name Number Description
SNAPSHOT_REQUEST_UNKNOWN_RESULT 0
SNAPSHOT_REQUEST_SUCCESS 1
SNAPSHOT_REQUEST_NOT_FOUND 2
SNAPSHOT_REQUEST_SERVICE_NOT_AVAILABLE 3
SNAPSHOT_REQUEST_GENERIC_FAILURE 4

Top

openfeed_api.proto

InstrumentReferenceRequest

Instrument References, returns InstrumentReferenceResponse(s)

Field Type Label Description
correlationId sint64
token string
symbol string
marketId sint64
exchange string
channelId sint32

InstrumentReferenceResponse

Field Type Label Description
correlationId sint64
status Status
numberOfDefinitions sint32
channelId sint32
marketId sint64
symbol string
exchange string
ddfSymbol string
ddfExchange string
ddfBaseCode string

InstrumentRequest

Instrument Definition(s), will stream InstrumentDefinition(s)

Field Type Label Description
correlationId sint64
token string
symbol string
marketId sint64
exchange string
channelId sint32

InstrumentResponse

Field Type Label Description
correlationId sint64
status Status
numberOfDefinitions sint32

LoginRequest

Login

Field Type Label Description
correlationId sint64
username string
password string

LoginResponse

Field Type Label Description
correlationId sint64
status Status
token string

LogoutRequest

Logout

Field Type Label Description
correlationId sint64
token string

LogoutResponse

Field Type Label Description
correlationId sint64
status Status

OpenfeedGatewayMessage

Openfeed Server Response

Field Type Label Description
loginResponse LoginResponse
logoutResponse LogoutResponse
instrumentResponse InstrumentResponse
instrumentReferenceResponse InstrumentReferenceResponse
subscriptionResponse SubscriptionResponse
marketStatus MarketStatus
heartBeat HeartBeat
instrumentDefinition InstrumentDefinition
marketSnapshot MarketSnapshot
marketUpdate MarketUpdate
volumeAtPrice VolumeAtPrice
ohlc Ohlc

OpenfeedGatewayRequest

Openfeed Server request

Field Type Label Description
loginRequest LoginRequest
logoutRequest LogoutRequest
subscriptionRequest SubscriptionRequest
instrumentRequest InstrumentRequest
instrumentReferenceRequest InstrumentReferenceRequest

Status

Serivce Messages /////////////////

Field Type Label Description
result Result
message string
service Service

SubscriptionRequest

Subscription Request

Field Type Label Description
correlationId sint64 Client-assigned id for this request. Response will include same id
token string
service Service Preferred service (realtime or delayed).
unsubscribe bool
requests SubscriptionRequest.Request repeated

SubscriptionRequest.Request

Field Type Label Description
symbol string
marketId sint64
exchange string
channelId sint32
subscriptionType SubscriptionType repeated
snapshotIntervalSeconds sint32 0 = send only current snapshot once, else send at interval seconds

SubscriptionResponse

Field Type Label Description
correlationId sint64
status Status
symbol string
marketId sint64
exchange string
channelId sint32
numberOfDefinitions sint32

Result

Name Number Description
UNKNOWN_RESULT 0
SUCCESS 1
INVALID_SYMBOL 116
INVALID_MARKET_ID 117
INVALID_EXCHANGE 118
INVALID_CHANNEL_ID 119
MALFORMED_MESSAGE 120
UNEXPECTED_MESSAGE 121
NOT_SUBSCRIBED 122
DUPLICATE_SUBSCRIPTION 123
INVALID_CREDENTIALS 124
INSUFFICIENT_PRIVILEGES 125
AUTHENTICATION_REQUIRED 126
GENERIC_FAILURE 127

SubscriptionType

Name Number Description
ALL 0
QUOTE 1
QUOTE_PARTICIPANT 2
DEPTH_PRICE 3
DEPTH_ORDER 4
TRADES 5
CUMLATIVE_VOLUME 6
OHLC 7

Top

openfeed_instrument.proto

InstrumentDefinition

Field Type Label Description
marketId sint64 Unique ID used in the data feed.
instrumentType InstrumentDefinition.InstrumentType Instrument type as enum...
supportBookTypes InstrumentDefinition.BookType repeated Supported Book Types
bookDepth sint32 Maximum depth of market-by-price order book
vendorId string The name of the market data vendor
symbol string Human readable market symbol, assigned by the exchange or venue. Not necessarily unique as the exchange or vendor could assign the same symbol to different instruments, for example if the instruments trade on different exchanges.
description string Human readable market description.
cfiCode string Market CFI code: http://en.wikipedia.org/wiki/ISO_10962
currencyCode string Market currency code: http://en.wikipedia.org/wiki/ISO_4217
exchangeCode string Market exchange code: http://en.wikipedia.org/wiki/ISO_10383 For inter-exchange spreads, use the leg MICs separated by a hyphen
minimumPriceIncrement float Minimum price increment in market currency.
contractPointValue float Contract point value in market currency.
schedule InstrumentDefinition.Schedule Trading schedule for a typical week
calendar InstrumentDefinition.Calendar Trading calendar (expiration, notice days, holidays?, etc)
recordCreateTime sint64 UTC Timestamp of creation, nano seconds since Unix epoch
recordUpdateTime sint64 UTC Timestamp of update, nano seconds since Unix epoch
timeZoneName string Market time zone TZ database name. Permanent. Can be resolved into timeZoneOffset for given date/time. See http://joda-time.sourceforge.net/timezones.html See http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
instrumentGroup string Identifies a logical grouping of instruments. By product, for example.
symbolExpiration InstrumentDefinition.MaturityDate The Date of expiration for futures and options.
state InstrumentDefinition.State active: can have market state updates, can have historical data passive: can NOT have market state updates, but can have historical data normally "active" means newly listed or currently non expired markets normally "passive" means expired options, de-listed equities, etc.
channel sint32 The channel that updates for this instrument will appear on.
underlyingMarketId sint64 The marketId of the underlying asset. Used by Futures and Options when the underlying instrument is defined by the vendor
priceFormat InstrumentDefinition.PriceFormat Display format
optionStrikePriceFormat InstrumentDefinition.PriceFormat Strike price display format
priceDenominator sint32 Divide prices by this value to get real price values
quantityDenominator sint32 Divide trade quantities by this value to get real quantities
isTradable bool true if this is a tradable instrument
transactionTime sint64 UTC timestamp of transaction, nano seconds since Unix epoch
auxiliaryData bytes For internal use only. Ignore
symbols InstrumentDefinition.Symbol repeated List of alternate symbols for this instrument. A single instrument may be provided by many different market data vendors, each with their own unique symbology. Allows this instrument to be tagged with as many vendor symbols as necessary.
optionStrike sint64 Option strike price in market currency. Multiply by / factorOptionsStrike to get actual strike
optionType InstrumentDefinition.OptionType Option type: call vs put.
optionStyle InstrumentDefinition.OptionStyle Option style : American vs European.
optionStrikeDenominator sint32 Divide optionStrike by this value to get real strike price
spreadCode string Spread type, can be vendor specific
spreadLeg InstrumentDefinition.SpreadLeg repeated Ordered list of underlying legs in a spread.
userDefinedSpread bool true if user defined spread
marketTier string Listing market classification
financialStatusIndicator string Current financial status of the issuer
isin string ISIN: https://en.wikipedia.org/wiki/International_Securities_Identification_Number
currencyPair InstrumentDefinition.CurrencyPair Break out of currency pair
exchangeSendsVolume bool true if exchange sends volume.
exchangeSendsHigh bool true if exchange sends high.
exchangeSendsLow bool true if exchange sends low.
exchangeSendsOpen bool true if exchange sends open.
consolidatedFeedInstrument bool true if this instrument represents consolidated NBBO.
openOutcryInstrument bool true if this instrument represents Pit symbol.
syntheticAmericanOptionInstrument bool true if this instrument generated FX option.
barchartExchangeCode string
barchartBaseCode string

InstrumentDefinition.Calendar

Field Type Label Description
events InstrumentDefinition.Event repeated

InstrumentDefinition.CurrencyPair

Currency Pair

Field Type Label Description
currency1 string
currency2 string

InstrumentDefinition.Event

Field Type Label Description
type InstrumentDefinition.EventType
date sint64

InstrumentDefinition.MaturityDate

Date and time with time zone.

Field Type Label Description
year sint32 Year of century.
month sint32 Month of year.
day sint32 Day of month.

InstrumentDefinition.PriceFormat

Recommended display format for prices.

Field Type Label Description
isFractional bool
denominator sint32
subDenominator sint32
subFormat InstrumentDefinition.PriceFormat.SubFormat

InstrumentDefinition.Schedule

Typical trading week schedule

Field Type Label Description
sessions InstrumentDefinition.TimeSpan repeated

InstrumentDefinition.SpreadLeg

Field Type Label Description
marketId sint64 The marketId of the leg
ratio sint32 The ratio of the this leg with respect to the spread. Negative means short the absolute value, positive means long the absolute value. FIXME? Alternatively, we could have separate LONG/SHORT indicator in the message and use this field as only the absolute value
symbol string Additional information about the leg will be found in the instrument definition for the leg. It is not included here to reduce duplication.

InstrumentDefinition.Symbol

A vendor's symbol for an instrument

Field Type Label Description
vendor string The vendor that provides this symbol.
symbol string The symbol assigned by the vendor.

InstrumentDefinition.TimeSpan

Trading session Times are in nanos since midnight UTC on the Sunday starting a given trading week

Field Type Label Description
timeStart sint64
timeFinish sint64

InstrumentDefinition.BookType

Market depth implementation type

Name Number Description
UNKNOWN_BOOK_TYPE 0
TOP_OF_BOOK 1 BBO
PRICE_LEVEL_DEPTH 2 Book uses price level
ORDER_DEPTH 3 Book uses order-id

InstrumentDefinition.EventType

Name Number Description
UNKNOWN_EVENT_TYPE 0
FIRST_TRADE_DATE 1 All instruments
LAST_TRADE_DATE 2
SETTLEMENT_DATE 10 Futures only
FIRST_DELIVERY_DATE 11
LAST_DELIVERY_DATE 12
FIRST_NOTICE_DATE 13
LAST_NOTICE_DATE 14
FIRST_HOLDING_DATE 15
LAST_HOLDING_DATE 16
FIRST_POSITION_DATE 17
LAST_POSITION_DATE 18

InstrumentDefinition.InstrumentType

Name Number Description
UNKNOWN_INSTRUMENT_TYPE 0
FOREX 1
INDEX 2
EQUITY 3
FUTURE 4
OPTION 5
SPREAD 6
MUTUAL_FUND 7
MONEY_MARKET_FUND 8

InstrumentDefinition.OptionStyle

Option style.

Name Number Description
UNKNOWN_OPTIONS_STYLE 0
DEFAULT 1
AMERICAN 2
EUROPEAN 3

InstrumentDefinition.OptionType

Option type.

Name Number Description
UNKNOWN_OPTION_TYPE 0
CALL 1
PUT 2

InstrumentDefinition.PriceFormat.SubFormat

Name Number Description
FLAT 0
FRACTIONAL 1
DECIMAL 2

InstrumentDefinition.State

Name Number Description
UNKNOWN_STATE 0
ACTIVE 1
PASSIVE 2

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str