# Market Position Details

## Get Prediction Market Position Detail

> Get detailed per-token position data for all holders in a specific prediction market.\
> Includes token balances, entry prices, current prices, and per-token PnL.\
> \
> \*\*What it helps to answer:\*\*\
> \
> 1\. \*\*What are the exact positions of each holder in this market?\*\*\
> 2\. \*\*What is the average entry price vs current price for each position?\*\*\
> 3\. \*\*How much has each token position gained or lost?\*\*

```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":{"PositionDetailRequest":{"properties":{"market_id":{"type":"string","maxLength":100,"minLength":1,"title":"Market Id","description":"Polymarket market ID"},"pagination":{"$ref":"#/components/schemas/PaginationRequest"}},"additionalProperties":false,"type":"object","required":["market_id"],"title":"PositionDetailRequest","description":"Request for position detail 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."},"PositionDetailResponse":{"properties":{"pagination":{"$ref":"#/components/schemas/PaginationInfo"},"data":{"items":{"$ref":"#/components/schemas/PositionDetailItem"},"type":"array","title":"Data","description":"List of position detail records"}},"type":"object","required":["data"],"title":"PositionDetailResponse","description":"Response for position detail 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."},"PositionDetailItem":{"properties":{"address":{"anyOf":[{"type":"string"}],"title":"Address","description":"Holder address (hex)"},"owner_address":{"anyOf":[{"type":"string"}],"title":"Owner Address","description":"SAFE proxy owner address (hex)"},"outcome":{"anyOf":[{"type":"string"}],"title":"Outcome","description":"Outcome label"},"outcome_index":{"anyOf":[{"type":"integer"}],"title":"Outcome Index","description":"Outcome index"},"token_id":{"anyOf":[{"type":"string"}],"title":"Token Id","description":"CLOB token ID"},"balance":{"anyOf":[{"type":"number"}],"title":"Balance","description":"Token balance"},"buy_cost_usd":{"anyOf":[{"type":"number"}],"title":"Buy Cost Usd","description":"Total buy cost in USD"},"buy_tokens":{"anyOf":[{"type":"number"}],"title":"Buy Tokens","description":"Total tokens bought"},"sell_proceeds_usd":{"anyOf":[{"type":"number"}],"title":"Sell Proceeds Usd","description":"Total sell proceeds in USD"},"sell_tokens":{"anyOf":[{"type":"number"}],"title":"Sell Tokens","description":"Total tokens sold"},"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_value_usd":{"anyOf":[{"type":"number"}],"title":"Unrealized Value Usd","description":"Unrealized value in USD"},"redemption_value_usd":{"anyOf":[{"type":"number"}],"title":"Redemption Value Usd","description":"Redemption value in USD"},"token_pnl_usd":{"anyOf":[{"type":"number"}],"title":"Token Pnl Usd","description":"Token PnL in USD"},"event_id":{"anyOf":[{"type":"string"}],"title":"Event Id","description":"Parent event ID"},"event_title":{"anyOf":[{"type":"string"}],"title":"Event Title","description":"Parent event title"},"market_resolved":{"anyOf":[{"type":"boolean"}],"title":"Market Resolved","description":"Whether market is resolved"},"market_id":{"type":"string","title":"Market Id","description":"Market ID"}},"type":"object","required":["market_id"],"title":"PositionDetailItem","description":"Position detail data from ch_api_pm_position_detail."}},"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/position-detail":{"post":{"tags":["Prediction Markets"],"summary":"Get Prediction Market Position Detail","description":"Get detailed per-token position data for all holders in a specific prediction market.\nIncludes token balances, entry prices, current prices, and per-token PnL.\n\n**What it helps to answer:**\n\n1. **What are the exact positions of each holder in this market?**\n2. **What is the average entry price vs current price for each position?**\n3. **How much has each token position gained or lost?**","operationId":"get_prediction_market_position_detail_api_v1_prediction_market_position_detail_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PositionDetailRequest"}}},"required":true},"responses":{"200":{"description":"Position detail data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PositionDetailResponse"}}},"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"}}}}}}
```
