Documentation

Contrats pour

DonnéesPas d'authentification

Obtenez les contrats disponibles pour un symbole. Les paramètres de requête, les données de marché, les champs d’affichage et Snowball sont supprimés, et display_number_of_contracts peut être null.

Comparaison rapide

AspectLegacy APINew APIAction
Point de terminaisoncontracts_forcontracts_forAucun
Authentification requiseNonNonAucun
Paramètres de requête8 paramètres3 paramètresRetirer les paramètres obsolètes
Structure de réponseDonnées de marché et métadonnées des contratsListe de contrats uniquementCessez de lire les champs supprimés
display_number_of_contractsNombreNombre ou nullGérez null

Modifications majeures

1. Paramètres de requête supprimés

La requête n’accepte plus currency, landing_company, landing_company_short, product_type ni loginid.

Modification requise : Supprimez ces paramètres de vos requêtes contracts_for .

2. Les champs de données de marché sont supprimés

L’objet contracts_for ne renvoie plus spot, open, close, feed_license ni non_available.

Modification requise : Utilisez ticks pour les prix spot et trading_times pour les heures de marché.

3. Les champs d’affichage sont supprimés

Les contrats dans available ne renvoient plus contract_display ni contract_category_display.

Modification requise : Créez les noms d’affichage à partir de contract_type et contract_category à la place.

4. Métadonnées de contrat supprimées

Les contrats dans available ne renvoient plus barrier_category, exchange_name, start_type, forward_starting_options ni trading_period. L’API Legacy renvoyait toujours barrier_category, contract_category_display, exchange_name et start_type.

Modification requise : Cessez de lire ces champs.

5. Choix Snowball supprimés

Les contrats dans available ne renvoient plus duration_choices ni trade_risk_profile_choices, qui décrivaient les contrats Snowball.

Modification requise : Cessez de lire ces champs.

6. display_number_of_contracts peut être null

display_number_of_contracts était toujours un nombre dans la Legacy API. Dans la New API, il peut être null.

Modification requise : Gérez une valeur null avant de l’afficher ou d’effectuer des calculs avec elle.

Structure de la demande

Legacy APIexemple de demande
{
  "contracts_for": "R_100",
  "currency": "USD",
  "landing_company": "svg",
  "product_type": "basic",
  "req_id": 1
}
New APIexemple de demande
{
  "contracts_for": "R_100",
  "req_id": 1
}

Structure de réponse

Legacy APIexemple de réponse
{
  "contracts_for": {
    "available": [
      {
        "barriers": 0,
        "contract_category": "callput",
        "contract_type": "CALL",
        "expiry_type": "intraday",
        "market": "synthetic_index",
        "max_contract_duration": "1d",
        "min_contract_duration": "15s",
        "sentiment": "up",
        "submarket": "random_index",
        "underlying_symbol": "R_100",
        "barrier_category": "euro_atm",
        "contract_category_display": "Up/Down",
        "contract_display": "Higher",
        "exchange_name": "RANDOM",
        "start_type": "spot"
      }
    ],
    "close": 1760054399,
    "feed_license": "realtime",
    "hit_count": 1,
    "open": 1759968000,
    "spot": 1234.56
  },
  "echo_req": {
    "contracts_for": "R_100",
    "currency": "USD",
    "landing_company": "svg",
    "product_type": "basic",
    "req_id": 1
  },
  "msg_type": "contracts_for",
  "req_id": 1
}
New APIexemple de réponse
{
  "contracts_for": {
    "available": [
      {
        "barriers": 0,
        "contract_category": "callput",
        "contract_type": "CALL",
        "expiry_type": "intraday",
        "market": "synthetic_index",
        "max_contract_duration": "1d",
        "min_contract_duration": "15s",
        "sentiment": "up",
        "submarket": "random_index",
        "underlying_symbol": "R_100"
      }
    ],
    "hit_count": 1
  },
  "echo_req": {
    "contracts_for": "R_100",
    "req_id": 1
  },
  "msg_type": "contracts_for",
  "req_id": 1
}

Exemples de code

function getContracts(symbol) {
  ws.send(JSON.stringify({ contracts_for: symbol, currency: "USD", landing_company: "svg" }));

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

    console.log("Spot:", response.contracts_for.spot);
    response.contracts_for.available.forEach((contract) => {
      console.log(contract.contract_display, contract.exchange_name, contract.display_number_of_contracts);
    });
  };
}
Click to open live chat support. Get instant help from our support team.