# Market Data

Every price or size values should be represented with FineryMarkets internal corresponding types.

Description of all the types can be found [here](https://faq.finerymarkets.com/api-reference/data-types).

## Market Data Request\<V>

Market data request allows receiving market data on a subscription basis.

<table><thead><tr><th width="150" align="center">Tag</th><th width="200" align="center">Name</th><th width="150" align="center">Required</th><th align="center">Example</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">262</td><td align="center">MDReqID</td><td align="center">Y</td><td align="center">1</td><td align="center">Unique market data request Id</td></tr><tr><td align="center">263</td><td align="center">SubscriptionRequestType</td><td align="center">Y</td><td align="center">2</td><td align="center">Subscription request type(see below)</td></tr><tr><td align="center">267</td><td align="center">NoMDEntryTypes</td><td align="center">Y</td><td align="center">2</td><td align="center">Number of MDEntryType &#x3C;269> fields requested. Should always be 2 for bid and offer.</td></tr><tr><td align="center">269</td><td align="center">=> MDEntryType</td><td align="center">Y</td><td align="center">0</td><td align="center">Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting the Market Data is interested in receiving (see below)</td></tr><tr><td align="center">146</td><td align="center">NoRelatedSym</td><td align="center">Y</td><td align="center">1</td><td align="center">Number of symbols (instruments) requested. Should be 1.</td></tr><tr><td align="center">55</td><td align="center">=> Symbol</td><td align="center">Y</td><td align="center">BTC-USD</td><td align="center">Requested instrument</td></tr></tbody></table>

| Subscription Request Type | Description |
| :-----------------------: | :---------: |
|             1             |  Subscribe  |
|             2             | Unsubscribe |

| MDEntryType | Description |
| :---------: | :---------: |
|      0      |     Bid     |
|      1      |    Offer    |

Upon a successful subscription, a **Market Data - Snapshot/Full Refresh \<W>** message is sent to the client, followed by subsequent **Snapshot/Full Refresh \<W>** messages for each book update.

If the subscription fails, a **Market Data Request Reject \<Y>** message is sent to the client.

## **Market Data - Snapshot/Full Refresh\<W>**

Market Data messages are used as the response to a **Market Data Request\<V>** message. In all cases, one Market Data message refers only to one **Market Data Request\<V>** . Each Market Data message contains information about only one symbol (instrument).

<table><thead><tr><th width="150" align="center">Tag</th><th width="200" align="center">Name</th><th width="150" align="center">Required</th><th align="center">Example</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">262</td><td align="center">MDReqID</td><td align="center">Y</td><td align="center">1</td><td align="center">Contains MDReqId&#x3C;262> from corresponding Market Data Request</td></tr><tr><td align="center">55</td><td align="center">Symbol</td><td align="center">Y</td><td align="center">BTC-USD</td><td align="center">Instrument</td></tr><tr><td align="center">268</td><td align="center">NoMDEntries</td><td align="center">Y</td><td align="center">1</td><td align="center">Number of entries following. 0 for empty book.</td></tr><tr><td align="center">269</td><td align="center">=> MDEntryType</td><td align="center">Y</td><td align="center">0</td><td align="center">Must be the first field of the repeating group. Entry type(see below)</td></tr><tr><td align="center">270</td><td align="center">=> MDEntryPx</td><td align="center">Y</td><td align="center">1</td><td align="center">Price, value of type Price</td></tr><tr><td align="center">271</td><td align="center">=> MDEntrySize</td><td align="center">Y</td><td align="center">1</td><td align="center">Size, value of type Size</td></tr><tr><td align="center">20002</td><td align="center">LpId</td><td align="center">Y</td><td align="center">123</td><td align="center">FM id of an LP, providing the corresponding price stream</td></tr></tbody></table>

| MDEntryType | Description |
| :---------: | :---------: |
|      0      |     Bid     |
|      1      |    Offer    |

<details>

<summary>Example of the message</summary>

{% code overflow="wrap" lineNumbers="true" %}

```
8=FIX.4.4|9=471|35=W|34=2|49=FINERYMARKETS|52=20250526-14:33:53.914|56=<api_key>|55=BTC-USD|262=1|268=10|269=0|270=500000000|271=500000000|269=0|270=400000000|271=400000000|269=0|270=300000000|271=300000000|269=0|270=200000000|271=200000000|269=0|270=100000000|271=100000000|269=1|270=100000000|271=100000000|269=1|270=200000000|271=200000000|269=1|270=300000000|271=300000000|269=1|270=400000000|271=400000000|269=1|270=500000000|271=500000000|20002=1|10=102
```

{% endcode %}

</details>

## **Market Data - Reject \<Y>**

The **Market Data Request Reject\<Y>** is used when FineryMarkets cannot honor the **Market Data Request\<V>** , due to business or technical reasons.

<table><thead><tr><th width="150" align="center">Tag</th><th width="200" align="center">Name</th><th width="150" align="center">Required</th><th align="center">Example</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">262</td><td align="center">MDReqID</td><td align="center">Y</td><td align="center">1</td><td align="center">Contains MDReqId&#x3C;262> from corresponding Market Data Request</td></tr><tr><td align="center">281</td><td align="center">MDReqRejReason</td><td align="center">N</td><td align="center">0</td><td align="center">Rejection reason code(see below)</td></tr><tr><td align="center">58</td><td align="center">Text</td><td align="center">N</td><td align="center">25</td><td align="center">Contains FM error code if MDReqRejReason&#x3C;281> == F</td></tr></tbody></table>

| Rejection reason code |                    Description                   |
| :-------------------: | :----------------------------------------------: |
|           0           |            Unknown symbol(instrument)            |
|           3           |             Insufficient Permissions             |
|           4           |     Unsupported SubscriptionRequestType <263>    |
|           F           | Finery Markets error, see code in Text<58> field |
|           A           | Finery Markets error, see code in Text<58> field |
