---
title: "Open Positions"
method: POST
path: "/api/v4/collateral-account/positions/open"
tags: ["Collateral Trading"]
---

# Open Positions

`POST /api/v4/collateral-account/positions/open`

The endpoint returns all open [collateral](/glossary#balance-collateral) positions for the authenticated account. Each position includes entry price, unrealized PnL, margin allocation, liquidation price, and take-profit/stop-loss configuration. Use the optional `market` parameter to filter results to a single trading pair.

<Warning>
Rate limit: 12000 requests/10 sec.
</Warning>

<Accordion title="Error Codes">
  - `30` - default validation error code (returned when the optional `market` filter is malformed)
</Accordion>

## Request body

- object
  - `market` string — Filter by specific market. For example: BTC_USDT If not specified, returns all open positions.
  - `request` string — Request signature
  - `nonce` integer — Unique request identifier

## Response `200`

Successful response - returns array of open positions

- object[]
  - `positionId` integer — Unique position identifier
  - `market` string — Market name
  - `amount` string — Position amount
  - `basePrice` string — Base price of position
  - `pnl` string — Realized profit and loss accumulated from partial position closes, in money currency. Zero for newly opened positions that have not been partially closed.
  - `pnlPercent` string — Unrealized profit and loss in percentage
  - `margin` string — Amount of funds in open position money
  - `freeMargin` string — Free funds for trading
  - `funding` string — Cumulative funding fees paid over the entire lifetime of the position, in money currency. For futures markets (e.g., BTC_PERP and other _PERP pairs), the value is always "0" — futures funding is applied via periodic balance updates rather than being tracked per position.
  - `unrealizedPnl` string — Floating (mark-to-market) unrealized profit and loss in money currency. Updates continuously as the market price changes.
  - `positionSide` 'LONG' | 'SHORT' | 'BOTH' — Position side
  - `openDate` number — Date of position opening in Unix timestamp format
  - `modifyDate` number — Date of position modifying (current event) in Unix timestamp format
  - `liquidationPrice` string, nullable — Liquidation price according to current state of position
  - `liquidationState` 'margin_call' | 'liquidation', nullable — State of liquidation
  - `tpsl` object, nullable — Take profit and stop loss configuration
    - `takeProfitId` integer — Take profit order ID
    - `takeProfit` string — Take profit price
    - `stopLossId` integer — Stop loss order ID
    - `stopLoss` string — Stop loss price
  - `unrealizedFunding` string — Funding fees accrued since the last position state change and not yet realized. For margin positions, the value accumulates continuously and is settled into the funding field when the position state changes (e.g., on partial or full close). For futures markets (BTC_PERP and other _PERP pairs), always "0" — futures funding is applied via periodic balance updates, not tracked per position.

## Other responses

- `422` — Inner validation failed
- `503` — Service temporarily unavailable

---

[API](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4.md) · [All operations](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whitebit/whitebit-private-http-api-v4/revisions/76c9def9942f/schema)
