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

© 2026 Gemini Space Station, Inc.

Getting Started
Market Makers
    Maker Rebate ProgramLiquidity Rewards Program
WebSocket
    IntroductionAuthenticationMessage Format
    Streams
      Book TickerL2 Partial DepthL2 Differential DepthTrade StreamOrder EventsBalance UpdatesPosition UpdatesContract Status
    Playground
      OverviewconninfopingtimeSUBSCRIBEUNSUBSCRIBELIST_SUBSCRIPTIONSdepthorder.placeorder.cancelorder.cancel_allorder.cancel_session
REST APIs
    Combos
    Events
    Terms
    Order Management
    Positions
      Get PositionsGet Settled PositionsGet Volume Metrics
    Rewards
Combo Contracts
    Overview
Tickers
    OverviewCryptoSportsCommoditiesWeather
Schemas

Get Settled Positions

REST APIsPrediction MarketsPositionsGet Settled Positions

Get Settled Positions

POSThttps://api.gemini.com/v1/prediction-markets/positions/settled

Returns historically settled positions for the authenticated user. Each entry represents a position in a contract that has resolved, including payout and resolutionSide. Differs from Get Positions in that it returns closed positions from settled contracts rather than current open positions.

POSTv1/prediction-markets/positions/settled
curl --request POST \
  --url 'https://api.gemini.com/v1/prediction-markets/positions/settled?eventTicker=FEDJAN26' \
  --header 'X-GEMINI-APIKEY: <string>' \
  --header 'X-GEMINI-PAYLOAD: <string>' \
  --header 'X-GEMINI-SIGNATURE: <string>'

Roles

The API key you use to access this endpoint must have the Trader role assigned. See Roles 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

Query Parameters

eventTickerstring
Optional event ticker to filter settled positions to a single event (e.g. FEDJAN26). If omitted, all settled positions for the account are returned.

Responses

Successful response

positionsarray
positions[].accountIdinteger (int64)
Account that held the position
positions[].instrumentIdinteger (int64)
Unique instrument identifier for the contract
positions[].instrumentSymbolstring
Contract instrument symbolExample: GEMI-FEDJAN26-DN25
positions[].positionstring
Signed position held at settlement. Positive values represent a `yes` position; negative values represent a `no` position.Example: 125
positions[].positionQuantitystring
Absolute quantity held at settlement (unsigned)Example: 125
positions[].outcomestring·enum
The outcome being traded (Yes or No)Enum values: yesno
positions[].payoutstring
Payout received from settlement. `0` when the position lost.Example: 125.00
positions[].resolutionSidestring·enum
The winning outcome of the contractEnum values: yesno
positions[].settledAtstring (date-time)
Settlement timestamp (ISO 8601)
positions[].contractMetadataobject
positions[].contractMetadata.contractIdstring
positions[].contractMetadata.contractNamestring
positions[].contractMetadata.contractTickerstring
positions[].contractMetadata.eventTickerstring
positions[].contractMetadata.eventNamestring
positions[].contractMetadata.categorystring
positions[].contractMetadata.contractStatusstring
positions[].contractMetadata.eventTypestring
Event type ("binary" or "categorical")
positions[].contractMetadata.expiryDatestring (date-time)
positions[].contractMetadata.resolvedAtstring (date-time)
positions[].contractMetadata.resolutionSidestring
Winning outcome if resolved ("yes" or "no")
positions[].contractMetadata.parentEventTickerstring
Parent event ticker for sub-events
positions[].contractMetadata.startTimestring (date-time)
Start datetime (ISO 8601)
positions[].costBasisstring
Total amount spent to enter the position, net of any prior realized P&L from partial sells. Omitted when cost-basis data is not available.Example: 78.75
positions[].realizedPnlstring
Realized profit or loss recorded from sells prior to settlement. Omitted when not available.Example: 0
positions[].netProfitstring
Net profit for the position, computed as `payout - costBasis + realizedPnl`. Omitted when `costBasis` is not available.Example: 46.25
totalinteger
Total number of settled positions returned
totalPayoutstring
Sum of `payout` across all returned positions
totalCostBasisstring
Sum of `costBasis` across all returned positions. Only present when cost-basis data is available.
totalNetProfitstring
Sum of `netProfit` across all returned positions. Only present when cost-basis data is available.
Example Responses
{
  "positions": [
    {
      "accountId": 12345,
      "instrumentId": 1001,
      "instrumentSymbol": "GEMI-FEDJAN26-DN25",
      "position": "125",
      "positionQuantity": "125",
      "outcome": "yes",
      "payout": "125.00",
      "resolutionSide": "yes",
      "settledAt": "2026-01-31T23:59:59.000Z",
      "contractMetadata": {
        "contractId": "contract_123",
        "contractName": "FEDJAN26-DN25",
        "contractTicker": "FEDJAN26-DN25",
        "eventTicker": "FEDJAN26",
        "eventName": "Will Fed Funds Rate drop at least 0.25% at January 2026 meeting?",
        "category": "economics",
        "contractStatus": "resolved",
        "imageUrl": "https://example.com/fed.png",
        "eventImageUrl": "https://example.com/fed-event.png",
        "eventType": "binary",
        "expiryDate": "2026-01-31T23:59:59.000Z",
        "resolvedAt": "2026-01-31T23:59:59.000Z",
        "resolutionSide": "yes",
        "description": "Resolves YES if Federal Reserve lowers the target rate by 0.25% or more at the January 2026 FOMC meeting",
        "sortOrder": null,
        "parentEventTicker": null,
        "template": "binary",
        "color": null,
        "startTime": null
      },
      "costBasis": "78.75",
      "realizedPnl": "0",
      "netProfit": "46.25"
    },
    {
      "accountId": 12345,
      "instrumentId": 1002,
      "instrumentSymbol": "GEMI-FEDJAN26-NOCUT",
      "position": "-200",
      "positionQuantity": "200",
      "outcome": "no",
      "payout": "0",
      "resolutionSide": "yes",
      "settledAt": "2026-01-31T23:59:59.000Z",
      "contractMetadata": {
        "contractId": "contract_124",
        "contractName": "FEDJAN26-NOCUT",
        "contractTicker": "FEDJAN26-NOCUT",
        "eventTicker": "FEDJAN26",
        "eventName": "Will Fed Funds Rate drop at least 0.25% at January 2026 meeting?",
        "category": "economics",
        "contractStatus": "resolved",
        "imageUrl": "https://example.com/fed.png",
        "eventImageUrl": "https://example.com/fed-event.png",
        "eventType": "binary",
        "expiryDate": "2026-01-31T23:59:59.000Z",
        "resolvedAt": "2026-01-31T23:59:59.000Z",
        "resolutionSide": "yes",
        "description": "Resolves YES if Federal Reserve lowers the target rate by 0.25% or more at the January 2026 FOMC meeting",
        "sortOrder": null,
        "parentEventTicker": null,
        "template": "binary",
        "color": null,
        "startTime": null
      },
      "costBasis": "72.00",
      "realizedPnl": "0",
      "netProfit": "-72.00"
    }
  ],
  "total": 2,
  "totalPayout": "125.00",
  "totalCostBasis": "150.75",
  "totalNetProfit": "-25.75"
}
PreviousGet PositionsNextGet Volume Metrics
Last modified on May 23, 2026