Skip to content
scrapeatlas.Dashboard

Get a Polymarket trader profile

Try in Playground

Retrieve a Polymarket trader by @handle, wallet or profile URL: public profile, trade count, biggest win, views, join date, all-time PnL breakdown, current portfolio value and all-time leaderboard ranks.

GET/v1/polymarket/profilex-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
1
userstringrequiredquery

Required. Trading wallet or owner wallet (0x plus 40 hex characters), @handle, or a polymarket.com/@handle or /profile/<wallet> URL. A handle is resolved to its trading wallet from the public profile page.

min 1 chars · max 600 chars

Example0x1111111111111111111111111111111111111111
Response fields
46
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Public Polymarket page the data describes, or the public API URL when no page exists (an order book or price history requested by token ID).

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

complete is false when a warning names an omission, such as market_limit, level_limit, point_limit, comment_row_limit or stats_unavailable.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

walletstring

The trader’s trading wallet, which the statistics describe.

handlestringoptional

Lowercase handle, when the request named one.

Public profile: proxyWallet, name, pseudonym, displayUsernamePublic, bio, profileImage, xUsername, verifiedBadge, createdAt, takerTier, takerTierName and weightedVolume. null when the wallet has no public profile.

profile.proxyWalletstring

Always included.

profile.namestringoptional

Optional.

profile.pseudonymstringoptional

Optional.

profile.displayUsernamePublicbooleanoptional

Optional.

profile.biostringoptional

Optional.

profile.profileImagestringoptional

Optional.

profile.xUsernamestringoptional

Optional.

profile.verifiedBadgebooleanoptional

Optional.

profile.createdAtstringoptional

Optional.

profile.takerTierintegeroptional

Optional.

profile.takerTierNamestringoptional

Optional.

profile.weightedVolumenumberoptional

Optional.

Profile statistics: proxy_wallet, trades (distinct markets traded), biggest_win (USDC), views, join_date (Unix seconds or null) and all_time_pnl (the source’s named all-time PnL, income, fee and volume amounts, or null).

stats.proxy_walletstring

Always included.

stats.tradesinteger

Always included.

stats.biggest_winnumber

Always included.

stats.viewsinteger

Always included.

stats.join_dateintegernullable

Always included.

stats.all_time_pnlobjectnullable

Always included.

valuenumbernullable

Current portfolio value in USDC, or null.

All-time leaderboard standing: user_id, user_name, pnl, volume, rank_pnl, rank_volume, profile_image, x_username and verified; null when the trader is not ranked.

rank.user_idstring

Always included.

rank.user_namestring

Always included.

rank.pnlnumber

Always included.

rank.volumenumber

Always included.

rank.profile_imagestring

Always included.

rank.x_usernamestring

Always included.

rank.verifiedboolean

Always included.

rank.rank_pnlinteger

Always included.

rank.rank_volumeinteger

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
11
HTTPfailure.codeMeaning
200partialUsable data with level_limit, point_limit, market_limit, comment_row_limit or *_unavailable warnings.
400invalid_requestMissing, duplicate, conflicting, unsafe or unsupported parameters, a URL outside polymarket.com, or a cursor the source rejects.
401unauthorizedMissing or invalid worker API key.
404not_foundUnknown event, market, outcome, token, series, handle or wallet.
429upstream_rate_limitedPolymarket throttled the request; no automatic retry.
502upstream_challengedPolymarket rejected the request or answered with a challenge page.
502unsupported_pageMalformed, mismatched or non-JSON source data, or a profile page without its wallet address.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots and queue places are occupied.
504timeoutTotal request deadline expired.