# Product updates

{% updates format="full" %}
{% update date="2026-05-05" tags="data-coverage" %}

## Bullish market data

Historical Bullish market data is now available, including order book updates, trades, top-of-book updates, tickers, index prices, and perpetual and options data.

Bullish data normalization is available in Node.js client `tardis-dev` `16.4.0` and Tardis Machine `16.4.1`.

[See Bullish coverage](/historical-data-details/bullish.md).
{% endupdate %}

{% update date="2026-05-05" tags="api" %}

## Optimized filtered data feed requests

Filtered raw HTTP data feed requests can now use the optional `sliceSize` parameter to fetch up to 10 consecutive minutes per request. Use it to reduce the number of API requests when replaying historical data through the raw HTTP API. Omit `sliceSize` to keep the existing one-minute behavior.

Responses include `x-slice-size` with the slice size used and `x-suggested-slice-size` as a recommendation for future requests with the same filter applied. The recommendation balances fewer requests against response size.

The Node.js client `tardis-dev` `16.3.1`, Python client `tardis-dev` `4.2.0`, and Tardis Machine `16.2.1` use this automatically for filtered historical replay, so library users get fewer API requests without changing replay code.

* [HTTP API Reference](/api/http-api-reference.md#data-feeds-exchange)
* [Node.js replay docs](/node-client/replaying-historical-data.md)
* [Python replay docs](/python-client/replaying-historical-data.md)
  {% endupdate %}

{% update date="2026-04-28" tags="data-coverage" %}

## Bitget V3 market data

Bitget Spot and Bitget Futures raw historical feeds now use [Bitget WebSocket API V3](https://www.bitget.com/api-doc/uta/websocket/public/Order-Book-Channel). Order book collection now uses the `books` full-depth channel.

Bitget Futures also includes the V3 `liquidation` channel. Replaying or normalizing Bitget data recorded from 2026-04-28 onward requires Node.js client `tardis-dev` `16.2.1` or newer, or Tardis Machine `16.1.2` or newer, because older clients do not support the new V3 raw message formats.

* [Bitget Spot coverage](/historical-data-details/bitget.md)
* [Bitget Futures coverage](/historical-data-details/bitget-futures.md)
  {% endupdate %}

{% update date="2026-04-24" tags="clients" %}

## Find instrument symbols

You can now find exchange-specific instrument symbols from normalized market filters across multiple exchanges. Use this when you know the market you want, such as active BTC/USDT linear perpetuals, but do not want to hardcode each exchange's symbol format.

The new Node.js `findInstrumentSymbols()` helper and Python `find_instrument_symbols()` helpers use Instruments Metadata API filters and return symbols grouped by exchange.

Available in Node.js client `tardis-dev` `16.2.0` and Python client `tardis-dev` `4.1.0`.

* [Node.js client: Find Instrument Symbols](/node-client/quickstart.md#findinstrumentsymbols-exchanges-filter-selector)
* [Python client: Find Instrument Symbols](https://docs.tardis.dev/pages/6bEFe9Ft9ydP9Y6G2duh#find_instrument_symbols-...-and-find_instrument_symbols_async)
* [Instruments Metadata API](/api/instruments-metadata-api.md#client-helpers-for-symbol-discovery)
  {% endupdate %}

{% update date="2026-04-24" tags="api" %}

## Instruments metadata min notional and underlying type

Instruments metadata now includes `minNotional` when an exchange exposes a minimum order value or notional separately from minimum order quantity.

It also includes `underlyingType` for non-option instruments, using `native` for crypto-native instruments and exchange-sourced classifications such as `equity`, `commodity`, `fx`, `index`, `fixed_income`, or `pre_market` when available. The instruments filter endpoint accepts `underlyingType`, so you can query categories such as commodity perpetuals on supported exchanges.

[See Instruments Metadata API](/api/instruments-metadata-api.md).
{% endupdate %}

{% update date="2026-04-23" tags="data-coverage" %}

## Lighter market data

Historical Lighter market data is now available, including order book updates, trades, tickers, and perpetual and spot market stats.

Data normalization for Lighter is available in Node.js client `tardis-dev` `16.1.1` and Tardis Machine `16.1.0`.

[See Lighter coverage](/historical-data-details/lighter.md).
{% endupdate %}

{% update date="2026-04-23" tags="data-coverage" %}

## Binance index constituents

You can now replay historical Binance USDS-M Futures index price constituents through the generated `indexConstituents` channel.

Binance's REST endpoint exposes the current index constituents. We record those payloads into the minute-by-minute historical feed, so you can inspect how each index's constituent exchanges, symbols, prices and weights changed over time.

[See Binance USDS-M Futures coverage](/historical-data-details/binance-futures.md).
{% endupdate %}

{% update date="2026-04-11" tags="data-coverage" %}

## Binance premium index data

You can now replay Binance USDS-M Futures premium index snapshots through the generated `premiumIndex` channel.

This adds access to Binance's REST premium index payloads in the same minute-by-minute historical feed format as our other channels, including `interestRate`, which is not available in the WebSocket `markPrice` stream.

[See Binance USDS-M Futures coverage](/historical-data-details/binance-futures.md).
{% endupdate %}

{% update date="2026-04-11" tags="clients" %}

## zstd historical replay

Historical replay in the Node.js and Python clients now prefers `zstd` for data feed responses and local cache files.

The result is smaller replay payloads by default, while keeping `gzip` available when you need gzip-compressed slices.
{% endupdate %}

{% update date="2026-03-27" tags="clients" %}

## Unified Python client v3

The Python client is now a unified `tardis-dev` client for historical replay, CSV dataset downloads, cache management and exchange metadata.

It exposes a simpler top-level API for the most common workflows:

* `replay()` for historical market data replay
* `download_datasets()` for CSV dataset downloads
* `clear_cache()` for local cache cleanup
* `get_exchange_details()` for exchange metadata

`replay()` also accepts Python `datetime` values for `from_date` and `to_date`. Naive datetimes are treated as UTC.

[Python client quickstart](/python-client/quickstart.md) · [Migration notice](/python-client/migration-notice.md)
{% endupdate %}

{% update date="2026-03-27" tags="clients" %}

## ESM Node.js client

The Node.js client is now ESM-only, with simplified package exports and examples that use native ES module syntax.

[Node.js client quickstart](/node-client/quickstart.md)
{% endupdate %}

{% update date="2026-03-25" tags="clients" %}

## Tardis Machine Docker images

Tardis Machine Docker images are now published for both x64 and ARM64 architectures, making local replay and streaming easier to run on Apple Silicon machines, ARM servers and standard x64 environments.

[Tardis Machine quickstart](/tardis-machine/quickstart.md)
{% endupdate %}

{% update date="2026-03-25" tags="clients" %}

## Binance Futures WebSocket endpoints

Our backend services, Tardis Machine, and the Node.js client now handle Binance Futures' split public WebSocket endpoints, keeping real-time streaming aligned with Binance's exchange-side API changes.

This shipped in `tardis-dev` `14.3.0` and `tardis-machine` `14.3.0`.

[See Binance's Important WebSocket Change Notice](https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Important-WebSocket-Change-Notice).
{% endupdate %}

{% update date="2026-03-25" tags="clients" %}

## Gate.io Futures decimal sizes

Tardis Machine and the Node.js client now handle Gate.io Futures decimal-size metadata via `X-Gate-Size-Decimal`, so normalized sizes stay correct for affected contracts.
{% endupdate %}

{% update date="2026-03-17" tags="data-coverage" %}

## Binance funding info

Generated `fundingInfo` channels are now available for Binance USDS-M Futures and Binance COIN Futures.

These channels expose Binance funding cap, floor and interval updates in the historical data feed when Binance publishes adjusted funding information.

[Binance USDS-M Futures](/historical-data-details/binance-futures.md) · [Binance COIN Futures](/historical-data-details/binance-delivery.md)
{% endupdate %}

{% update date="2026-03-17" tags="data-coverage" %}

## Binance insurance balance

The generated `insuranceBalance` channel is now available for Binance USDS-M Futures, with snapshots from Binance's insurance fund balance endpoint.
{% endupdate %}
{% endupdates %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tardis.dev/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
