Get All Portfolio Assets

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

RapidX-specific asset data: This endpoint provides detailed assets, margin and transfer-limit information across RapidX Portfolios. It complements Account Assets V2; it is not replaced by that API family and remains supported.

Retrieve all asset balances for the current user across every RapidX portfolio, including both:

  • Main portfolio
  • All associated sub portfolios

For each Portfolio, this endpoint returns the same per-asset structure as Get Portfolio Assets Details, grouped by portfolioId. This is useful for building a global user asset overview across multiple portfolios and venues.

API key access

Requires a signed LTP Open API request with READ permission.

API key typeCan callScope
Main User Level API key (also the main Portfolio key)YesAsset records across the Main Portfolio and its Sub Portfolios.
Sub-user Level API keyNoNot supported by this endpoint.
Dedicated Sub Portfolio API keyNoNot supported by this endpoint.

Rate Limit: 20 requests per 1 second.

Request Parameters

This endpoint does not require any request parameters and does not use pagination.

The result contains Portfolio asset records, not a complete Portfolio directory. A Portfolio without asset records may be absent. Use Get Portfolio or Get Trading Account List V2 when you need the Portfolio list.

Response Fields

Top-level:

FieldTypeDescription
codeIntegerBusiness status code. 200000 means success.
messageStringText message for the response.
dataObjectMap of portfolioId → asset list.

Data object:

data is a dictionary whose keys are portfolioId strings. Each key maps to an array of asset records for that portfolio.

  • Key: String — portfolio ID (main or sub)
  • Value: Array of asset records for that portfolio

Example structure:

"data": {
  "1726371398908000": [ { ...asset record... }, ... ],
  "2082325504644932": [ { ...asset record... }, ... ]
}

Asset record (data[portfolioId][]):

Each asset record has the same structure as GET /api/v1/trading/portfolio/assets:

FieldTypeDescription
portfolioIdStringID of the RapidX portfolio (main or sub) that owns this asset.
coinStringAsset symbol, e.g. USDT, BTC, ADA.
exchangeTypeStringExchange / venue where this asset is held, e.g. BINANCE, OKX, EDX.
balanceStringTotal quantity of this asset in this portfolio on this venue.
availableStringQuantity of this asset that is freely available for trading / transfer.
frozenStringQuantity locked (e.g. in open orders or pending operations).
debtStringDebt amount for this asset (for margin environments). 0 if no borrowing.
equityStringAsset equity in units of the asset itself.
createAtStringRecord creation time, Unix timestamp in milliseconds.
updateAtStringLast update time, Unix timestamp in milliseconds.
borrowStringCurrent borrowed amount of this asset, if any.
overdrawStringOverdrawn amount (if negative balance logic applies). Usually 0.
indexPriceStringReference index price for this asset (e.g. in USDT), used for valuation and risk.
marginValueStringMargin value contributed by this asset, generally equity * indexPrice after haircuts.
virtualBorrowStringSynthetic / virtual borrow amount used by the risk engine, if applicable.
upnlStringUnrealized P&L associated with this asset. 0 if not tracked at asset level.
debtMarginStringMargin requirement or value associated with the debt portion of this asset.
perpMarginStringMargin allocated from this asset for perpetual / derivatives positions.
maxTransferableStringMaximum quantity of this asset that can be safely transferred out, considering margin and risk constraints.
equityValueStringAsset equity value converted into the risk base currency (e.g. USDT), typically equity * indexPrice.

Example Response

{
  "code": 200000,
  "message": "Success",
  "data": {
    "1726371398908000": [
      {
        "portfolioId": "1726371398908000",
        "coin": "USDT",
        "exchangeType": "BINANCE",
        "balance": "10",
        "available": "10",
        "frozen": "0",
        "debt": "0",
        "equity": "10",
        "createAt": "1764761133799",
        "updateAt": "1764761133799",
        "borrow": "0",
        "overdraw": "0",
        "indexPrice": "1",
        "marginValue": "9.999",
        "virtualBorrow": "0",
        "upnl": "0",
        "debtMargin": "0",
        "perpMargin": "0",
        "maxTransferable": "10",
        "equityValue": "10"
      }
    ],
    "2082325504644932": [
      {
        "portfolioId": "2082325504644932",
        "coin": "USDT",
        "exchangeType": "BINANCE",
        "balance": "48.55626345",
        "available": "48.55626345",
        "frozen": "0",
        "debt": "0",
        "equity": "48.55626345",
        "createAt": "1764761133799",
        "updateAt": "1764761133799",
        "borrow": "0",
        "overdraw": "0",
        "indexPrice": "1",
        "marginValue": "48.551407823655",
        "virtualBorrow": "0",
        "upnl": "0",
        "debtMargin": "0",
        "perpMargin": "0",
        "maxTransferable": "48.55626345",
        "equityValue": "48.55626345"
      }
    ]
  }
}

All asset-record fields, including portfolioId, decimal amounts and millisecond timestamps, are returned as strings. A Sub-user Level key returns application code 100003 (invalid user type). Check the application code even when HTTP status is 200. See Error codes.

Responses

Language
LoadingLoading…
Response
Choose an example:
application/json