Polymarket hub

Polymarket User Stats API

Headline figures and a PnL breakdown by source for one wallet.

GET /v1/polymarket/users/{wallet}/stats

1 credit Failed requests are free

About this endpoint

GET /v1/polymarket/users/{wallet}/stats returns data.stats and data.pnl. stats carries trades, biggestWin, profileViews, joinedAt, volume, realizedPnl and portfolioValue. pnl breaks profit and loss down by source: realizedMarket, realizedLp, realizedCombo, realized, unrealized, positionPnl, tradePnl, rewards, makerRebate, yieldIncome, referralIncome, sponsoredIncome, walletIncome, fees, deposits, withdrawals, cashflowNet, settled, economic, volume and trades.

stats.trades is Polymarket's headline count for the profile. pnl.trades is the count used in the profit and loss calculation, so the two can differ. pnl.asOf and pnl.sourceBlock say when and at which Polygon block the figures were computed. A wallet that has never traded returns lookupStatus: not_found.

Polymarket User Stats API FAQ

What is the difference between settled and economic?

settled is realized profit plus income, such as rewards and rebates. economic adds unrealized profit, so it moves with open positions. Use both to separate banked results from paper results.

Why do different routes report different volume?

This route reports volume from the PnL ledger, while the user route reports a headline figure and other routes report market or event volume. They cover different scopes and may not match to the cent.

How current are the figures?

pnl.asOf is the time of the computation and pnl.sourceBlock is the Polygon block it used. Figures can lag the live book. Read books or prices when you need the current quote.

What does lookupStatus mean on this route?

found means the object or list was returned. not_found means no matching object exists. HTTP 200 only means the request finished, so branch on data.lookupStatus before storing a row.

How much does this route cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.