Prediction Hunt/ API
REST API / Polymarket / Wallet Identity

Wallet Identity (Polymarket)

Consolidated trader profile for any Polymarket wallet — display name, proxy and base address mapping, lifetime volume, lifetime and windowed PnL (24h, 7d, 30d), open-position value, trade count, largest win, and account age. One call turns a bare address into a full trader profile, including the proxy wallet needed for positions and activity lookups.

GET/v2/wallet/{addr}/identity

Query Parameters

addrstring (path)Required

Wallet address — must match ^0x[a-fA-F0-9]{40}$. Lowercased before lookup.

Response Schema

walletstring

Wallet address (lowercased).

has_polymarket_databoolean

True if the wallet has a real Polymarket footprint (name, trades, volume, positions, or a recorded win). Lets you distinguish an active trader from an address that has never traded in a single field.

proxy_walletstring

Polymarket proxy wallet address. Use this for /v2/wallet/{addr}/positions and /v2/polymarket/activity — the base/EOA address returns no results.

base_addressstring

Funding (EOA) address behind the proxy.

primary_addressstring

Primary EVM address linked to the profile.

profile_slugstring

Profile URL slug — username for named accounts, address for anonymous ones.

is_anonymousboolean

True when the wallet has no public Polymarket username.

display_namestring

Public Polymarket display name. Null for anonymous wallets.

pseudonymstring

Public identity handle (same value as display_name).

lifetime_volume_usdnumber

Lifetime trading volume in USDC. Null when unavailable for the wallet.

lifetime_pnl_usdnumber

Cumulative lifetime PnL in USDC, net of trading fees — the same figure shown on the trader's Polymarket P&L chart. Null for low-activity or anonymous wallets.

pnl_1d_usdnumber

Net PnL over the last 24 hours, in USDC.

pnl_1w_usdnumber

Net PnL over the last 7 days, in USDC.

pnl_1m_usdnumber

Net PnL over the last 30 days, in USDC.

positions_value_usdnumber

Current USDC value of all open positions.

position_countinteger

Number of open positions.

trades_countinteger

Total number of trades.

largest_win_usdnumber

Largest single-position win in USDC.

profile_viewsinteger

Profile page view count.

created_atstring

Account creation timestamp.

_metaobject

Source and cache state.

sourcestring

Data source identifier.

cachestring

Whether the response was served from cache (hit), freshly resolved (miss), or the last-known cached value (stale).

cached_atinteger

Unix timestamp the cached entry was written.

ttl_secondsinteger

Cache lifetime in seconds.

Error Responses

All errors return the same envelope. The code field is stable and programmatically branchable; error and message are human-readable. errors[] is present only on validation failures with field-level detail. See the full error code reference →

successboolean

Always `false` on error responses.

errorstring

Short, human-readable title (e.g. 'Invalid API Key.').

messagestring

Human-readable explanation for the error. Safe to surface in UIs.

codestring

Stable, hierarchical machine-readable code (e.g. 'validation.invalid_enum'). Use for programmatic handling.

doc_urlstring

Link to this code's entry in the Error Reference.

errorsobject[]

Optional. Present only on validation failures with field-level detail.

fieldstring

Name of the offending parameter.

codestring

Field-level machine code.

messagestring

Human-readable explanation.

Authentication

API Key

To secure your requests, we strongly recommend passing your API key via the X-API-Key header. This prevents sensitive keys from being exposed in access logs or browser history.

Request HeaderX-API-Key: pmx_test_5e8f...

Rate Limits

API rate limits are enforced based on the tier associated with your API key. Limits are tracked on two dimensions: requests per second and requests per month. Each completed request counts toward the global monthly quota. Separate endpoint-group monthly limits (matched markets, arbitrage, EV) only advance when the response body has success: true.

Usage is returned on responses via headers such as:

Response Headers (global)X-RateLimit-Limit-Second: 10X-RateLimit-Remaining-Second: 9X-RateLimit-Limit-Month: 1000X-RateLimit-Remaining-Month: 842Example (endpoint-group, when applicable)X-RateLimit-Limit-Arb-Month: 500X-RateLimit-Remaining-Arb-Month: 412

If you exceed a rate limit, the API returns a 429 status with a Retry-After header indicating when you can resume.

Request

Live API Key

Demo Mode
Verified

Parameters

Wallet AddressRequired

Response

Click EXECUTE to send a request →