> **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-walletorusername>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/polymarket/users-walletorusername.mdx>

---

# Polymarket User API

A trader's public profile and headline statistics, by wallet or username.

`GET /v1/polymarket/users/{walletOrUsername}` takes a wallet address (`0x` and 40 hex digits) or a username, with or without a leading `@`. `data.user` carries `wallet`, `name`, `pseudonym`, `bio`, `image`, `createdAt`, `verified`, `usernamePublic` and `takerTier`. `data.stats` carries `trades`, `biggestWin`, `profileViews`, `joinedAt`, `volume`, `realizedPnl` and `portfolioValue`.

A username costs one more lookup to find the wallet. A wallet with no profile or no trading history returns `lookupStatus: not_found`; a profile can exist while `stats` is null.

## Request

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

## FAQ

### Should I pass a wallet or a username?

A wallet is one lookup and is exact. A username costs one extra lookup to resolve and can change if the person renames. Use the wallet once you have it, for example from a trade row or the leaderboard.

### Why is stats null on a found user?

The wallet has a public profile but no trading statistics yet, or Polymarket does not report them. Read data.user for the profile and treat stats as optional.

### Does usernamePublic change the name?

Yes. name is present even when the holder does not show the chosen username publicly, and usernamePublic tells you whether it is shown. Respect that flag when you display the profile.

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