Market Data Message Types
The Coinbase Derivatives: Predictions Market Data FIX API supports the following message types. For Logon, heartbeats, and sequence recovery, see Session.Client Message Types
Client Message Types
- MarketDataRequest (35=V): Subscribes to or unsubscribes from market data.
System Message Types
System Message Types
- MarketDataSnapshotFullRefresh (35=W): Initial order book snapshot.
- MarketDataIncrementalRefresh (35=X): Order book changes, trades, trade volume, and open interest.
- MarketDataRequestReject (35=Y): Rejection of a
MarketDataRequest. - SecurityStatus (35=f): Instrument trading status changes.
- BusinessMessageReject (35=j): Rejection of a malformed or unsupported application message.
Session Message Types
Session Message Types
Logon (35=A), Logout (35=5), Heartbeat (35=0), TestRequest (35=1), ResendRequest (35=2), Reject (35=3), and SequenceReset (35=4). See Session.
Connection
Connect withTargetCompID (56) = CPMMD and your API key in SenderCompID (49). The API key must have the MARKET_DATA permission. You can open several sessions with one API key; see Multiple sessions per API key. Host and port are listed on the Coinbase Derivatives: Predictions Connectivity page. Header fields are on Header/Trailer. Logon, the Logon signature, heartbeats, and sequence recovery are on Session.
SendingTime (52) and TransactTime (60) on messages you receive are UTC timestamps with microsecond precision.
MarketDataRequest (35=V)
Subscribes to or unsubscribes from market data for one or more instruments, or for all instruments.Entry types
Request instrument lifecycle (
269=L) on its own MDReqID. A request that combines 269=L with any other entry type is rejected with 281=8.Only order book requests (
269=0 or 1) receive an initial 35=W snapshot. Trade, trade volume, open interest, and lifecycle subscriptions deliver only changes that occur after you subscribe.- A multi-instrument request is all-or-nothing: if any Symbol (55) does not resolve, or a snapshot cannot be delivered, the whole request is rejected and no subscription is created.
- To unsubscribe, send
263=2with theMDReqIDof the subscription. All instruments subscribed under thatMDReqIDare removed.
MarketDataSnapshotFullRefresh (35=W)
Sent once per instrument when you subscribe to the order book (269=0 or 1). The snapshot contains only the requested sides, up to the requested MarketDepth (264).
MarketDataIncrementalRefresh (35=X)
Carries order book level changes, trades, trade volume, and open interest. Each message carries one kind of update: order book levels, one trade, or trade volume and open interest.Order book entries carry the absolute quantity at the price level. Replace your local level with
MDEntrySize (271); do not add or subtract. 279=2 removes the level.The gateway sends
279=2 only when a level’s resting quantity drops to zero. When better prices push a level out of your requested depth, no Delete is sent; truncate your local book to the requested depth.Trade volume (
269=B) and open interest (269=C) are sent with 279=0. At settlement, the message may carry only open interest (269=C), without trade volume.MarketDataRequestReject (35=Y)
Sent when aMarketDataRequest is well-formed but cannot be accepted. No subscription is created.
SecurityStatus (35=f)
Sent to instrument lifecycle subscriptions (269=L) when an instrument is created or its trading status or symbol changes. No snapshot is sent on subscribe.
SecurityTradingStatus values
Coinbase Derivatives: Predictions assigns its own meanings to SecurityTradingStatus (326). Interpret the values by this table, not by the standard FIX descriptions.BusinessMessageReject (35=j)
Sent when an application message cannot be processed:- A
MarketDataRequestthat is structurally malformed, for example a missing required tag or an invalid value format. - Any application message type other than
MarketDataRequest (35=V).