The Accounts API provides authenticated access to your trading account structure, asset balances, and inter-account transfer functionality. Most endpoints require a bearer JWT. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/bullish-exchange/api-docs/llms.txt
Use this file to discover all available pages before exploring further.
tradingAccountId returned from the trading accounts endpoint is used as a required parameter throughout the rest of the API.
GET /trading-api/v1/accounts/trading-accounts
Returns details for all trading accounts accessible by the API key used in the request.Authentication: Required. Rate limited: Yes.
Response Fields (array of TradingAccountResponse)
Unique ID for the trading account. Used as a required parameter throughout the REST API.
Name of the trading account. E.g.
"algo trading account".Description of the trading account.
Unique token for this account. Provide in the
BX-RATELIMIT-TOKEN request header to access higher rate limit tiers. E.g. "97d98951b12fb11f330dd9cb1b807d888c702679ee602edcf1ebc6bac17ad63d".Whether this is the primary account. String representation of boolean.
Whether the account is currently borrowing.
Whether the account is currently lending.
Whether the account is in a defaulted state.
Maximum initial leverage allowed for this account. E.g.
"1".Maximum allowed borrowing for this account in USD. E.g.
"10000.0000".Total collateral across all assets in USD. E.g.
"13000.0000".Total borrowed across all assets in USD. E.g.
"12000.0000".Total liabilities for this account in USD. E.g.
"14000.0000".Minimum margin required to purposefully increase risk.
Margin level at which the account receives warning notifications.
Minimum margin required to avoid liquidation.
Margin level at which full liquidation occurs.
Margin level at which the account enters defaulted state.
Expected market impact of unwinding the portfolio during a liquidation event.
Worst possible portfolio loss based on scenario analysis.
Whether concentration risk checks are enforced for new orders.
End customer ID used for self-trade prevention. Defaults to the institution ID. Max 32 characters.
Trade fee rates per
feeGroupId for this trading account.Market risk multipliers applied to derive the five individual margin requirement values.
Example Request
Example Response
GET /trading-api/v1/accounts/trading-accounts/
Returns details for a specific trading account by its ID.Authentication: Required. Rate limited: Yes.
Path Parameters
ID of the trading account.
Example Request
GET /trading-api/v1/accounts/asset
Returns asset account balances for all assets held in the specified trading account.Authentication: Required. Rate limited: Yes.
Query Parameters
ID of the trading account.
Response Fields (array of AssetAccount objects)
ID of the trading account.
Unique asset ID.
Asset symbol. E.g.
BTC, USD.The assets that are available to use on the account.
Assets that are currently borrowed.
Assets locked in open orders, active loans, or AMM instructions.
Assets that are currently being loaned to other accounts.
ISO 8601 datetime of the last balance update.
Millisecond EPOCH timestamp of the last balance update.
Example Request
Example Response
GET /trading-api/v1/accounts/asset/
Returns the asset account balance for a specific asset symbol.Authentication: Required. Rate limited: Yes.
Path Parameters
Asset symbol, e.g.
BTC.Query Parameters
ID of the trading account.
Example Request
POST /trading-api/v1/command
Transfers assets between two trading accounts. The command must be acknowledged before the transfer takes effect.Authentication: Required.
Query Parameters
Must be
"V1TransferAsset".Request Headers
Bearer <JWT>Request signature.
Milliseconds since EPOCH.
Client-side incremented unsigned 64-bit integer as a string.
Example Request Body
Example Request
GET /trading-api/v1/history/transfer
Returns paginated historical transfer records for the authenticated trading account. Only the last 90 days of data are available.Authentication: Required.
Query Parameters
ID of the trading account. Mandatory for accounts with multiple trading accounts.
Transfer status:
CLOSED, OPEN, or REJECTED. Defaults to CLOSED.Unique identifier of the transfer request. E.g.
"561287547935260672".Asset symbol to filter by. E.g.
BTC.Start of the datetime window (ISO 8601 with millisecond).
End of the datetime window (ISO 8601 with millisecond).
Example Request
POST /trading-api/v1/simulate-portfolio-margin
Simulates portfolio margin requirements based on your current portfolio balances. Optionally append hypothetical position details to see simulated results.Authentication: Required.
Query Parameters
Whether to include existing portfolio positions in the simulation.
Response Fields
Total collateral in USD. E.g.
"13000.0000".Total borrowed amount in USD.
Minimum margin required to purposefully increase risk.
Margin level triggering warning notifications.
Minimum margin required to avoid liquidation.
Margin level at which full liquidation occurs.
Margin level at which the account enters defaulted state.
Expected market impact of unwinding the portfolio.
Worst-case portfolio loss from scenario analysis.
Example Request
GET /trading-api/v1/assets
Returns the list of all supported assets on the exchange. Public endpoint.Authentication: Not required.
Example Request
GET /trading-api/v1/assets/
Returns details for a specific asset by its symbol.Authentication: Not required.
Path Parameters
Asset symbol, e.g.
BTC.Example Request
GET /trading-api/v1/nonce
Returns the current nonce range. The lower bound is the EPOCH start of the current day in microseconds; the upper bound is the EPOCH end of the current day in microseconds. Used to generate validBX-NONCE values for signed requests.
Authentication: Required. Rate limited: No.
Response Fields
Lower bound of the valid nonce range (microseconds). E.g.
8455.Upper bound of the valid nonce range (microseconds). E.g.
9455.