# Overview

{% hint style="info" %}
Historical data details describes data collection specifics for each supported exchange and what's available via Tardis.dev [HTTP API](https://docs.tardis.dev/api/http-api-reference). If you'd like to work with [normalized market data](https://docs.tardis.dev/faq/data#what-is-a-difference-between-exchange-native-and-normalized-data-format) see [official libraries](https://docs.tardis.dev/api/quickstart) and [downloadable CSV files](https://docs.tardis.dev/downloadable-csv-files/overview).
{% endhint %}

You'll find here per-exchange details about:

* historical data availability date ranges — since when the historical data has been collected and is available
* captured real-time market data channels also described as streams, subscription topics, tables etc in exchanges' docs — available historical raw market data is being sourced from WebSocket real-time APIs provided by the exchanges and can be filtered by channels, e.g.: to get historical trades for BitMEX, channel `trade` needs to be provided alongside requested instruments symbols (via [HTTP API](https://docs.tardis.dev/api/http-api-reference#data-feeds-exchange) or [client libs](https://docs.tardis.dev/api/quickstart) function args).
* symbols of recorded instruments/currency pairs
* incidents - describing periods where due to internal errors data has been missing for given exchange

Some exchanges encode requested symbol in channel name, e.g.: Deribit `trades.BTC-PERPETUAL.100ms` channel. This is not the case with our API as we always consider channel name and symbol to be separate inputs. In case of Deribit example channel name would be `trades` and symbol `BTC-PERPETUAL`. If channel provides option of frequency of updates (e.g.: 100ms vs raw tick by tick) always higher frequency one is being chosen and recorded.

{% hint style="info" %}
[What is the channel field used in the HTTP API and client libs replay functions?](https://docs.tardis.dev/faq/data#what-is-the-channel-field-used-in-the-http-api-and-client-libs-replay-functions)
{% endhint %}

## Market data collection overview

* All market data collection is being performed on one of the highly available [Google Cloud Platform Kubernetes Clusters](https://cloud.google.com/kubernetes-engine/) - London, UK (europe-west2 region) or Tokyo, Japan (asia-northeast1 region) - information which data center location is used for particular exchange is described on exchange historical data details page.
* When exchange provides choice of real-time data frequency for specific data types (e.g. order book data ) always most granular, non aggregated data feed is being collected.
* Choice if single or multiple WebSocket connections are being used to record full real-time data feed is made on case by case basis - we take into account exchange API limits and latency which may be higher or lower if single connection is being used - detailed information which strategy is used for particular exchange is described on exchange historical data details page.
* WebSocket connection is dynamically re-subscribed (or restarted for some exchanges) at 00:00 UTC every day in order to receive [initial order book snapshots](#collected-order-book-data-details).
* Each received message is timestamped with 100ns precision using [synchronized clock](https://developers.google.com/time) at arrival time and stored in ISO 8601 format.
* Messages provided by exchanges' WebSocket feeds are being stored without any modifications.
* Checks for new instruments available on a given exchange are performed every minute.
* Market data collection services are being constantly monitored both manually and via automated tools (monitoring, alert notifications) and have built-in self-healing capabilities. We also constantly monitor for upcoming exchanges' API changes and adapt to those beforehand.
* There are multiple built-in checks that detect whether a connection to an exchange is healthy during the data collection process, such as:
  * validating subscription responses - if an exchange does not confirm subscriptions within 20 seconds, the connection is restarted
  * [Heartbeat pings](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#Pings_and_Pongs_The_Heartbeat_of_WebSockets)
  * order book sequence number validation for exchanges that provide those
  * validating JSON format as in some unusual circumstances exchanges return data that is invalid JSON
  * stale connection detection - if there are no responses received within a certain period (adjusted per exchange), it's most likely a stale connection that is automatically restarted
  * detection of an unusually low message count from an exchange in a given time period, which likely means the connection is not healthy, e.g. receiving only 'pings' without data messages
  * and many more
* Any incident that is caused by us (bugs, network errors etc.) is being logged and available [via API](https://docs.tardis.dev/api/http-api-reference#exchanges-exchange).
* New market data delay is 6 minutes in relation to real-time (`T - 6min`).

## Collected order book data details

Historical market data available via [HTTP API](https://docs.tardis.dev/api/http-api-reference#data-feeds-exchange) provides order book snapshots at the beginning of each day (00:00 UTC) and every time a WebSocket connection has been closed while recording real-time data feeds (the connection is restarted and a new snapshot is provided via a fresh connection). This means that to be sure to receive initial order book snapshots, one must replay historical data from 00:00 UTC of that day. It also means there is a tiny **gap in historical data** (around `300-3000ms`, depending on the exchange) during re-subscription to real-time WebSocket feeds (every 24 hours) to receive order book snapshots.

Some exchanges do not provide initial order book snapshots when subscribing to WebSocket real-time feeds (like Binance, Bitstamp or Coinbase Exchange full order book), hence for those there is a 'generated' snapshot available instead (based on REST API call) - details are specific for each exchange and are described in per-exchange historical details pages.

## Per-exchange historical data details

{% hint style="info" %}
Click any exchange below to see its historical data details - available instruments, captured [real-time channels](https://docs.tardis.dev/faq/data#what-is-the-channel-field-used-in-the-http-api-and-client-libs-replay-functions), API access details and market data collection specifics.
{% endhint %}

* [Binance USDS-M Futures](https://docs.tardis.dev/historical-data-details/binance-futures)
* [Binance COIN Futures](https://docs.tardis.dev/historical-data-details/binance-delivery)
* [Binance European Options](https://docs.tardis.dev/historical-data-details/binance-european-options)
* [Binance Spot](https://docs.tardis.dev/historical-data-details/binance)
* [Binance US](https://docs.tardis.dev/historical-data-details/binance-us)
* [OKX Futures](https://docs.tardis.dev/historical-data-details/okex-futures)
* [OKX Swap](https://docs.tardis.dev/historical-data-details/okex-swap)
* [OKX Options](https://docs.tardis.dev/historical-data-details/okex-options)
* [OKX Spot](https://docs.tardis.dev/historical-data-details/okex)
* [OKX Nitro Spreads](https://docs.tardis.dev/historical-data-details/okex-spreads)
* [Bybit Derivatives](https://docs.tardis.dev/historical-data-details/bybit)
* [Bybit Spot](https://docs.tardis.dev/historical-data-details/bybit-spot)
* [Bybit Options](https://docs.tardis.dev/historical-data-details/bybit-options)
* [BitMEX](https://docs.tardis.dev/historical-data-details/bitmex)
* [Deribit](https://docs.tardis.dev/historical-data-details/deribit)
* [Hyperliquid](https://docs.tardis.dev/historical-data-details/hyperliquid)
* [HTX Coin-M Futures](https://docs.tardis.dev/historical-data-details/huobi-dm)
* [HTX Coin-M Perpetual](https://docs.tardis.dev/historical-data-details/huobi-dm-swap)
* [HTX USDT-M Contracts](https://docs.tardis.dev/historical-data-details/huobi-dm-linear-swap)
* [HTX Spot](https://docs.tardis.dev/historical-data-details/huobi)
* [Coinbase Exchange](https://docs.tardis.dev/historical-data-details/coinbase)
* [Coinbase International](https://docs.tardis.dev/historical-data-details/coinbase-international)
* [Kraken Futures](https://docs.tardis.dev/historical-data-details/cryptofacilities)
* [Kraken](https://docs.tardis.dev/historical-data-details/kraken)
* [Bitfinex Derivatives](https://docs.tardis.dev/historical-data-details/bitfinex-derivatives)
* [Bitfinex](https://docs.tardis.dev/historical-data-details/bitfinex)
* [dYdX v4](https://docs.tardis.dev/historical-data-details/dydx-v4)
* [Gate.io Futures](https://docs.tardis.dev/historical-data-details/gate-io-futures)
* [Gate.io](https://docs.tardis.dev/historical-data-details/gate-io)
* [Bitget Futures](https://docs.tardis.dev/historical-data-details/bitget-futures)
* [Bitget Spot](https://docs.tardis.dev/historical-data-details/bitget)
* [KuCoin Futures](https://docs.tardis.dev/historical-data-details/kucoin-futures)
* [KuCoin Spot](https://docs.tardis.dev/historical-data-details/kucoin)
* [Crypto.com](https://docs.tardis.dev/historical-data-details/crypto-com)
* [Bitstamp](https://docs.tardis.dev/historical-data-details/bitstamp)
* [Gemini](https://docs.tardis.dev/historical-data-details/gemini)
* [WOO X](https://docs.tardis.dev/historical-data-details/woo-x)
* [Upbit](https://docs.tardis.dev/historical-data-details/upbit)
* [Phemex](https://docs.tardis.dev/historical-data-details/phemex)
* [Delta Exchange](https://docs.tardis.dev/historical-data-details/delta)
* [AscendEX (BitMax)](https://docs.tardis.dev/historical-data-details/ascendex)
* [Blockchain.com](https://docs.tardis.dev/historical-data-details/blockchain-com)
* [Bitnomial](https://docs.tardis.dev/historical-data-details/bitnomial)
* [bitFlyer](https://docs.tardis.dev/historical-data-details/bitflyer)
* [HitBTC](https://docs.tardis.dev/historical-data-details/hitbtc)
* [Poloniex](https://docs.tardis.dev/historical-data-details/poloniex)

### Delisted exchanges

* [FTX](https://docs.tardis.dev/historical-data-details/ftx)
* [FTX US](https://docs.tardis.dev/historical-data-details/ftx-us)
* [OKCoin](https://docs.tardis.dev/historical-data-details/okcoin)
* [CoinFLEX](https://docs.tardis.dev/historical-data-details/coinflex)
* [Binance Jersey](https://docs.tardis.dev/historical-data-details/binance-jersey)
* [Binance DEX](https://docs.tardis.dev/historical-data-details/binance-dex)
* [HTX Options](https://docs.tardis.dev/historical-data-details/huobi-dm-options)
* [dYdX](https://docs.tardis.dev/historical-data-details/dydx)
* [Serum DEX](https://docs.tardis.dev/historical-data-details/serum)
* [Mango Markets DEX](https://docs.tardis.dev/historical-data-details/mango)
* [Star Atlas DEX](https://docs.tardis.dev/historical-data-details/star-atlas)
