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: currentbidSELL: currentask
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: requiresloginand 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 logincurrency/account_currency: account currencystructure: array of column namesrows: array of exposure rows aligned withstructure- 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"
}