Market Data
Public

Retrieves expiration labels for listed futures and options. Values are instrument-style date strings such as 21SEP24, or PERPETUAL for perpetuals — not Unix timestamps. Daily 08:00 UTC expirations are date-only; other expiration times include hour and minute.

Spots and combos are not included, even when kind is omitted or "any".

currency is a settlement currency, "any", or "grouped":

  • "any" — a flat map keyed by future / option (dates merged across currencies). This is the shape in the example.
  • a named currency — { "<currency>": { "future": [...], "option": [...] } } with a lowercase currency key (for example btc).
  • "grouped" — the same nested shape for every tradable settlement currency.

If currency is omitted, currency_pair is used (default: all pairs). When currency is set, currency_pair is ignored. kind defaults to "any" (future and option); "spot", "future_combo", and "option_combo" are not useful filters here.

📖 Related Article: Using the currency Parameter

Try in API console

get/public/get_expirations

Request

  • Base URL
    https://test.deribit.com/api/v2
  • URL
    https://test.deribit.com/api/v2/public/get_expirations
  • Auth
    none declared

Query parameters

currency'BTC' | 'ETH' | 'USDC' | 'USDT' | 'any' | 'grouped'

Currency name or "any" if don't care or "grouped" if grouped by currencies

The currency symbol or "any" for all or "grouped" for all grouped by currency. Optional; if omitted, currency_pair is used (default: all pairs).

📖 Related Article: Using the currency Parameter

kind'future' | 'option' | 'any'

Instrument kind: "future", "option" or "any" for all

Instrument kind, "future" or "option" or "any" for both. If omitted, "any" is used. Spots and combos are not returned.

currency_pair'btc_usd' | 'eth_usd' | 'ada_usdc' | 'algo_usdc' | 'avax_usdc' | 'bch_usdc' | 'bnb_usdc' | 'btc_usdc' | 'btcdvol_usdc' | 'buidl_usdc' | 'doge_usdc' | 'dot_usdc' | 'eurr_usdc' | 'eth_usdc' | 'ethdvol_usdc' | 'hype_usdc' | 'link_usdc' | 'ltc_usdc' | 'near_usdc' | 'paxg_usdc' | 'shib_usdc' | 'sol_usdc' | 'steth_usdc' | 'ton_usdc' | 'trump_usdc' | 'trx_usdc' | 'uni_usdc' | 'usde_usdc' | 'usyc_usdc' | 'xrp_usdc' | 'btc_usdt' | 'eth_usdt' | 'eurr_usdt' | 'sol_usdt' | 'steth_usdt' | 'usdc_usdt' | 'usde_usdt' | 'btc_eurr' | 'btc_usde' | 'btc_usyc' | 'eth_btc' | 'eth_eurr' | 'eth_usde' | 'eth_usyc' | 'steth_eth' | 'paxg_btc' | 'drbfix-btc_usdc' | 'drbfix-eth_usdc'

Index identifier, matches (base) cryptocurrency with quote currency

The currency pair symbol

Response

Success response

jsonrpc'2.0' required

The JSON-RPC version (2.0)

idinteger

The id that was sent in the request

resultExpirations required

Expiration labels for futures and options. Not Unix timestamps. Each value is a string such as 21SEP24 or PERPETUAL.

Shape depends on currency:

  • "any": keys are future and/or option; values are lists of labels (merged across currencies).
  • a named settlement currency or "grouped": keys are lowercase currency symbols (or a pair symbol when currency_pair was used); values are maps of kind → list of labels.

Changes

    • breaking

      the response's property type changed from array to object for status

    • info

      the query request parameter currency became optional

    • info

      the query request parameter kind became optional