# Market Top Holders

## Get Prediction Market Top Holders

> Get the largest position holders for a Polymarket prediction market. Positions are\
> computed from on-chain ERC-1155 token transfers on Polygon, with SAFE proxy wallet\
> resolution to identify actual users.\
> \
> \*\*What it helps to answer:\*\*\
> \
> 1\. \*\*Who are the biggest holders in this prediction market?\*\*\
> 2\. \*\*What are the position sizes and entry prices of top holders?\*\*\
> 3\. \*\*What is the unrealized PnL of major positions?\*\*\
> 4\. \*\*Are whales positioned Yes or No?\*\*

```json
{"openapi":"3.1.0","info":{"title":"Nansen API","version":"1.0.0"},"servers":[{"url":"https://api.nansen.ai"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apiKey","description":"API key for authentication"}},"schemas":{"TopHoldersRequest":{"properties":{"market_id":{"type":"string","maxLength":100,"minLength":1,"title":"Market Id","description":"Polymarket market ID"},"pagination":{"$ref":"#/components/schemas/PaginationRequest"},"order_by":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortOrder_TopHolderSortField_"},"type":"array"}],"title":"Order By","description":"Sort order"},"sort":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortOrder_TopHolderSortField_"},"type":"array"}],"title":"Sort","description":"Deprecated: use 'order_by' instead."}},"additionalProperties":false,"type":"object","required":["market_id"],"title":"TopHoldersRequest","description":"Request for top holders endpoint."},"PaginationRequest":{"properties":{"page":{"type":"integer","minimum":1,"title":"Page","description":"Page number (1-based)","default":1},"per_page":{"type":"integer","maximum":1000,"minimum":1,"title":"Per Page","description":"Number of records per page (max 1000)","default":10}},"type":"object","title":"PaginationRequest","description":"Pagination parameters for API requests."},"SortOrder_TopHolderSortField_":{"properties":{"field":{"$ref":"#/components/schemas/TopHolderSortField","description":"Field to sort by"},"direction":{"$ref":"#/components/schemas/SortDirection","description":"Sort direction (ASC or DESC)"}},"type":"object","required":["field","direction"],"title":"SortOrder[TopHolderSortField]"},"TopHolderSortField":{"type":"string","enum":["position_size","unrealized_pnl_usd","avg_entry_price"],"title":"TopHolderSortField","description":"Sortable fields for top holders endpoint."},"SortDirection":{"type":"string","enum":["ASC","DESC"],"title":"SortDirection","description":"Enum for sort directions."},"TopHoldersResponse":{"properties":{"pagination":{"$ref":"#/components/schemas/PaginationInfo"},"data":{"items":{"$ref":"#/components/schemas/TopHolder"},"type":"array","title":"Data","description":"List of top holder records"}},"type":"object","required":["data"],"title":"TopHoldersResponse","description":"Response for top holders endpoint."},"PaginationInfo":{"properties":{"page":{"type":"integer","minimum":1,"title":"Page","description":"Current page number","default":1},"per_page":{"type":"integer","maximum":1000,"minimum":1,"title":"Per Page","description":"Number of records per page","default":10},"is_last_page":{"type":"boolean","title":"Is Last Page","description":"Whether this is the last page","default":true}},"type":"object","title":"PaginationInfo","description":"Pagination information for API responses."},"TopHolder":{"properties":{"market_id":{"type":"string","title":"Market Id","description":"Market ID"},"outcome_index":{"anyOf":[{"type":"integer"}],"title":"Outcome Index","description":"Outcome index"},"address":{"anyOf":[{"type":"string"}],"title":"Address","description":"Holder address (hex)"},"owner_address":{"anyOf":[{"type":"string"}],"title":"Owner Address","description":"SAFE proxy owner address (hex)"},"side":{"anyOf":[{"type":"string"}],"title":"Side","description":"Side held (Yes/No)"},"position_size":{"anyOf":[{"type":"number"}],"title":"Position Size","description":"Token position size"},"avg_entry_price":{"anyOf":[{"type":"number"}],"title":"Avg Entry Price","description":"Average entry price"},"current_price":{"anyOf":[{"type":"number"}],"title":"Current Price","description":"Current price"},"unrealized_pnl_usd":{"anyOf":[{"type":"number"}],"title":"Unrealized Pnl Usd","description":"Unrealized PnL in USD"}},"type":"object","required":["market_id"],"title":"TopHolder","description":"Top holder data from ch_api_pm_top_holders."}},"headers":{"XNansenCreditsUsed":{"description":"Number of credits consumed by this API request","schema":{"type":"string"}},"XNansenCreditsRemaining":{"description":"Total credits remaining in the user's account after this request","schema":{"type":"string"}},"RateLimitLimit":{"description":"Combined rate limit across all configured time windows","schema":{"type":"string"}},"RateLimitRemaining":{"description":"Number of requests remaining in the current limiting window","schema":{"type":"string"}},"RateLimitReset":{"description":"Time in seconds until the rate limit window resets","schema":{"type":"string"}},"XRateLimitLimitSecond":{"description":"Maximum requests allowed per second","schema":{"type":"string"}},"XRateLimitRemainingSecond":{"description":"Requests remaining in the current second","schema":{"type":"string"}},"XRateLimitLimitMinute":{"description":"Maximum requests allowed per minute","schema":{"type":"string"}},"XRateLimitRemainingMinute":{"description":"Requests remaining in the current minute","schema":{"type":"string"}},"RetryAfter":{"description":"Number of seconds to wait before making a new request","schema":{"type":"string"}}},"responses":{"BadRequestError":{"description":"Bad Request - Invalid request parameters or malformed request","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"UnauthorizedError":{"description":"Authentication error - No API key found in request","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"PaymentRequiredError":{"description":"Payment Required - This endpoint supports pay-per-request via the x402 protocol. The `Payment-Required` response header contains a base64-encoded JSON object describing accepted payment options (scheme, network, asset, amount, recipient). To pay, include a `Payment-Signature` header with a base64-encoded signed payment payload. See https://www.x402.org for protocol details.","headers":{"Payment-Required":{"description":"Base64-encoded JSON describing accepted payment options","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"Empty object. Payment details are in the Payment-Required header."}}}},"ForbiddenError":{"description":"Forbidden - User does not have required subscription tier or has exceeded credit limit","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"NotFoundError":{"description":"Not Found - The requested resource was not found","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"ValidationError":{"description":"Validation error - Invalid request parameters","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"array","items":{"type":"object","properties":{"loc":{"type":"array","items":{"type":"string"}},"msg":{"type":"string"},"type":{"type":"string"}}}}}}}}},"TooManyRequestsError":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"},"retry_after":{"type":"integer","description":"Seconds to wait before retrying"}}}}},"headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"InternalServerError":{"description":"Internal Server Error - An unexpected error occurred","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}}},"paths":{"/api/v1/prediction-market/top-holders":{"post":{"tags":["Prediction Markets"],"summary":"Get Prediction Market Top Holders","description":"Get the largest position holders for a Polymarket prediction market. Positions are\ncomputed from on-chain ERC-1155 token transfers on Polygon, with SAFE proxy wallet\nresolution to identify actual users.\n\n**What it helps to answer:**\n\n1. **Who are the biggest holders in this prediction market?**\n2. **What are the position sizes and entry prices of top holders?**\n3. **What is the unrealized PnL of major positions?**\n4. **Are whales positioned Yes or No?**","operationId":"get_prediction_market_top_holders_api_v1_prediction_market_top_holders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopHoldersRequest"}}},"required":true},"responses":{"200":{"description":"Top holder data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopHoldersResponse"}}},"headers":{"X-Nansen-Credits-Used":{"$ref":"#/components/headers/XNansenCreditsUsed"},"X-Nansen-Credits-Remaining":{"$ref":"#/components/headers/XNansenCreditsRemaining"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"X-RateLimit-Limit-Second":{"$ref":"#/components/headers/XRateLimitLimitSecond"},"X-RateLimit-Remaining-Second":{"$ref":"#/components/headers/XRateLimitRemainingSecond"},"X-RateLimit-Limit-Minute":{"$ref":"#/components/headers/XRateLimitLimitMinute"},"X-RateLimit-Remaining-Minute":{"$ref":"#/components/headers/XRateLimitRemainingMinute"}}},"400":{"description":"Bad Request","$ref":"#/components/responses/BadRequestError"},"401":{"description":"Unauthorized","$ref":"#/components/responses/UnauthorizedError"},"402":{"description":"Payment Required","$ref":"#/components/responses/PaymentRequiredError"},"403":{"description":"Forbidden","$ref":"#/components/responses/ForbiddenError"},"404":{"description":"Not Found","$ref":"#/components/responses/NotFoundError"},"422":{"description":"Unprocessable Content","$ref":"#/components/responses/ValidationError"},"429":{"description":"Too Many Requests","$ref":"#/components/responses/TooManyRequestsError"},"500":{"description":"Internal Server Error","$ref":"#/components/responses/InternalServerError"}}}}}}
```
