Get 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 keyX-GEMINI-SIGNATUREstring·required
HEX-encoded HMAC-SHA384 of payload signed with API secretX-GEMINI-PAYLOADstring·required
Base64-encoded JSON payloadContent-Typestring
Default: text/plainContent-Lengthstring
Default: 0Cache-Controlstring
Default: no-cacheQuery 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 positionpositions[].instrumentIdinteger (int64)
Unique instrument identifier for the contractpositions[].instrumentSymbolstring
Contract instrument symbolExample: GEMI-FEDJAN26-DN25positions[].positionstring
Signed position held at settlement. Positive values represent a `yes` position; negative values represent a `no` position.Example: 125positions[].positionQuantitystring
Absolute quantity held at settlement (unsigned)Example: 125positions[].outcomestring·enum
The outcome being traded (Yes or No)Enum values: yesnopositions[].payoutstring
Payout received from settlement. `0` when the position lost.Example: 125.00positions[].resolutionSidestring·enum
The winning outcome of the contractEnum values: yesnopositions[].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-eventspositions[].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.75positions[].realizedPnlstring
Realized profit or loss recorded from sells prior to settlement. Omitted when not available.Example: 0positions[].netProfitstring
Net profit for the position, computed as `payout - costBasis + realizedPnl`. Omitted when `costBasis` is not available.Example: 46.25totalinteger
Total number of settled positions returnedtotalPayoutstring
Sum of `payout` across all returned positionstotalCostBasisstring
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"
}Last modified on