# BitMEX

BitMEX historical data for **all its instruments** is available since **2019-03-30**.

{% embed url="<https://api.tardis.dev/v1/exchanges/bitmex>" %}
See BitMEX 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 | XBTUSD | 2019-07-01 | [Download sample](https://datasets.tardis.dev/v1/bitmex/incremental_book_L2/2019/07/01/XBTUSD.csv.gz) |
| trades                | XBTUSD | 2019-07-01 | [Download sample](https://datasets.tardis.dev/v1/bitmex/trades/2019/07/01/XBTUSD.csv.gz)              |
| derivative\_ticker    | XBTUSD | 2019-07-01 | [Download sample](https://datasets.tardis.dev/v1/bitmex/derivative_ticker/2019/07/01/XBTUSD.csv.gz)   |

### API Access and data format

Historical data format is the same as provided by real-time BitMEX 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="bitmex",
        from_date="2023-03-01",
        to_date="2023-03-02",
        filters=[Channel(name="orderBookL2_25", symbols=["XBTUSD"])],
        api_key="YOUR_API_KEY",
    ):
        # messages as provided by BitMEX 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: 'bitmex',
  from: '2023-03-01',
  to: '2023-03-02',
  filters: [{ channel: 'orderBookL2_25', symbols: ['XBTUSD'] }],
  apiKey: 'YOUR_API_KEY'
});

// messages as provided by BitMEX 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/bitmex?from=2023-03-01&filters=[{"channel":"orderBookL2_25","symbols":["XBTUSD"]}]&offset=0'
```

{% embed url="<https://api.tardis.dev/v1/data-feeds/bitmex?from=2023-03-01&filters=[{%22channel%22:%22orderBookL2_25%22,%22symbols%22:[%22XBTUSD%22]}]&offset=0>" %}
Example API response for BitMEX 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":"bitmex","filters":[{"channel":"orderBookL2_25","symbols":["XBTUSD"]}],"from":"2023-03-01","to":"2023-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://www.bitmex.com/app/wsAPI>" %}
See BitMEX 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/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22trade%22,%22symbols%22:\[%22XBTUSD%22]}]) Public trade executions stream
* [orderBookL2](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22orderBookL2%22,%22symbols%22:\[%22XBTUSD%22]}]\&offset=1) Order book snapshots and deltas by price level
* [quote](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22quote%22}]\&offset=0) Best bid and ask quote updates
* [liquidation](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22liquidation%22}]\&offset=0) Liquidation events stream
* [instrument](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22instrument%22}]) Instrument state snapshots and deltas with bidPrice/askPrice/midPrice on 5s timer. `partial` messages returned via HTTP API may contain data for all BitMEX instruments and require filtering client-side if only selected symbols were requested
* [connected](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22connected%22}]) Connection heartbeat and system status events
* [announcement](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22announcement%22}]) Exchange announcements stream
* [chat](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22chat%22}]) Public chat messages stream
* [publicNotifications](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22publicNotifications%22}]) Public notification messages stream
* [settlement](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22settlement%22}]) Contract settlement events stream
* [funding](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22funding%22}]\&offset=1200) Funding rate updates stream
* [insurance](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22insurance%22}]) Daily insurance fund balance updates
* [orderBookL2\_25](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22orderBookL2_25%22}]) Order book snapshots and deltas with up to 25 levels
* [orderBook10](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22orderBook10%22}]) — available since **2021-02-20** Top 10 level order book snapshots, throttled to 50ms since 2023-09-19
* [quoteBin1m](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22quoteBin1m%22}]\&offset=0) Quote bins at 1 minute interval
* [quoteBin5m](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22quoteBin5m%22}]) Quote bins at 5 minute interval
* [quoteBin1h](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22quoteBin1h%22}]) Quote bins at 1 hour interval
* [quoteBin1d](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22quoteBin1d%22}]) Quote bins at 1 day interval
* [tradeBin1m](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22tradeBin1m%22}]) Trade bins at 1 minute interval
* [tradeBin5m](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22tradeBin5m%22}]) Trade bins at 5 minute interval
* [tradeBin1h](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22tradeBin1h%22}]) Trade bins at 1 hour interval
* [tradeBin1d](https://api.tardis.dev/v1/data-feeds/bitmex?from=2024-01-01\&filters=\[{%22channel%22:%22tradeBin1d%22}]) Trade bins at 1 day interval

### Market data collection details

[Market data collection infrastructure](https://docs.tardis.dev/faq/general#what-is-your-infrastructure-setup) for BitMEX is located in GCP asia-northeast1 region (Tokyo, Japan). Before **2025-08-23** it was located in GCP europe-west2 region (London, UK).

Real-time market data is captured via **single WebSocket connection** to `wss://direct.bitmex.com:443/realtimePublic`.

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