Deriv API
Documentation

Proposal

TradingPas d'authentification

Obtenir la tarification et les propositions de contrat avec des changements majeurs dans la structure des paramètres et le format de réponse.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisonproposalproposalAucun
paramètre symbolsymbolunderlying_symbolRenommer dans les requêtes
paramètre loginidFacultatifSuppriméRetirer des requêtes
Objet proposal de réponseFacultatifObligatoireMettre à jour la gestion de la réponse
Champs obligatoires de la proposition8 champs obligatoiresSeul id requisAjouter des vérifications null

Modifications majeures

1. Paramètre Symbol renommé

Le paramètre symbol a été renommé underlying_symbol.

Modification requise : Mettez à jour toutes les requêtes pour utiliser underlying_symbol au lieu de symbol.

2. Paramètre LoginID supprimé

Le paramètre loginid utilisé pour les scénarios d'autorisation multi-token a été supprimé.

3. Plusieurs paramètres de requête supprimés

Les paramètres suivants ont été supprimés de la demande :

  • barrier_range, product_type, date_start, trade_risk_profile, trading_period_start (supprimé)

4. Objet proposal de réponse désormais requis

L'objet proposal dans la réponse est désormais requis. Auparavant, il était optionnel.

5. Champs obligatoires de proposition réduits

L'objet proposal ne nécessite désormais que le champ id. Auparavant, 8 champs étaient requis.

Modification requise : Add null/undefined checks for fields other than id as they may not always be present.

6. Types de champs de réponse modifiés

Plusieurs champs de réponse acceptent désormais à la fois des nombres et des chaînes : ask_price, payout, et commission.

Modification requise : Update parsing logic to handle both number and string values for these fields.

Structure de la demande

Legacy APIexemple de demande
{
  "proposal": 1,
  "amount": 10,
  "contract_type": "CALL",
  "currency": "USD",
  "symbol": "frxEURUSD",  // ❌ Renamed in New
  "loginid": "CR123456",  // ❌ Removed in New
  "barrier_range": "middle"  // ❌ Removed in New
}
New APIexemple de demande
{
  "proposal": 1,
  "amount": 10,
  "contract_type": "CALL",
  "currency": "USD",
  "underlying_symbol": "frxEURUSD",  // ✅ Renamed from symbol
  "subscribe": 1
}

Structure de réponse

Legacy APIexemple de réponse
{
  "proposal": {
    "ask_price": 10.50,  // type: number
    "id": "proposal-id-123",
    "payout": 20.00,  // type: number
    "spot": 1.0850
  },
  "msg_type": "proposal"
}
New APIexemple de réponse
{
  "proposal": {
    "ask_price": "10.50",  // type: number | string
    "id": "proposal-id-123",  // ✅ Only required field
    "payout": "20.00",  // type: number | string
    "spot": 1.0850
  },
  "msg_type": "proposal"
}

Exemples de code

async function getProposal() {
  const request = {
    proposal: 1,
    amount: 10,
    contract_type: "CALL",
    currency: "USD",
    symbol: "frxEURUSD",
    loginid: "CR123456"
  };

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

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === "proposal") {
      console.log("Price:", response.proposal.ask_price);
    }
  };
}
Click to open live chat support. Get instant help from our support team.