Deriv API
Documentação

Contratos para

DadosSem Autenticação

Obtenha os contratos disponíveis para um símbolo. Parâmetros de pedido reduzidos, dados de mercado removidos da resposta e vários campos de metadados de contrato removidos.

Comparação rápida

AspetoLegacy APINew APIAção
Endpointcontracts_forcontracts_forNenhum
Autenticação ObrigatóriaNãoNãoNenhum
Complexidade do Pedido8 parâmetros3 parâmetrosRemover parâmetros de filtragem
Estrutura de RespostaAninhado com dados de mercadoSimplificadoAtualizar análise de resposta

Alterações de rutura

1. Parâmetros de pedido removidos

Vários parâmetros de filtragem foram removidos do pedido:

  • currency (removido) - Filtragem de moeda já não suportada no pedido
  • landing_company, landing_company_short, product_type, loginid (removidos)

2. Campos de dados de mercado removidos da resposta

Campos de horários de mercado e preço spot removidos do objeto contracts_for:

  • spot, open, close, feed_license, non_available (removidos)

3. Campos de exibição removidos dos itens de contrato

Campos específicos de visualização removidos de objetos de item de contrato:

  • contract_display (removido)
  • contract_category_display (removido)

4. Campos de metadados de contrato removidos

Vários campos de metadados de contrato removidos dos objetos de item de contrato:

  • barrier_category, start_type (removidos) - Era obrigatório no Legado
  • forward_starting_options, trading_period (removidos)

5. Opções de contrato especializadas removidas

Campos de configuração especializados para certos tipos de contrato removidos:

  • duration_choices, trade_risk_profile_choices (removidos) - Opções de contratos Snowball

Estrutura de pedido

Legacy APIexemplo de pedido
{
  "contracts_for": "frxEURUSD",
  "currency": "USD",  // ❌ Removed in New
  "landing_company_short": "svg",  // ❌ Removed in New
  "product_type": "basic",  // ❌ Removed in New
  "loginid": "CR123456"  // ❌ Removed in New
}
New APIexemplo de pedido
{
  "contracts_for": "frxEURUSD"
}

Estrutura de resposta

Legacy APIexemplo de resposta
{
  "contracts_for": {
    "available": [
      {
        "barrier_category": "euro_atm",  // ❌ Not in New
        "barriers": 0,
        "contract_category": "callput",
        "contract_category_display": "Up/Down",  // ❌ Not in New
        "contract_display": "Higher",  // ❌ Not in New
        "contract_type": "CALL",
        "exchange_name": "FOREX",
        "expiry_type": "intraday",
        "market": "forex",
        "sentiment": "up",
        "start_type": "spot",  // ❌ Not in New
        "submarket": "major_pairs",
        "underlying_symbol": "frxEURUSD"
      }
    ],
    "close": 1699574400,  // ❌ Not in New
    "feed_license": "realtime",  // ❌ Not in New
    "hit_count": 1,
    "open": 1699488000,  // ❌ Not in New
    "spot": 1.0850  // ❌ Not in New
  },
  "msg_type": "contracts_for"
}
New APIexemplo de resposta
{
  "contracts_for": {
    "available": [
      {
        "barriers": 0,
        "contract_category": "callput",
        "contract_type": "CALL",
        "exchange_name": "FOREX",
        "expiry_type": "intraday",
        "market": "forex",
        "sentiment": "up",
        "submarket": "major_pairs",
        "underlying_symbol": "frxEURUSD"
      }
    ],
    "hit_count": 1
  },
  "msg_type": "contracts_for"
}

Exemplos de código

async function getContractsFor(symbol) {
  const request = {
    contracts_for: symbol,
    currency: "USD",
    landing_company_short: "svg",
    product_type: "basic"
  };

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

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === 'contracts_for') {
      const { spot, open, close } = response.contracts_for;
      console.log(`Spot: ${spot}, Open: ${open}, Close: ${close}`);

      response.contracts_for.available.forEach(c => {
        console.log(`Type: ${c.contract_type}`);
        console.log(`Display: ${c.contract_display}`);
        console.log(`Barrier Category: ${c.barrier_category}`);
      });
    }
  };
}
Click to open live chat support. Get instant help from our support team.