# HTX Options

HTX Options historical data for **all its instruments** is available since **2021-02-01** until **2021-06-26**.

{% embed url="<https://api.tardis.dev/v1/exchanges/huobi-dm-options>" %}
See HTX Options historical data coverage: available symbols, channels, date ranges and incidents
{% endembed %}

### Downloadable **CSV** files

Historical CSV datasets for the first day of each month are **available to download without API key**. See [downloadable CSV files documentation](https://docs.tardis.dev/downloadable-csv-files/overview).

| data type             | symbol                  | date       |                                                                                                                                  |
| --------------------- | ----------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- |
| incremental\_book\_L2 | BTC-USDT-210326-C-32000 | 2021-03-01 | [Download sample](https://datasets.tardis.dev/v1/huobi-dm-options/incremental_book_L2/2021/03/01/BTC-USDT-210326-C-32000.csv.gz) |
| trades                | OPTIONS                 | 2021-03-01 | [Download sample](https://datasets.tardis.dev/v1/huobi-dm-options/trades/2021/03/01/OPTIONS.csv.gz)                              |
| options\_chain        | OPTIONS                 | 2021-03-01 | [Download sample](https://datasets.tardis.dev/v1/huobi-dm-options/options_chain/2021/03/01/OPTIONS.csv.gz)                       |

### API Access and data format

Historical data format is the same as provided by real-time HTX Options WebSocket API with addition of local timestamps. If you'd like to work with **normalized data format** instead (same format for each exchange) see [downloadable CSV files](https://docs.tardis.dev/downloadable-csv-files/overview) or official [client libs](https://docs.tardis.dev/api/quickstart) that can perform data normalization client-side.

{% tabs %}
{% tab title="Python" %}

```python
# pip install tardis-dev
import asyncio
from tardis_dev import Channel, replay

async def main():
    async for local_timestamp, message in replay(
        exchange="huobi-dm-options",
        from_date="2021-03-01",
        to_date="2021-03-02",
        filters=[Channel(name="depth", symbols=["BTC-USDT-210326-C-32000"])],
        api_key="YOUR_API_KEY",
    ):
        # messages as provided by HTX Options real-time stream
        print(message)

asyncio.run(main())
```

See [Python client docs](https://docs.tardis.dev/python-client/quickstart).
{% endtab %}

{% tab title="Node.js" %}

```javascript
// npm install tardis-dev
import { replay } from 'tardis-dev';

const messages = replay({
  exchange: 'huobi-dm-options',
  from: '2021-03-01',
  to: '2021-03-02',
  filters: [{ channel: 'depth', symbols: ['BTC-USDT-210326-C-32000'] }],
  apiKey: 'YOUR_API_KEY'
});

// messages as provided by HTX Options real-time stream
for await (const { localTimestamp, message } of messages) {
  console.log(localTimestamp, message);
}
```

See [Node.js client docs](https://docs.tardis.dev/node-client/quickstart).
{% endtab %}

{% tab title="cURL & HTTP API" %}

```bash
curl --compressed -g 'https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01&filters=[{"channel":"depth","symbols":["BTC-USDT-210326-C-32000"]}]&offset=0'
```

{% embed url="<https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01&filters=[{%22channel%22:%22depth%22,%22symbols%22:[%22BTC-USDT-210326-C-32000%22]}]&offset=0>" %}
Example API response for HTX Options historical market data request
{% endembed %}

See [HTTP API docs](https://docs.tardis.dev/api/http-api-reference).
{% endtab %}

{% tab title="cURL & tardis-machine" %}

```bash
curl -g 'localhost:8000/replay?options={"exchange":"huobi-dm-options","filters":[{"channel":"depth","symbols":["BTC-USDT-210326-C-32000"]}],"from":"2021-03-01","to":"2021-03-02"}'
```

[Tardis-machine](https://docs.tardis.dev/tardis-machine/quickstart) is a locally runnable server that exposes API allowing efficiently requesting historical market data for whole time periods in contrast to [HTTP API](https://docs.tardis.dev/api/http-api-reference) that provides data only in minute by minute slices.

See [tardis-machine](https://docs.tardis.dev/tardis-machine/quickstart) docs.
{% endtab %}
{% endtabs %}

### Captured real-time channels

{% embed url="<https://web.archive.org/web/20210625000000/https://huobiapi.github.io/docs/option/v1/en/>" %}
See HTX Options WebSocket API docs providing documentation for each captured channel's format
{% endembed %}

{% hint style="info" %}
Click any channel below to see [HTTP API](https://docs.tardis.dev/api/http-api-reference#data-feeds-exchange) response with historical data recorded for it.
{% endhint %}

* [trade](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-04-01\&filters=\[{%22channel%22:%22trade%22}]) Trade executions stream
* [depth](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22depth%22}]) Order book snapshots and incremental updates stream (30ms frequency). Order book integrity is validated using sequence numbers (version field) -- on missed message the WebSocket connection is restarted. Uses `depth.size_150.high_freq` which natively provides incremental updates with `"event":"update"|"snapshot"` field.
* [open\_interest](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22open_interest%22}]) -- generated channel Generated open interest snapshots from REST endpoint every 4-6 seconds per instrument
* [option\_market\_index](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22option_market_index%22}]) -- generated channel Generated option market index snapshots from REST endpoint
* [option\_index](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22option_index%22}]) -- generated channel Generated option underlying index snapshots from REST endpoint
* [detail](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22detail%22}]) 24h option statistics stream (500ms frequency)
* [bbo](https://api.tardis.dev/v1/data-feeds/huobi-dm-options?from=2021-03-01\&filters=\[{%22channel%22:%22bbo%22}]) Best bid and ask quote updates stream

### Market data collection details

[Market data collection infrastructure](https://docs.tardis.dev/faq/general#what-is-your-infrastructure-setup) for HTX Options was located in GCP asia-northeast1 region (Tokyo, Japan).

Real-time market data was captured via **multiple WebSocket connections** to `wss://api.hbdm.com/option-ws` (proxied via Cloudflare).

{% hint style="info" %}
HTX Options servers were located in AWS ap-northeast-1 region (Tokyo, Japan).
{% endhint %}
