Documentação

Proposta

NegociaçãoSem Autenticação

Obtenha o preço de um contrato. symbol foi renomeado para underlying_symbol, os parâmetros do pedido e os tipos de contrato foram removidos, e display_value e os campos Snowball já não são devolvidos.

Comparação rápida

AspetoLegacy APINew APIAção
EndpointproposalproposalNenhum
Autenticação ObrigatóriaNãoNãoNenhum
symbol parâmetrosymbolunderlying_symbolRenomear em pedidos
loginid parâmetroOpcionalRemovidoRemover dos pedidos
Cinco parâmetros de pedidoOpcionalRemovidoRemover dos pedidos
contract_type valoresInclui spreads, lookbacks e SnowballAdiciona HIGHER e LOWERAtualize os seus pedidos
display_valueDevolvidoRemovidoFormato ask_price você mesmo

Alterações de rutura

1. symbol renomeado para underlying_symbol

O parâmetro obrigatório symbol foi renomeado para underlying_symbol.

Alteração necessária: Enviar underlying_symbol em vez de symbol.

2. loginid parâmetro removido

Na Legacy API, loginid selecionava a conta quando autorizava várias contas. A New API não o aceita.

Alteração necessária: Remova loginid dos seus pedidos de proposal .

3. Parâmetros de pedido removidos

O pedido já não aceita barrier_range, date_start, product_type, trade_risk_profile nem trading_period_start.

Alteração necessária: Remova estes parâmetros dos seus pedidos proposal .

4. contract_type valores alterados

contract_type já não aceita CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT, LBHIGHLOW, SNOWUP nem SNOWDOWN, e adiciona HIGHER e LOWER.

Alteração necessária: Deixe de solicitar preços para os tipos de contrato que a New API já não aceita.

5. display_value removido da resposta

A API Legacy devolvia display_value, o preço formatado, em cada proposta. A New API não o devolve. ask_price, date_start, id, longcode, payout, spot e spot_time continuam a ser sempre devolvidos.

Alteração necessária: Formate ask_price se apresentou display_value.

6. Detalhes de contratos Snowball removidos

contract_details já não devolve caution_price, coupon_rate, num_of_coupons, profit_price nem trade_risk_profile, que descreviam contratos Snowball.

Alteração necessária: Deixe de ler estes campos.

Estrutura de pedido

Legacy APIexemplo de pedido
{
  "proposal": 1,
  "amount": 10,
  "basis": "stake",
  "contract_type": "CALL",
  "currency": "USD",
  "duration": 5,
  "duration_unit": "m",
  "product_type": "basic",
  "symbol": "R_100",
  "loginid": "CR123456",
  "req_id": 1
}
New APIexemplo de pedido
{
  "proposal": 1,
  "amount": 10,
  "basis": "stake",
  "contract_type": "CALL",
  "currency": "USD",
  "duration": 5,
  "duration_unit": "m",
  "underlying_symbol": "R_100",
  "req_id": 1
}

Estrutura de resposta

Legacy APIexemplo de resposta
{
  "echo_req": {
    "proposal": 1,
    "amount": 10,
    "basis": "stake",
    "contract_type": "CALL",
    "currency": "USD",
    "duration": 5,
    "duration_unit": "m",
    "product_type": "basic",
    "symbol": "R_100",
    "loginid": "CR123456",
    "req_id": 1
  },
  "msg_type": "proposal",
  "proposal": {
    "ask_price": 10,
    "date_expiry": 1760000300,
    "date_start": 1760000000,
    "id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
    "longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
    "payout": 19.55,
    "spot": 1234.56,
    "spot_time": 1760000000,
    "display_value": "10.00"
  },
  "req_id": 1
}
New APIexemplo de resposta
{
  "echo_req": {
    "proposal": 1,
    "amount": 10,
    "basis": "stake",
    "contract_type": "CALL",
    "currency": "USD",
    "duration": 5,
    "duration_unit": "m",
    "underlying_symbol": "R_100",
    "req_id": 1
  },
  "msg_type": "proposal",
  "proposal": {
    "ask_price": 10,
    "date_expiry": 1760000300,
    "date_start": 1760000000,
    "id": "c84a793b-8a87-7999-ce10-9b22f7ceead3",
    "longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
    "payout": 19.55,
    "spot": 1234.56,
    "spot_time": 1760000000
  },
  "req_id": 1
}

Exemplos de código

function getPrice(loginId) {
  ws.send(JSON.stringify({
    proposal: 1,
    amount: 10,
    basis: "stake",
    contract_type: "CALL",
    currency: "USD",
    duration: 5,
    duration_unit: "m",
    symbol: "R_100",
    loginid: loginId
  }));

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type !== "proposal" || !response.proposal) return;

    console.log("Price:", response.proposal.display_value);
    console.log("Payout:", response.proposal.payout);
  };
}
Click to open live chat support. Get instant help from our support team.