Tardis.dev Documentation
  • Welcome
  • Frequently Asked Questions
    • General
    • Data
    • Billing and Subscriptions
  • Downloadable CSV files
  • Historical Data Details
    • BitMEX
    • Deribit
    • Binance USDT Futures
    • Binance COIN Futures
    • Binance Spot
    • FTX
    • OKX Futures
    • OKX Swap
    • OKX Options
    • OKX Spot
    • Huobi Futures
    • Huobi COIN Swaps
    • Huobi USDT Swaps
    • Huobi Global
    • Bitfinex Derivatives
    • Bitfinex
    • Coinbase Pro
    • Kraken Futures
    • Kraken
    • Bitstamp
    • Gemini
    • Bybit Derivatives
    • Bybit Spot
    • dYdX
    • WOO X
    • Kucoin Spot
    • Blockchain.com
    • Upbit
    • Phemex
    • Delta
    • AscendEX (BitMax)
    • FTX US
    • Binance US
    • Gate.io Futures
    • Gate.io
    • Bitnomial
    • Crypto.com
    • OKCoin
    • bitFlyer
    • HitBTC (high caps)
    • CoinFLEX (2.0)
    • Binance Jersey
    • Binance DEX
    • Poloniex
  • API
    • Getting Started
    • Python Client
    • Node.js Client
    • Tardis Machine Server
    • Instruments Metadata API
    • HTTP API Reference
  • Legal
    • Privacy Policy
    • Terms of Service
  • External Links
    • Public Roadmap
    • Open Source
    • Newsletter
    • Contact Us
    • Get API Key
    • Tardis.dev Home
Powered by GitBook
On this page
  • Downloadable CSV files
  • API Access and data format
  • Captured real-time channels
  • Market data collection details
Export as PDF
  1. Historical Data Details

FTX

FTX historical market data details - available instruments, data coverage and data collection specifics

PreviousBinance SpotNextOKX Futures

Last updated 2 years ago

Delisted exchange.

FTX historical data for all it's instruments is available since 2019-08-01 until 2022-11-13.

Downloadable CSV files

data type

symbol

date

trades

BTC-PERP

2020-01-01

incremental_book_L2

BTC-PERP

2020-01-01

book_snapshot_25

BTC-PERP

2020-01-01

quotes

BTC-PERP

2020-01-01

derivative_ticker

BTC-PERP

2020-06-01

trades

FUTURES

2020-03-01

incremental_book_L2

FUTURES

2020-03-01

liquidations

PERPETUALS

2021-09-01

How to download all FTX datasets for all instruments

# requires Python >=3.6
# pip install tardis-dev

from tardis_dev import datasets, get_exchange_details
import logging

# optionally enable debug logs
# logging.basicConfig(level=logging.DEBUG)

exchange = 'ftx'
exchange_details = get_exchange_details(exchange)   

# iterate over and download all data for every symbol
for symbol in exchange_details["datasets"]["symbols"]:
    # alternatively specify datatypes explicitly ['trades', 'incremental_book_L2', 'quotes'] etc
    # see available options https://docs.tardis.dev/downloadable-csv-files#data-types
    data_types = symbol["dataTypes"]  
    symbol_id = symbol["id"]
    from_date =  symbol["availableSince"]
    to_date = symbol["availableTo"]

    # skip groupped symbols
    if symbol_id in ['PERPETUALS', 'SPOT', 'FUTURES']:
        continue

    print(f"Downloading {exchange} {data_types} for {symbol_id} from {from_date} to {to_date}")

    # each CSV dataset format is documented at https://docs.tardis.dev/downloadable-csv-files#data-types
    # see https://docs.tardis.dev/downloadable-csv-files#download-via-client-libraries for full options docs
    datasets.download(
        exchange = exchange,
        data_types = data_types,
        from_date =  from_date,
        to_date = to_date,
        symbols = [symbol_id],
        # TODO set your API key here
        api_key = "YOUR_API_KEY",
        # path where CSV data will be downloaded into
        download_dir = "./datasets",
    )
// npm install tardis-dev
// requires node version >=12
const { downloadDatasets, getExchangeDetails } = require('tardis-dev')

;(async () => {
  const exchange = 'ftx'
  const exchangeDetails = await getExchangeDetails(exchange)

  // iterate over and download all data for every symbol
  for (const symbol of exchangeDetails.datasets.symbols) {
    // alternatively specify dataTypes explicitly ['trades', 'incremental_book_L2', 'quotes'] etc
    // see available options https://docs.tardis.dev/downloadable-csv-files#data-types
    const dataTypes = symbol.dataTypes
    const symbolId = symbol.id

    const from = symbol.availableSince
    const to = symbol.availableTo

    // skip groupped symbols
    if (['PERPETUALS', 'SPOT', 'FUTURES'].includes(symbolId)) {
      continue
    }

    console.log(`Downloading ${exchange} ${dataTypes} for ${symbolId} from ${from} to ${to}`)

    // each CSV dataset format is documented at https://docs.tardis.dev/downloadable-csv-files#data-types
    // see https://docs.tardis.dev/downloadable-csv-files#download-via-client-libraries for full options docs
    await downloadDatasets({
      exchange,
      dataTypes,
      from,
      to,
      symbols: [symbolId],
      // TODO: set your API key here
      apiKey: 'YOUR_API_KEY',
      //  path where CSV data will be downloaded into
      downloadDir: './datasets'
    })
  }
})()
curl -o ftx_trades_2019-11-01_BTC-PERP.csv.gz https://datasets.tardis.dev/v1/ftx/trades/2019/11/01/BTC-PERP.csv.gz

API Access and data format

# pip install tardis-client
import asyncio
from tardis_client import TardisClient, Channel
tardis_client = TardisClient(api_key="YOUR_API_KEY")

async def replay():
  # replay method returns Async Generator
  messages = tardis_client.replay(
    exchange="ftx",
    from_date="2020-01-01",
    to_date="2020-01-02",
    filters=[Channel(name="orderbook", symbols=["BTC-PERP"])]
  )

  # messages as provided by FTX real-time stream
  async for local_timestamp, message in messages:
    print(message)


asyncio.run(replay())
// npm install tardis-dev
const { replay } = require('tardis-dev');

async function run() {
  try {
    const messages = replay({
      exchange: 'ftx',
      from: '2020-01-01',
      to: '2020-01-02',
      filters: [{ channel: 'orderbook', symbols: ['BTC-PERP'] }],
      apiKey: 'YOUR_API_KEY'
    });

    // messages as provided by FTX real-time stream
    for await (const { localTimestamp, message } of messages) {
      console.log(localTimestamp, message);
    }
  } catch (e) {
    console.error(e);
  }
}

run();
curl -g 'https://api.tardis.dev/v1/data-feeds/ftx?from=2020-01-01&filters=[{"channel":"orderbook","symbols":["BTC-PERP"]}]&offset=0'
curl -g 'localhost:8000/replay?options={"exchange":"ftx","filters":[{"channel":"orderbook","symbols":["BTC-PERP"]}],"from":"2020-01-01","to":"2020-01-02"}'

Captured real-time channels

Market data collection details

FTX servers are located in AWS ap-northeast-1 region (Tokyo, Japan).

Historical CSV datasets for the first day of each month are available to download without API key. See .

Derivative ticker datasets are available since 2020-05-13 - date since we've started collecting that data via FTX REST API ().

See full with datasets format spec, data samples and more.

that shows all available download options (download path customization, filenames conventions and more).

that shows all available download options (download path customization, filenames conventions and more).

See which allows downloading single file at once.

Historical data format is the same as provided by real-time FTX WebSocket API with addition of local timestamps. If you'd like to work with normalized data format instead (same format for each exchange) see or official that can perform data normalization client-side.

See .

See .

See .

is a locally runnable server that exposes API allowing efficiently requesting historical market data for whole time periods in contrast to that provides data only in minute by minute slices.

See docs.

Click any channel below to see response with historical data recorded for it.

- available since 2020-05-22

- available since 2020-07-21 Asorderbook channel provides data only about the orderbook's best 100 orders on either side, grouped orderbooks channel supplies orderbook data with grouped (collapsed) prices allowing retrieving lower-granularity, higher-depth information about the orderbook. We set grouping param to instruments' priceIncrement value multiplied by 10.

- generated channel, available since 2020-05-13 Since FTX does not offer currently real-time WebSocket instrument info channel with next funding rate, open interest or mark price data, we simulate it by fetching that info from FTX REST API ( and ) every 3-5 seconds for each derivative instrument. Such messages are marked with "channel":"instrument" and "generated":true fields and data field has the same format as REST API responses.

for FTX since 2020-05-14 is located in GCP asia-northeast1 (Tokyo, Japan), before that it was located in GCP europe-west2 region (London, UK). Real-time market data is captured via multiple WebSocket connections.

downloadable CSV files documentation
downloadable CSV files documentation
downloadable CSV files
client libs
Python client docs
Node.js client docs
HTTP API docs
Tardis-machine
HTTP API
tardis-machine
orderbook
trades
markets
orderbookGrouped
instrument
https://docs.ftx.com/#get-future
https://docs.ftx.com/#get-future-stats
instrument channel
Download sample
Download sample
Download sample
Download sample
Download sample
Download sample
Download sample
Download sample
https://api.tardis.dev/v1/exchanges/ftxapi.tardis.dev
See FTX historical data coverage: available symbols, channels, date ranges and incidents
https://api.tardis.dev/v1/data-feeds/ftx?from=2020-01-01&filters=[{%22channel%22:%22orderbook%22,%22symbols%22:[%22BTC-PERP%22]}]&offset=0api.tardis.dev
Example API response for FTX historical market data request
API Documentation
See FTX WebSocket API docs providing documentation for each captured channel's format
Logo
HTTP API
Market data collection infrastructure
See docs
See docs
datasets API reference