> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/polymarket/users-wallet-pnl>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/polymarket/users-wallet-pnl.mdx>

---

# Polymarket PnL API

A wallet's profit over time, broken down at each point.

`GET /v1/polymarket/users/{wallet}/pnl` returns `data.points`, oldest first. Each point is the same PnL breakdown the stats route returns, including `asOf`, `sourceBlock`, `realized`, `unrealized`, `settled`, `economic`, income by source, fees and volume. `data.interval` and `data.fidelity` echo the range and spacing you got.

`interval` is `6h`, `12h`, `1d`, `1w`, `1m`, `all` or `max`, defaulting to `1m`. `fidelity` is `1h`, `3h`, `12h`, `18h` or `1d`, defaulting to `1d`. A wallet that never traded returns a found answer with an empty points array.

## Request

- **Endpoint:** `GET /v1/polymarket/users/{wallet}/pnl`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by wallet
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/polymarket/users/wallet/pnl/get)
- **Platform page:** [/platforms/polymarket](https://www.socialfetch.dev/platforms/polymarket)

## FAQ

### What is fidelity?

The spacing between points. interval sets how far back the series goes, and fidelity sets how often a point is recorded. A 1m interval with 1d fidelity gives daily points for a month.

### Why are there no points?

A wallet with no trading history returns an empty series. Check lookupStatus and the points array. For a single current snapshot, use the stats route instead of a one-point series.

### Is this a price chart?

No. Each point is the wallet's profit and loss at that time, not a market price. For an outcome token's price series use GET /v1/polymarket/tokens/{tokenId}/price-history.

### 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.
