Deriv API
K

Active symbols

Data

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

Quick comparison

AspectLegacyNewAction required
Endpoint
✅ Same
active_symbolsactive_symbolsNone
Auth Required
✅ Same
NoNoNone
Request Complexity
⚠️ Changed
9 parameters4 parametersRemove obsolete parameters

Breaking changes

1. Response field name changes

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

  • symbol underlying_symbol
  • symbol_type underlying_symbol_type
  • display_name underlying_symbol_name
  • pip pip_size

2. Translated display name fields removed

What changed: Translated display name fields have been removed from the response (note: display_name was renamed to underlying_symbol_name, see section 1):

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

3. Spot price data removed

What changed: Real-time spot price fields are no longer included:

  • spot (removed)
  • spot_age (removed)
  • spot_percentage_change (removed)
  • spot_time (removed)

4. Landing company and product type filtering removed

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

  • landing_company (deprecated in Legacy, now removed)
  • landing_company_short (removed)
  • product_type (removed)
  • loginid (removed)

5. Barrier category filtering removed

What changed: The barrier_category request parameter has been removed:

  • barrier_category (removed) - No longer possible to filter by: american, asian, euro_atm, euro_non_atm, non_financial, lookback, reset

6. Additional metadata fields removed

What changed: Various metadata fields no longer available:

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

Request structure

Legacy Request Example

1{
2  "active_symbols": "brief",
3  "product_type": "basic",  // ❌ Removed in New
4  "landing_company_short": "svg",  // ❌ Removed in New
5  "contract_type": ["CALL", "PUT"]
6}

New Request Example

1{
2  "active_symbols": "brief",
3  "contract_type": ["CALL", "PUT"]
4}

Response structure

Legacy Response Example

1{
2  "active_symbols": [
3    {
4      "allow_forward_starting": 1,  // ❌ Not in New
5      "close_only": 0,
6      "display_name": "EUR/USD",  // ❌ Not in New
7      "display_order": 1,
8      "exchange_is_open": 1,
9      "is_trading_suspended": 0,
10      "market": "forex",
11      "market_display_name": "Forex",  // ❌ Not in New
12      "pip": 0.0001,
13      "spot": 1.0850,  // ❌ Not in New
14      "spot_age": "2",  // ❌ Not in New
15      "subgroup": "major_pairs",
16      "submarket": "major_pairs",
17      "symbol": "frxEURUSD",  // ❌ Changed
18      "symbol_type": "forex"  // ❌ Changed
19    }
20  ],
21  "msg_type": "active_symbols"
22}

New Response Example

1{
2  "active_symbols": [
3    {
4      "exchange_is_open": 1,
5      "is_trading_suspended": 0,
6      "market": "forex",
7      "pip_size": 0.0001,
8      "subgroup": "major_pairs",
9      "submarket": "major_pairs",
10      "trade_count": 0,  // 🆕 New field
11      "underlying_symbol": "frxEURUSD",  // 🆕 Replaces symbol
12      "underlying_symbol_name": "EUR/USD",  // 🆕 Replaces display_name
13      "underlying_symbol_type": "forex"  // 🆕 Replaces symbol_type
14    }
15  ],
16  "msg_type": "active_symbols"
17}

Code examples

Legacy Implementation

1async function getActiveSymbols() {
2  const request = {
3    active_symbols: "brief",
4    product_type: "basic",
5    landing_company_short: "svg"
6  };
7
8  ws.send(JSON.stringify(request));
9
10  ws.onmessage = (message) => {
11    const data = JSON.parse(message.data);
12    if (data.msg_type === "active_symbols") {
13      data.active_symbols.forEach(symbol => {
14        console.log(`Symbol: ${symbol.symbol}`);
15        console.log(`Type: ${symbol.symbol_type}`);
16        console.log(`Display: ${symbol.display_name}`);
17      });
18    }
19  };
20}

New Implementation

1async function getActiveSymbols() {
2  const request = {
3    active_symbols: "brief"
4  };
5
6  ws.send(JSON.stringify(request));
7
8  ws.onmessage = (message) => {
9    const data = JSON.parse(message.data);
10    if (data.msg_type === "active_symbols") {
11      data.active_symbols.forEach(symbol => {
12        console.log(`Symbol: ${symbol.underlying_symbol}`);
13        console.log(`Type: ${symbol.underlying_symbol_type}`);
14        // Display name no longer available
15      });
16    }
17  };
18}
Click to open live chat support. Get instant help from our support team.