GeminiGemini
SandboxGet API key
  • Crypto Trading
  • Prediction Markets
Changelog
Gemini Crypto Exchange LogoGemini Crypto Exchange Logo

© 2026 Gemini Space Station, Inc.

REST APIs
    Orders
    Market Data
    Derivatives
      Get Open PositionsGet Account MarginGet Funding AmountGet Funding Amount Report FileList Funding PaymentsGet Funding Payment Report FileGet Funding Payment Report JSONGet Risk Stats
    Margin Trading
    Staking
    Clearing
    Instant Orders
    Fund Management
WebSocket
    AuthenticationMessage Format
    Streams
      Book TickerL2 Partial DepthL2 Differential DepthTrade StreamOrder EventsBalance Updates
    Playground
      Overviewconninfopingtimesubscribeunsubscribelist_subscriptionsdepthorder.placeorder.cancelorder.cancel_allorder.cancel_session
Agentic
FIX

Get Open Positions

TradingDerivativesGet Open Positions

Get Open Positions

POSThttps://api.gemini.com/v1/positions

Retrieves all open positions for the account.

POSTv1/positions
curl --request POST \
  --url https://api.gemini.com/v1/positions \
  --header 'Content-Type: application/json' \
  --header 'X-GEMINI-APIKEY: <string>' \
  --header 'X-GEMINI-PAYLOAD: <string>' \
  --header 'X-GEMINI-SIGNATURE: <string>' \
  --data '
{
  "request": "/v1/positions",
  "nonce": "<nonce>",
  "account": "primary"
}
'

Roles

The API key you use to access this endpoint must have the Trader or Auditor role assigned. See Roles for more information.

The OAuth scope must have orders:read assigned to access this endpoint. See OAuth Scopes for more information.

Headers

X-GEMINI-APIKEYstring·required
Your API key
X-GEMINI-SIGNATUREstring·required
HEX-encoded HMAC-SHA384 of payload signed with API secret
X-GEMINI-PAYLOADstring·required
Base64-encoded JSON payload
Content-Typestring
Default: text/plain
Content-Lengthstring
Default: 0
Cache-Controlstring
Default: no-cache

Request Body

requeststring·required
The literal string "/v1/positions"
nonceTimestampType | integer·required
timestampExample: 1495127793000
accountstring
Required for Master API keys as described in [Private API Invocation](/authentication/api-key#private-api-invocation). The name of the account within the subaccount group. Specifies the account on which the orders were placed. Only available for exchange accounts.
Example request body
{
  "request": "/v1/positions",
  "nonce": "<nonce>",
  "account": "primary"
}

Responses

Successful operation

openPositionsarray
openPositions[].symbolstring
The [symbol](/market-data/symbols-and-minimums) of the order.
openPositions[].instrument_typestring
The type of instrument. Either "spot" or "perp".
openPositions[].quantitystring (decimal)
The position size. Value will be negative for shorts.
openPositions[].notional_valuestring (decimal)
The value of position; calculated as (`quantity` * `mark_price`). Value will be negative for shorts.
openPositions[].realised_pnlstring (decimal)
The current P&L that has been realised from the position.
openPositions[].unrealised_pnlstring (decimal)
Current Mark to Market value of the positions.
openPositions[].average_coststring (decimal)
The average price of the current position.
openPositions[].mark_pricestring (decimal)
The current Mark Price for the Asset or the position.
Example Responses
[
  {
    "symbol": "btcgusdperp",
    "instrument_type": "perp",
    "quantity": "0.2",
    "notional_value": "4000.036",
    "realised_pnl": "1234.5678",
    "unrealised_pnl": "999.946",
    "average_cost": "15000.45",
    "mark_price": "20000.18"
  }
]
PreviousDerivativesNextGet Account Margin
Last modified on May 5, 2026