Skip to content

ScaleTrade Trading Platform TCP API - GetExposureByLogin Method for Account Exposure

GetExposureByLogin

Description:
Returns current open market exposure for an account login, grouped by symbol.

Exposure is calculated from open BUY and SELL market positions only:

exposure = lots * contract_size * market_price

Market price is selected by side:

  • BUY: current bid
  • SELL: current ask

The response includes exposure in both account currency and USD.

LP coverage is included from open positions on accounts in the coverage group. Coverage volume uses gw_volume when it is greater than 0; otherwise it falls back to the trade volume. Coverage rows are matched only by symbols present in the requested account exposure.


Access Control

🛡️ Access Level Required: SESSION_USER, SESSION_CUSTOMER, SESSION_MANAGER, SESSION_ADMIN, SESSION_DEALER

Access rules:

  • SESSION_USER: uses the authorized session login.
  • SESSION_CUSTOMER: requires login and checks that the account belongs to the customer.
  • Staff sessions require login.

Endpoint

GET /trades/exposure/login/


Request Parameters

Name Type Required Description
login int Conditional Account login. Required for customer and staff sessions. Ignored for user sessions because the session login is used.

Request Example

{
  "login": 123456
}

Response

The response contains:

  • login: resolved account login
  • currency / account_currency: account currency
  • structure: array of column names
  • rows: array of exposure rows aligned with structure
  • total exposure fields in account currency and USD
  • total coverage fields in account currency and USD

Structure Fields

Field Description
symbol Symbol name
account_currency Account currency used for non-USD exposure fields
quote_currency Symbol quote currency used as base exposure currency before conversion
orders Number of open account market positions for this symbol
buy_volume Account BUY volume in raw platform volume units
sell_volume Account SELL volume in raw platform volume units
net_volume buy_volume - sell_volume
buy_lots Account BUY volume in lots
sell_lots Account SELL volume in lots
net_lots buy_lots - sell_lots
buy_price Average BUY market price used for exposure
sell_price Average SELL market price used for exposure
buy_exposure BUY exposure in account currency
sell_exposure SELL exposure in account currency
net_exposure buy_exposure - sell_exposure in account currency
gross_exposure buy_exposure + sell_exposure in account currency
buy_exposure_usd BUY exposure in USD
sell_exposure_usd SELL exposure in USD
net_exposure_usd buy_exposure_usd - sell_exposure_usd
gross_exposure_usd buy_exposure_usd + sell_exposure_usd
coverage_orders Number of open LP coverage positions for this symbol
coverage_buy_volume LP coverage BUY volume, using gw_volume when available
coverage_sell_volume LP coverage SELL volume, using gw_volume when available
coverage_net_volume coverage_buy_volume - coverage_sell_volume
coverage_buy_lots LP coverage BUY volume in lots
coverage_sell_lots LP coverage SELL volume in lots
coverage_net_lots coverage_buy_lots - coverage_sell_lots
coverage_buy_price Average LP coverage BUY market price
coverage_sell_price Average LP coverage SELL market price
coverage_buy_exposure LP coverage BUY exposure in account currency
coverage_sell_exposure LP coverage SELL exposure in account currency
coverage_net_exposure coverage_buy_exposure - coverage_sell_exposure
coverage_gross_exposure coverage_buy_exposure + coverage_sell_exposure
coverage_buy_exposure_usd LP coverage BUY exposure in USD
coverage_sell_exposure_usd LP coverage SELL exposure in USD
coverage_net_exposure_usd coverage_buy_exposure_usd - coverage_sell_exposure_usd
coverage_gross_exposure_usd coverage_buy_exposure_usd + coverage_sell_exposure_usd

Example Response

{
  "login": 123456,
  "currency": "EUR",
  "account_currency": "EUR",
  "structure": [
    "symbol",
    "account_currency",
    "quote_currency",
    "orders",
    "buy_volume",
    "sell_volume",
    "net_volume",
    "buy_lots",
    "sell_lots",
    "net_lots",
    "buy_price",
    "sell_price",
    "buy_exposure",
    "sell_exposure",
    "net_exposure",
    "gross_exposure",
    "buy_exposure_usd",
    "sell_exposure_usd",
    "net_exposure_usd",
    "gross_exposure_usd",
    "coverage_orders",
    "coverage_buy_volume",
    "coverage_sell_volume",
    "coverage_net_volume",
    "coverage_buy_lots",
    "coverage_sell_lots",
    "coverage_net_lots",
    "coverage_buy_price",
    "coverage_sell_price",
    "coverage_buy_exposure",
    "coverage_sell_exposure",
    "coverage_net_exposure",
    "coverage_gross_exposure",
    "coverage_buy_exposure_usd",
    "coverage_sell_exposure_usd",
    "coverage_net_exposure_usd",
    "coverage_gross_exposure_usd"
  ],
  "rows": [
    [
      "EURUSD",
      "EUR",
      "USD",
      2,
      1000,
      500,
      500,
      10.0,
      5.0,
      5.0,
      1.1012,
      1.1014,
      1012000.0,
      506000.0,
      506000.0,
      1518000.0,
      1101200.0,
      550700.0,
      550500.0,
      1651900.0,
      1,
      0,
      500,
      -500,
      0.0,
      5.0,
      -5.0,
      0.0,
      1.1014,
      0.0,
      506000.0,
      -506000.0,
      506000.0,
      0.0,
      550700.0,
      -550700.0,
      550700.0
    ]
  ],
  "count": 1,
  "total_buy_exposure": 1012000.0,
  "total_sell_exposure": 506000.0,
  "total_net_exposure": 506000.0,
  "total_gross_exposure": 1518000.0,
  "total_buy_exposure_usd": 1101200.0,
  "total_sell_exposure_usd": 550700.0,
  "total_net_exposure_usd": 550500.0,
  "total_gross_exposure_usd": 1651900.0,
  "total_coverage_buy_exposure": 0.0,
  "total_coverage_sell_exposure": 506000.0,
  "total_coverage_net_exposure": -506000.0,
  "total_coverage_gross_exposure": 506000.0,
  "total_coverage_buy_exposure_usd": 0.0,
  "total_coverage_sell_exposure_usd": 550700.0,
  "total_coverage_net_exposure_usd": -550700.0,
  "total_coverage_gross_exposure_usd": 550700.0
}

Error Responses

Validation Error

{
  "error": "INVALID_DATA",
  "message": "login must be int"
}

Permission Error

{
  "error": "PERMISSION_DENIED",
  "message": "Login is not linked to the authorized customer session"
}

Account Or Group Error

{
  "error": "RET_USER_NOT_FOUND",
  "message": "User not found"
}