Skip to main content
GET
/
v2
/
wallets
/
{address}
/
closed-positions
Closed positions with metadata
curl --request GET \
  --url https://api.polynode.dev/v2/wallets/{address}/closed-positions \
  --header 'x-api-key: <api-key>'
{
  "wallet": "0xbddf61af533ff524d27154e589d2d7a81510c684",
  "count": 1,
  "offset": 0,
  "limit": 1,
  "positions": [
    {
      "proxy_wallet": "0xbddf61af533ff524d27154e589d2d7a81510c684",
      "asset": "34158857981196154020624191931838064546543114916900689904269497497174344049047",
      "condition_id": "0x5346538cbfc880da50fe6b269a47e4f7cd8a38b2b120d85b1bc392d8cde6ced4",
      "avg_price": 0.316481,
      "total_bought": 654236.312162,
      "realized_pnl": 447182.949852,
      "cur_price": 1,
      "title": "Nuggets vs. Warriors",
      "slug": "nba-den-gsw-2026-02-22",
      "icon": "https://polymarket-upload.s3.us-east-2.amazonaws.com/super+cool+basketball+in+red+and+blue+wow.png",
      "event_slug": "nba-den-gsw-2026-02-22",
      "outcome": "Warriors",
      "outcome_index": 1,
      "opposite_outcome": "Nuggets",
      "opposite_asset": "107945275283604973510604597780969572155224468096168425689613528391046536169017",
      "end_date": "2026-02-22T00:00:00Z",
      "timestamp": 1771817602
    }
  ]
}
Returns closed positions for a wallet with market metadata (title, outcome, slug) and realized P&L. Supports pagination and sorting. This complements the onchain positions endpoint. The onchain endpoint returns all positions with accurate P&L but no market metadata. This endpoint returns closed positions with metadata but only those that Polymarket has indexed.

Request

GET /v2/wallets/{address}/closed-positions
ParameterTypeDefaultDescription
addresspathWallet address (0x-prefixed)
limitquery10Results per page (max 50)
offsetquery0Pagination offset
sortByqueryTIMESTAMPSort field: REALIZEDPNL, AVGPRICE, PRICE, TITLE, TIMESTAMP
sortDirectionqueryDESCASC or DESC
marketqueryFilter by market slug
titlequeryFilter by title substring

Response

{
  "wallet": "0xbddf61af533ff524d27154e589d2d7a81510c684",
  "count": 3,
  "offset": 0,
  "limit": 3,
  "positions": [
    {
      "proxy_wallet": "0xbddf61af533ff524d27154e589d2d7a81510c684",
      "asset": "34158857981196154020624191931838064546543114916900689904269497497174344049047",
      "condition_id": "0x5346538cbfc880da50fe6b269a47e4f7cd8a38b2b120d85b1bc392d8cde6ced4",
      "avg_price": 0.316481,
      "total_bought": 654236.312162,
      "realized_pnl": 447182.949852,
      "cur_price": 1,
      "title": "Nuggets vs. Warriors",
      "slug": "nba-den-gsw-2026-02-22",
      "icon": "https://polymarket-upload.s3.us-east-2.amazonaws.com/super+cool+basketball+in+red+and+blue+wow.png",
      "event_slug": "nba-den-gsw-2026-02-22",
      "outcome": "Warriors",
      "outcome_index": 1,
      "opposite_outcome": "Nuggets",
      "opposite_asset": "107945275283604973510604597780969572155224468096168425689613528391046536169017",
      "end_date": "2026-02-22T00:00:00Z",
      "timestamp": 1771817602
    }
  ]
}
FieldDescription
walletQueried wallet address (lowercased)
countNumber of positions returned
offsetCurrent pagination offset
limitResults per page
proxy_walletPolymarket proxy wallet address
assetToken ID for this position (called token_id on the onchain positions endpoint)
condition_idCTF condition ID
avg_priceVolume-weighted average entry price
total_boughtTotal tokens acquired
realized_pnlProfit or loss for this position in USDC
cur_priceCurrent token price (1.0 for resolved winners, 0.0 for losers)
titleMarket title
slugMarket slug
iconMarket icon URL
event_slugParent event slug
outcomeOutcome name for this position
outcome_indexIndex of this outcome (0 or 1 for binary markets)
opposite_outcomeName of the other outcome
opposite_assetToken ID of the other outcome
end_dateMarket end date (ISO 8601)
timestampPosition timestamp (UNIX seconds)

Example

# Top 5 closed positions by realized P&L
curl "https://api.polynode.dev/v2/wallets/0xbddf61af533ff524d27154e589d2d7a81510c684/closed-positions?limit=5&sortBy=REALIZEDPNL&sortDirection=DESC" \
  -H "x-api-key: YOUR_KEY"

Authorizations

x-api-key
string
header
required

Path Parameters

address
string
required

Wallet address (0x-prefixed)

Query Parameters

limit
integer
default:10

Results per page (max 50)

Required range: 1 <= x <= 50
offset
integer
default:0

Pagination offset

Required range: x >= 0
sortBy
enum<string>
default:TIMESTAMP

Sort field

Available options:
REALIZEDPNL,
AVGPRICE,
PRICE,
TITLE,
TIMESTAMP
sortDirection
enum<string>
default:DESC

Sort direction

Available options:
ASC,
DESC
market
string

Filter by market slug

title
string

Filter by title substring

Response

Closed positions with metadata