---
title: "Add a Unified Trading Account"
method: POST
path: "/api/futures/account"
tags: ["Unified Trading Accounts"]
---

# Add a Unified Trading Account

`POST /api/futures/account`

## Request

- Base URL: `https://api.binibit.com`
- URL: `https://api.binibit.com/api/futures/account`
- Auth: none declared

Your first account is the cross-margin main one; every account after that is an isolated sub-account
under it, with its own collateral. Send no name and it is labelled `Main` or `Sub1`,
`Sub2`… — a label only, which you can change later without changing what the account is.

## Request body

- CreateFuturesAccountDto: Request body for adding a Unified Trading Account. The first one is the caller's main cross-margin account; every one after that is an isolated sub-account under it.
  - `currencyCode` string, nullable: Settlement currency the account is denominated in, e.g. `USDT`.
  - `leverage` integer: Default leverage for positions opened on this account. Can be changed later.

## Response `200`

OK

- FuturesAccountDto: One Unified Trading Account of the caller, with its live balance and margin figures.
  - `id` string, uuid: Account identifier — the value to pass as `futuresAccountId` on the other endpoints.
  - `userId` string, nullable: Owner of the account — the caller.
  - `name` string, nullable: Display label, editable by the owner. Defaults are `Main` for the main account and `Sub1`, `Sub2`, … for sub-accounts — but treat it as free text: it identifies nothing. Use PublicApi.Models.Futures.FuturesAccountDto.AccountType to tell the main account from a sub-account.
  - `accountType` 'Funding' | 'UnifiedTradingMain' | 'UnifiedTradingSubAccount' | 'System' | 'Demo': What a Unified Trading Account IS. Serialized by NAME, so an integrator never has to keep a table of magic numbers — and the numeric values still match the platform's own, so an unmapped future value degrades to the number instead of being lost.
  - `balance` number, double: Settled funds on the account, in PublicApi.Models.Futures.FuturesAccountDto.CurrencyCode. Open-position PnL is NOT in here until the position closes — PublicApi.Models.Futures.FuturesAccountDto.Equity is the figure that includes it.
  - `blockedCopyTradingBalance` number, double: Part of PublicApi.Models.Futures.FuturesAccountDto.Balance reserved for copy-trading and unavailable as margin.
  - `usedMargin` number, double: Part of PublicApi.Models.Futures.FuturesAccountDto.Balance currently committed as margin to open positions.
  - `leverage` integer: Default leverage for new positions on this account.
  - `equity` number, double: Balance plus unrealized PnL — what the account is worth if every position closed at the current mark.
  - `unrealizedPnl` number, double: Profit or loss on open positions at the current mark, not yet booked to the balance.
  - `freeMargin` number, double: Balance not yet committed as margin. Computed, not stored.
  - `marginLevel` number, double: Equity as a percentage of used margin — how much cushion the open positions have. 0 when nothing is open, which means "no positions", not "no cushion". Computed, not stored.
  - `isLiquidated` boolean: True while the account is liquidated and cannot open new positions.
  - `liquidationTimestamp` string, date-time, nullable: When the account was last liquidated (UTC), or null if it never was.
  - `currencyCode` string, nullable: Currency the account is denominated in and settles in, e.g. `USDT`.

## Other responses

- `400`: Bad Request

## Changes

- **2026-10-13** `13dbac1613c4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/binibit/apis/webapp/changes/api/futures/account/post.md)

---

[API](https://skmtc.dev/binibit/apis/webapp.md) - [All operations](https://skmtc.dev/binibit/apis/webapp/llms.txt) - [OpenAPI document](https://skmtc.dev/binibit/apis/webapp/revisions/13dbac1613c4?raw)
