For the complete documentation index, see llms.txt. This page is also available as Markdown.

Instruments Metadata API

Tick sizes, contract multipliers, base/quote currencies and expiration dates

Use the Instruments Metadata API to discover exchange-native symbol IDs and instrument details for replay, streaming, and CSV dataset workflows. It is most useful when you know the market shape you need, such as active BTC/USDT linear perpetuals or Deribit BTC options available during a historical replay window, but do not want to hardcode every exchange's symbol format.

Instrument fields such as symbol IDs, trading status, currencies, tick sizes, listing time, expiry and underlying asset class are sourced from exchange metadata APIs and normalized by Tardis where needed. availableSince, availableTo and datasetId are Tardis-side availability fields: when a symbol has appeared in exported metadata they reflect exported symbol state, while newly discovered active instruments can appear before replay or CSV dataset availability has caught up.

Most Instruments Metadata API requests require an active pro or business subscription. BitMEX metadata is available without an API key for quick testing.

Authorization

Provide the Authorization header with your API key:

Authorization: Bearer YOUR_API_KEY

Get one instrument

Returns one instrument for the provided exchange and symbol.

Use the id returned by the list endpoint as the symbol path segment. URL-encode the symbol when constructing URLs manually, especially for symbols that contain /, : or other reserved characters. The lookup is case-insensitive for the canonical symbol ID, while the response returns the exchange API symbol casing.

Endpoint URL

https://api.tardis.dev/v1/instruments/:exchange/:symbol_id

Example URLs

Response Format

changes is complete only for contractMultiplier updates that we track from exchange announcements. Other changed fields are included on a best-effort basis and may not cover every historical change.

underlyingType is returned for active/current instruments that have an exchange-sourced underlying asset class. Crypto-native instruments default to native; exchange-sourced non-native classifications such as equity, commodity, fx, index, fixed_income, and pre_market are returned when available. Older historical or delisted instruments may not have underlyingType. Options omit underlyingType to keep large options metadata responses compact. Prediction instruments omit underlyingType.

minNotional is returned only when the exchange exposes a minimum order value or notional separately from minimum order quantity.

changes field semantics:

  • The changes array is sorted chronologically by until (ascending). Each entry records field values that were valid before the until date — i.e., the values changed at until.

  • Only contractMultiplier changes are guaranteed to be accurate and complete (monitored from exchange announcements). Other field changes, including priceIncrement, amountIncrement, underlyingType and expiry, are tracked on a best-effort basis.

  • Changes are filtered to the instrument's availableSinceavailableTo range.

Lifecycle field semantics:

  • active — reflects the exchange-reported current trading status. It does not guarantee that Tardis already has replay data, CSV datasets, or non-empty data for every channel and date.

  • availableSince — the Tardis metadata availability day, not necessarily the exact exchange listing time. When the symbol has appeared in exported metadata, this reflects the first exported UTC day we know for the symbol. For newly discovered instruments that have not appeared in exported metadata yet, it can be metadata-only/provisional. Use listing for the exchange listing timestamp when available.

  • datasetId — the CSV dataset symbol ID. It is omitted until the symbol appears in exported dataset metadata. Use its presence, or /exchanges/:exchange datasets.symbols[], to identify symbols for direct CSV downloads. It does not guarantee that every data type or date has a non-empty CSV file.

  • availableTo — the UTC boundary where the instrument stops being available in Tardis metadata or exported symbol state, such as after expiry or delisting. It is absent for instruments that are still available and may lag behind the actual exchange delisting.

  • expiry — current exchange-provided contract expiry for futures and options. It is not the same as availableTo; when a changed value was observed, the previous value may be available in changes[].expiry.

  • Some exchanges reuse symbol IDs or maintain alias/legacy symbols alongside active ones. Both may appear in metadata results — use active to distinguish currently tradable instruments.

Sample Response

List and filter instruments

Returns instruments for one exchange, optionally narrowed by a URL-encoded JSON filter query parameter.

Use this endpoint to find symbols for replay, streaming, and historical availability checks. Broad unfiltered responses can be large for options-heavy exchanges, so prefer filters when you know the market you need.

Endpoint URL

https://api.tardis.dev/v1/instruments/:exchange?filter={filter_payload}

Example URLs

Optional Filter Object

Provide filter as a JSON object. When used in a query string, it must be URL-encoded.

Availability filters:

  • availableSince alone returns instruments whose Tardis availability reaches this UTC day or any later day.

  • availableTo alone returns instruments available on that UTC day.

  • availableSince and availableTo together return instruments whose Tardis availability overlaps the requested UTC-day interval. Use this for historical replay windows. The interval end is exclusive.

  • The returned availableTo field is still the instrument's collection end date. It is not a simple "ended before" filter.

  • When you need confirmed raw replay symbols or CSV dataset symbols, check Exchange details: use availableSymbols for raw replay and datasets.symbols for CSV downloads.

Filter Limits

  • Each array filter accepts up to 50 values.

  • String filter values must be between 1 and 150 characters.

  • type, contractType, and underlyingType must use the allowed enum values documented above.

  • The full request URL must be 12000 characters or shorter.

Sample Request in JavaScript

Response Format

Array of instruments objects as described for single instrument endpoint

Client helpers for symbol discovery

Client helpers find exchange-specific instrument symbol IDs from normalized market criteria, so you do not have to hardcode each exchange's symbol format. They use the Instruments Metadata API to return the correct id for each requested exchange, ready to pass to replay, streaming, or raw data feeds.

Returned id symbols are exchange-provided IDs and are not normalized by the clients. Returned datasetId symbols are CSV dataset IDs for instruments whose symbols appear in exported dataset metadata; official clients URL-encode them when downloading datasets. If you construct dataset URLs manually, URL-encode the symbol path segment.

Find active BTC/USDT linear perpetuals across exchanges with different native symbol formats.

Find active Tesla equity instruments by filtering on underlyingType.

Use the datasetId selector only when you need symbols for direct CSV dataset file downloads. Instruments without datasetId are omitted from selector results.

Find active BTC/USDT linear perpetuals across exchanges with different native symbol formats.

Find active Tesla equity instruments by filtering on underlyingType.

Use selector="datasetId" only when you need symbols for direct CSV dataset file downloads. Instruments without datasetId are omitted from selector results.

Last updated

Was this helpful?