Deriv API
Documentation

Active symbols

DataNo Auth

Retrieves a list of all currently active symbols (underlying markets upon which contracts are available for trading).

Quick comparison

AspectLegacy APINew APIAction
Endpointactive_symbolsactive_symbolsNone
Auth RequiredNoNoNone
Request Complexity9 parameters4 parametersRemove obsolete parameters

Breaking changes

1. Response field name changes

Core symbol identification and data fields have been renamed in the response:

  • symbolunderlying_symbol
  • symbol_typeunderlying_symbol_type
  • display_nameunderlying_symbol_name
  • pippip_size

2. Translated display name fields removed

Translated display name fields have been removed from the response:

  • market_display_name (removed)
  • subgroup_display_name (removed)
  • submarket_display_name (removed)

3. Spot price data removed

Real-time spot price fields are no longer included:

  • spot, spot_age, spot_percentage_change, spot_time (removed)

4. Landing company and product type filtering removed

Request parameters for filtering by landing company and product type removed:

  • landing_company, landing_company_short, product_type, loginid (removed)

5. Barrier category filtering removed

The barrier_category request parameter has been removed. No longer possible to filter by: american, asian, euro_atm, euro_non_atm, non_financial, lookback, reset.

6. Additional metadata fields removed

Various metadata fields no longer available:

  • allow_forward_starting, close_only, display_order, exchange_name, delay_amount, intraday_interval_minutes, quoted_currency_symbol (removed)

Request structure

Legacy APIrequest example
{
  "active_symbols": "brief",
  "product_type": "basic",  // ❌ Removed in New
  "landing_company_short": "svg",  // ❌ Removed in New
  "contract_type": ["CALL", "PUT"]
}
New APIrequest example
{
  "active_symbols": "brief",
  "contract_type": ["CALL", "PUT"]
}

Response structure

Legacy APIresponse example
{
  "active_symbols": [
    {
      "allow_forward_starting": 1,  // ❌ Not in New
      "close_only": 0,
      "display_name": "EUR/USD",  // ❌ Not in New
      "display_order": 1,
      "exchange_is_open": 1,
      "is_trading_suspended": 0,
      "market": "forex",
      "market_display_name": "Forex",  // ❌ Not in New
      "pip": 0.0001,
      "spot": 1.0850,  // ❌ Not in New
      "spot_age": "2",  // ❌ Not in New
      "subgroup": "major_pairs",
      "submarket": "major_pairs",
      "symbol": "frxEURUSD",  // ❌ Changed
      "symbol_type": "forex"  // ❌ Changed
    }
  ],
  "msg_type": "active_symbols"
}
New APIresponse example
{
  "active_symbols": [
    {
      "exchange_is_open": 1,
      "is_trading_suspended": 0,
      "market": "forex",
      "pip_size": 0.0001,
      "subgroup": "major_pairs",
      "submarket": "major_pairs",
      "trade_count": 0,  // 🆕 New field
      "underlying_symbol": "frxEURUSD",  // 🆕 Replaces symbol
      "underlying_symbol_name": "EUR/USD",  // 🆕 Replaces display_name
      "underlying_symbol_type": "forex"  // 🆕 Replaces symbol_type
    }
  ],
  "msg_type": "active_symbols"
}

Code examples

async function getActiveSymbols() {
  const request = {
    active_symbols: "brief",
    product_type: "basic",
    landing_company_short: "svg"
  };

  ws.send(JSON.stringify(request));

  ws.onmessage = (message) => {
    const data = JSON.parse(message.data);
    if (data.msg_type === "active_symbols") {
      data.active_symbols.forEach(symbol => {
        console.log(`Symbol: ${symbol.symbol}`);
        console.log(`Type: ${symbol.symbol_type}`);
        console.log(`Display: ${symbol.display_name}`);
      });
    }
  };
}
Click to open live chat support. Get instant help from our support team.