> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kraken.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Market Data Incremental Refresh

> Incremental order book and trade updates via FIX

<div className="api-banner">
  <span className="api-protocol fix">FIX</span>
  <span className="api-detail">session: market-data</span>
  <span className="api-tag">35=X</span>
</div>

Incremental updates to the order book and trades following a [Market Data Snapshot Full Refresh](/exchange/api-reference/unified-fix/mdsfr).

***

<ResponseField name="header" type="" required>35=`X`</ResponseField>

<ResponseField name="262 - MDReqID" type="string" required>
  Unique request identifier.
</ResponseField>

<ResponseField name="55 - Symbol" type="string" required>
  Asset Pair listed on the exchange.
</ResponseField>

<ResponseField name="268 - NoMDEntries" type="integer" required>
  Number of entries following. If several entries are present they need to be parsed in order (for example creation and deletion of an entry in the book can happen in the same message).

  <Expandable title="repeating group" defaultOpen>
    <ResponseField name="279 - MDUpdateAction" type="integer" required>
      Always first field in this repeating group.

      **Possible values:**

      * `0` : New — Creation of an entry in the book
      * `1` : Update — Update of a quantity for an entry in the book
      * `2` : Delete — Removal of an entry from the subscribed depth (tag `271` greater than 0) or from the book entirely (tag `271=0`, cancelled or filled)
    </ResponseField>

    <ResponseField name="269 - MDEntryType" type="integer" required>
      **Possible values:**

      * `0` : Bid
      * `1` : Offer
      * `2` : Trade
    </ResponseField>

    <ResponseField name="278 - MDEntryID" type="string" required>
      Unique identifier for this market data entry. Corresponding to the OrderID for Level 3 subscription.
    </ResponseField>

    <ResponseField name="270 - MDEntryPx" type="float" required>
      Price of the market data entry.
    </ResponseField>

    <ResponseField name="271 - MDEntrySize" type="float" required>
      Volume represented by the market data entry.
    </ResponseField>

    <ResponseField name="273 - MDEntryTime" type="string" required>
      The time the entry was inserted or amended or deleted.
    </ResponseField>

    <ResponseField name="5060 - MDEntryTimestamp" type="string">
      High-precision event time for this market data update.
      **Level 3 only.** When present with 5273, 5060 is the time the update was generated; 5273 is the queue entry time.
      Sample format: `2026-02-03T10:24:34.650069468Z` (ISO 8601, nanosecond fractional seconds, UTC).
    </ResponseField>

    <ResponseField name="5273 - MDEntryTimeQueue" type="string">
      Queue entry time: when the order entered the book at this price level.
      **Level 3 only.** For L3, orders at the same price are ordered by this tag.
      Sample format: `2026-02-03T10:24:29.175114502Z` (ISO 8601, nanosecond fractional seconds, UTC).
    </ResponseField>

    <ResponseField name="40 - OrdType" type="char">
      The order type of the taker order.

      **Possible values:**

      * `1` : market
      * `2` : Limit

      <span className="field-attr">Condition:</span> MDEntryType = Trade
    </ResponseField>

    <ResponseField name="2446 - AggressorSide" type="char">
      The side of the taker order.

      **Possible values:**

      * `1` : Buy
      * `2` : Sell

      <span className="field-attr">Condition:</span> MDEntryType = Trade
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="5041 - ChecksumOrderBook" type="string">
  Checksum to verify the orderbook update. See [Checksum article](/exchange/guides/fix/checksums).

  <span className="field-attr">Condition:</span> MDEntryType = Bid or Offer
</ResponseField>

<ResponseField name="trailer" type="" required />

<CodeGroup>
  ```text Spot L2 Example theme={null}
  8=FIX.4.4|9=213|35=X|34=100|56=MYCOMPID|49=KRAKEN-MD|52=20230707-13:42:27.230|55=BTC/USD|262=1|268=2|279=2|269=1|278=O30300.7|270=30300.7|271=0.0|273=13:42:27.208|279=0|269=1|278=O31941.0|270=31941.0|271=0.0031746|273=20:40:00.455|10=112|
  ```

  ```text Futures L2 Example theme={null}
  8=FIX.4.4|9=173|35=X|34=33402|49=KRAKEN-DRV-MD|52=20250303-14:13:24.905|56=MYCOMPID_DRV|55=PF_ETHUSD|262=1|268=1|279=0|269=0|278=B2372.7|270=2372.7|271=0.084|273=14:13:24.859|5041=3254665545|10=121|
  ```

  ```text Futures L3 Example theme={null}
  8=FIX.4.4|9=198|35=X|34=7|49=KRAKEN-DRV-MD|52=20250304-15:25:09.913|56=MYCOMPID_DRV|55=PF_ETHUSD|262=1|268=1|279=2|269=1|278=00bf007e-0039-00dd-0071-00ae00d700c8|270=2044.8|271=2.874|273=15:25:09.844|5041=3889519115|10=012|
  ```
</CodeGroup>
