# 深度频道

### 描述

获取深度数据频道<br/>`books`,`books5`,`books15`默认推送频率：**200ms**<br/>`books1`默认推送频率: **10ms**

- `books` 对应全量深度数据，首次推送全量数据：`snapshot`，后续推送增量变化数据：`update`。
- `books1` 对应1档位深度数据，每次推送：`snapshot`。
- `books5` 对应5档位深度数据，每次推送：`snapshot`。
- `books15` 对应15档位深度数据，每次推送：`snapshot`。

**seq说明**
- update增量消息的seq在除币对维护的情况是递增的

<div className="api-br-5"></div>

<div className="api-aligning">

```json title="请求示例"
{
    "op": "subscribe",
    "args": [
        {
            "instType": "SPOT",
            "channel": "books5",
            "instId": "BTCUSDT"
        }
    ]
}
```

### 请求参数

| 参数名 | 参数类型 | 是否必须 | 描述 | 
| :---- | :---- | :---- | :---- |
| op | String | 是 | 操作，subscribe unsubscribe |
| args | List&lt;Object&gt; | 是 | 请求订阅的频道列表 |
| &gt; instType | String | 是 | 产品线类型 |
| &gt; channel | String | 是 | 频道名: `books/books1/books5/books15`   |
| &gt; instId | String | 是 | 产品id 例如：ETHUSDT |

</div>

<div className="api-br-10"></div>

<div className="api-aligning">

```json title="订阅返回示例"
{
    "event": "subscribe",
    "arg": {
        "instType": "SPOT",
        "channel": "books5",
        "instId": "BTCUSDT"
    }
}
```

### 返回参数

| 返回字段 | 参数类型 | 字段说明 | 
| :---- | :---- | :---- |
| event | String | 事件，subscribe unsubscribe error |
| arg | Object | 订阅的频道 |
| &gt; instType | String | 产品类型 |
| &gt; channel | String | 频道名: `books/books1/books5/books15` |
| &gt; instId | String | 是<br/>产品id 例如：ETHUSDT |
| code | String | 错误码，错误时才会返回 |
| msg | String | 错误消息 |

</div>

<div className="api-br-10"></div>

<div className="api-aligning">

```json title="推送返回示例"
{
    "action": "snapshot",
    "arg": {
        "instType": "SPOT",
        "channel": "books5",
        "instId": "BTCUSDT"
    },
    "data": [
        {
            "asks": [
                [
                    "26274.9",
                    "0.0009"
                ],
                [
                    "26275.0",
                    "0.0500"
                ]
            ],
            "bids": [
                [
                    "26274.8",
                    "0.0009"
                ],
                [
                    "26274.7",
                    "0.0027"
                ]
            ],
            "seq": 123,
            "ts": "1695710946294"
        }
    ],
    "ts": 1695710946294
}
```

### 推送数据参数

| 返回字段          | 参数类型               | 字段说明                                               | 
|:--------------|:-------------------|:---------------------------------------------------|
| arg           | Object             | 订阅成功的频道                                            |
| &gt; instType | String             | 产品类型                                               |
| &gt; channel  | String             | 频道名: `books/books1/books5/books15`                 |
| &gt; instId   | String             | 产品id 例如：ETHUSDT                                    |
| action        | String             | 推送数据动作<br/>`snapshot`: 全量数据推送<br/>`update`: 增量数据推送 |
| data          | List&lt;Object&gt; | 订阅的数据                                              |
| &gt; instId   | String             | 产品id 例如：ETHUSDT                                    |
| &gt; asks     | List&lt;String&gt; | 卖方深度                                               |
| &gt; bids     | List&lt;String&gt; | 买方深度                                               |
| &gt; ts       | String             | 撮合引擎时间戳，Unix时间戳的毫秒数格式，如 1597026383085              |
| &gt; seq      | Long               | 序列号 <br/> 订单簿更新时递增，可以用来判断是否乱序                      |

</div>
