Skip to main content
The market data sessions for the Polymarket US are available by a second, separate FIX gateway; they are not accessible via the order-entry session. When displaying the order book, the Polymarket US provides a Market-by-Order view; i.e each order is displayed individually with a corresponding timestamp (used to determine time priority within a price level). Each order also carries the unique OrderID reference, which Participants can use to identify their own orders in market data.

Subscribing to Market Data

Participants can subscribe to market data for a given symbol using a MarketDataRequest [V] message.

Table 20: MarketDataRequest (V) message

TagNameReqTypeDescription
< Standard Header >Y35 = V
262MDReqIDYStringUnique ID for this request
263SubscriptionRequestTypeYcharType of subscription requested (0=Snapshot, 1=Snapshot plus Updates, 2=Delete previous request/unsubscribe)
264MarketDepthYintDepth requested, maximum 25 levels (0=Full book depth, 1=Top of book/best prices only, 2+=Number of levels requested)
267NoMDEntryTypesNNumInGroup
→269MDEntryTypeNcharA repeating group of MD Entry Types requested (0=Bid, 1=Offer, 2=Trade, 4=Opening Price, 5=Closing Price, 6=Settlement Price, 7=Trading Session High Price, 8=Trading Session Low Price, B=Trade Volume, g=Trading Reference Price)
146NoRelatedSymYNumInGroupNumber of symbols requested
→55SymbolYStringInstrument symbol.
< Standard Trailer >Y
If the MarketDataRequest [V] message is valid, Polymarket US will respond with a single MarketDataSnapshotFullRefresh [W] message for each requested Instrument, providing details of all orders in the order book (all levels as a repeating group within a single message). Note that the (repeating) MDEntryType (269) field can be specified if required to tailor the elements returned. Example 18: Request a snapshot of all market data elements using MarketDataRequest [V] message
8=FIXT.1.1 | 9=92 | 35=V | 49=SENDER | 56=TARGET | 34=4 | 52=20240517-19:05:47 | 262=MD-REQ-001 | 263=1 | 264=3 | 146=1 | 55=GOOG | 10=075 |
Note that since the Polymarket US returns market data split by order, requesting only the best price using MarketDepth (264) = 1 (Top of book) may still return multiple bid and offer entries if there is more than one order at this price.

Table 21: MarketDataSnapshotFullRefresh (W) message

TagNameReqTypeDescription
< Standard Header >Y35 = W
22SecurityIDSourceYint8 = Exchange symbol
48SecurityIDYStringWill always equal Symbol (55)
55SymbolYStringInstrument symbol
167SecurityTypeNStringType of instrument (CS, FUT, FXSPOT, FXSWAP, OOF, OPT, NONE)
262MDReqIDYStringThe ID of the request as indicated on the request.
292Corporate ActionCcharProvided if the instrument is currently subject to a Corporate Action (A-W codes)
268NoMDEntriesYNumInGroupThe number of market data levels returned. Might be zero if the symbol is valid but there are currently no bids/offers in this symbol.
→ 269MDEntryTypeYcharType of entry (0=Bid, 1=Offer, 2=Trade, 4=Opening Price, 5=Closing Price, 6=Settlement Price, 7=Trading Session High Price, 8=Trading Session Low Price, B=Trading Session Volume, g=Trading Reference Price)
→ 270MDEntryPxYPricePrice level
→ 271MDEntrySizeCQtyQuantity of the individual order or trade, or the aggregate quantity where MDEntryType (269) = B (Trading Session Volume). Not sent for session open/high/low.
→ 272MDEntryDateYUTCDateOnlyTime priority (date) of the order.
→ 273MDEntryTimeYUTCTimeOnlyTime priority (time) of the order.
→ 336TradingSessionIDCStringSent for entries other than MDEntryType (269) = 0 (Bid) or 1 (Offer): CLOSED, OPEN, PREOPEN, SUSPENDED, EXPIRED, TERMINATED, HALTED, MATCH_AND_CLOSE_AUCTION
→ 1151SecurityGroupCStringThe name of the group of related securities to which this instrument belongs.
→ 1070MDQuoteTypeCintIdentifies market data quote type. Only sent for MDEntryType (269) = 4 (Opening Price). 0 = Indicative
→ 59TimeInForceCcharSent for MDEntryType (269) = 0 (Bid) or 1 (Offer). The time in force for this order (0=Good for day, 1=Good till cancel, 6=Good till date)
→ 37OrderIDCStringSent for MDEntryType (269) = 0 (Bid) or 1 (Offer). Matches the order ID in the ExecutionReport [8] acknowledgement, allowing Participants to identify their own orders within market data. Typically a 13-character alphanumeric string.
→ 278MDEntryIDCStringSent for MDEntryType (269) = 0 (Bid) or 1 (Offer). Unique reference for the entry. Typically 13-character alphanumeric string.
→ 40OrdTypeCcharSent for MDEntryType (269) = 0 (Bid) or 1 (Offer).
→ 126ExpireTimeNUTCTimestampSent for MDEntryType (269) = 0 (Bid) or 1 (Offer) where the order has ExpiryTime (126) set.
< Standard Trailer >Y
Example 19: Initial Market Data Snapshot (five repeating groups color-coded)
8=FIXT.1.1 | 9=458 | 35=W | 34=79 | 49=TARGET | 52=20240521-09:45:49.860198821 | 56=SENDER | 22=8 | 48=GOOG | 55=GOOG | 167=NONE | 262=1552371733 | 268=5 | 269=2 | 270=0.00 | 271=1499 | 272=20240521 | 273=09:06:39.324891684 | 336=OPEN | 269=4 | 270=3.00 | 272=20240515 | 273=21:24:03.898604733 | 336=OPEN | 1070=1 | 269=7 | 270=50.00 | 272=20240517 | 273=19:06:47.977567695 | 336=OPEN | 269=8 | 270=0.00 | 272=20240521 | 273=09:06:39.324891684 | 336=OPEN | 269=B | 270=93544.40 | 271=23645 | 272=20240521 | 273=09:06:39.324891684 | 336=OPEN | 1151=Equities | 10=199 |
Note the response will contain ONLY a snapshot of the current order book; it does not contain information about historic trades that have occurred on the platform.

Figure 14: Successful market data subscription with snapshot and incremental updates