# Perp Positions

{% hint style="warning" %}
**Update:** A `premium_labels` parameter is being added to this endpoint. From April 1, the default changes from `true` to `false` .
{% endhint %}

## Get TGM Perp Positions Data

> Retrieve current perpetual positions for a specific token on Hyperliquid. Shows active positions with detailed metrics including entry price, mark price, leverage, PnL, and liquidation price.\
> \
> \*\*Key Features:\*\*\
> \- Hyperliquid perpetual contracts only (no chain field needed)\
> \- Real-time position tracking with live PnL calculations\
> \- Leverage and margin information\
> \- Smart money filtering capabilities\
> \- Support for both Long and Short positions\
> \
> \*\*What it helps to answer:\*\*\
> \
> 1\. \*\*What are the current perp positions for a specific token?\*\*\
> 2\. \*\*Which addresses have the largest positions by value?\*\*\
> 3\. \*\*What are the unrealized gains/losses on current positions?\*\*\
> 4\. \*\*What leverage levels are traders using?\*\*\
> 5\. \*\*Which smart money wallets are holding positions?\*\*

```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":{"TGMPerpPositionsRequest":{"properties":{"token_symbol":{"type":"string","title":"Token Symbol","description":"Token symbol"},"label_type":{"$ref":"#/components/schemas/TGMPerpPositionsLabel","description":"Label type filter","default":"all_traders"},"pagination":{"$ref":"#/components/schemas/PaginationRequest","description":"Pagination parameters"},"filters":{"anyOf":[{"$ref":"#/components/schemas/TGMPerpPositionsFilters"}],"description":"Additional filters to apply to the query."},"order_by":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortOrder_TGMPerpPositionsSortField_"},"type":"array"}],"title":"Order By","description":"Custom sort order to override the endpoint's default ordering.\n\nExamples:\n- [{\"field\": \"position_value_usd\", \"direction\": \"DESC\"}] - Sort by position value USD descending\n- [{\"field\": \"upnl_usd\", \"direction\": \"ASC\"}] - Sort by unrealized PnL ascending\n- [{\"field\": \"leverage\", \"direction\": \"DESC\"}] - Sort by leverage descending"}},"additionalProperties":false,"type":"object","required":["token_symbol"],"title":"TGMPerpPositionsRequest","description":"Request model for TGM perp positions endpoint.\n\nThis endpoint provides perp positions data for a specific token."},"TGMPerpPositionsLabel":{"type":"string","enum":["smart_money","all_traders","whale","public_figure"],"title":"TGMPerpPositionsLabel","description":"TGM perp positions label types."},"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."},"TGMPerpPositionsFilters":{"properties":{"include_smart_money_labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/LabelType"},"type":"array"}],"title":"Include Smart Money Labels","description":"Include smart money labels for traders"},"exclude_smart_money_labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/LabelType"},"type":"array"}],"title":"Exclude Smart Money Labels","description":"Exclude smart money labels for traders"},"address":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Address","description":"Trader address filter"},"address_label":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Address Label","description":"Trader label filter"},"side":{"anyOf":[{"$ref":"#/components/schemas/PositionSide"},{"items":{"$ref":"#/components/schemas/PositionSide"},"type":"array"},{"type":"null"}],"title":"Side","description":"Position side filter (Long or Short)"},"position_value_usd":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Position value range filter in USD"},"position_size":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Position size range filter (token amount)"},"entry_price":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Entry price range filter"},"upnl_usd":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Unrealized PnL range filter in USD"},"funding_usd":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Funding range filter in USD"}},"additionalProperties":false,"type":"object","title":"TGMPerpPositionsFilters","description":"Filters for TGM perp positions endpoint.\n\nThese filters control which perp positions are included in the analysis."},"LabelType":{"type":"string","enum":["30D Smart Trader","90D Smart Trader","180D Smart Trader","Fund","Smart Trader","Public Figure","Exchange","Whale","BananaGun Bot User","Top Maestro Bot User","Top BananaGun Bot User","Maestro Bot User","Early MAGIC Miner","First Mover LP","First Mover Staking","Profitable LP","Smart HL Perps Trader"],"title":"LabelType","description":"Enum for label filter options."},"PositionSide":{"type":"string","enum":["Long","Short"],"title":"PositionSide","description":"Shared enum for position side direction."},"NumericRangeFilter":{"properties":{"min":{"anyOf":[{"type":"number"}],"title":"Min","description":"Minimum value (inclusive)"},"max":{"anyOf":[{"type":"number"}],"title":"Max","description":"Maximum value (inclusive)"}},"type":"object","title":"NumericRangeFilter","description":"Filter for numeric values (floats) with optional min/max bounds.\nUse for prices, volumes, ratios, and other decimal values. - Values between -10.5 and 100.75"},"SortOrder_TGMPerpPositionsSortField_":{"properties":{"field":{"$ref":"#/components/schemas/TGMPerpPositionsSortField","description":"Field to sort by"},"direction":{"$ref":"#/components/schemas/SortDirection","description":"Sort direction (ASC or DESC)"}},"type":"object","required":["field","direction"],"title":"SortOrder[TGMPerpPositionsSortField]"},"TGMPerpPositionsSortField":{"type":"string","enum":["address","address_label","side","position_value_usd","position_size","leverage","entry_price","mark_price","liquidation_price","funding_usd","upnl_usd"],"title":"TGMPerpPositionsSortField","description":"Enum for sortable fields in TGM perp positions."},"SortDirection":{"type":"string","enum":["ASC","DESC"],"title":"SortDirection","description":"Enum for sort directions."},"TGMPerpPositionsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TGMPerpPosition"},"type":"array","title":"Data","description":"List of TGM perp position records"},"pagination":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination information"}},"type":"object","required":["data","pagination"],"title":"TGMPerpPositionsResponse","description":"Response model for TGM perp positions endpoint.\n\nContains a list of perp position records with pagination and metadata."},"TGMPerpPosition":{"properties":{"address":{"anyOf":[{"type":"string"}],"title":"Address","description":"The wallet address of the trader."},"address_label":{"anyOf":[{"type":"string"}],"title":"Address Label","description":"Wallet or labeled entity holding the position."},"side":{"anyOf":[{"$ref":"#/components/schemas/PositionSide"}],"description":"Position direction (Long/Short)"},"position_value_usd":{"anyOf":[{"type":"number"}],"title":"Position Value Usd","description":"USD notional size of the position."},"position_size":{"anyOf":[{"type":"number"}],"title":"Position Size","description":"The position size (token amount)."},"leverage":{"type":"string","title":"Leverage","description":"The leverage applied to the position."},"leverage_type":{"anyOf":[{"type":"string"}],"title":"Leverage Type","description":"The type of leverage used, e.g., cross or isolated."},"entry_price":{"anyOf":[{"type":"number"}],"title":"Entry Price","description":"Average price where the position was opened."},"mark_price":{"anyOf":[{"type":"number"}],"title":"Mark Price","description":"The current mark price of the asset."},"liquidation_price":{"anyOf":[{"type":"number"}],"title":"Liquidation Price","description":"The price at which the position would be liquidated."},"funding_usd":{"anyOf":[{"type":"number"}],"title":"Funding Usd","description":"Net funding paid (-) or received (+) since entry."},"upnl_usd":{"anyOf":[{"type":"number"}],"title":"Upnl Usd","description":"Unrealized profit/loss including funding."}},"type":"object","required":["leverage"],"title":"TGMPerpPosition","description":"Individual TGM perp position record.\n\nRepresents a single perp position."},"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."}},"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"}},"PaymentReceipt":{"description":"Base64url-encoded MPP receipt returned on successful paid requests via Authorization: Payment","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"}},"PaymentRequired":{"description":"Base64-encoded x402 payment options returned on 402 responses for x402 clients","schema":{"type":"string"}},"WWWAuthenticatePayment":{"description":"MPP payment challenge returned on 402 responses, for example `Payment id=\"...\", realm=\"api.nansen.ai\", method=\"tempo\", intent=\"charge\", request=\"...\"`","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 x402 and MPP. x402 responses advertise payment options in `Payment-Required`; MPP responses advertise a fresh `WWW-Authenticate: Payment ...` challenge. Successful MPP responses may include `Payment-Receipt`.","headers":{"Payment-Required":{"$ref":"#/components/headers/PaymentRequired"},"WWW-Authenticate":{"$ref":"#/components/headers/WWWAuthenticatePayment"}},"content":{"application/json":{"schema":{"type":"object","description":"Problem-details body for x402 or MPP payment challenges."}}}},"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/tgm/perp-positions":{"post":{"tags":["Token God Mode"],"summary":"Get TGM Perp Positions Data","description":"Retrieve current perpetual positions for a specific token on Hyperliquid. Shows active positions with detailed metrics including entry price, mark price, leverage, PnL, and liquidation price.\n\n**Key Features:**\n- Hyperliquid perpetual contracts only (no chain field needed)\n- Real-time position tracking with live PnL calculations\n- Leverage and margin information\n- Smart money filtering capabilities\n- Support for both Long and Short positions\n\n**What it helps to answer:**\n\n1. **What are the current perp positions for a specific token?**\n2. **Which addresses have the largest positions by value?**\n3. **What are the unrealized gains/losses on current positions?**\n4. **What leverage levels are traders using?**\n5. **Which smart money wallets are holding positions?**","operationId":"get_tgm_perp_positions_api_v1_tgm_perp_positions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TGMPerpPositionsRequest"}}},"required":true},"responses":{"200":{"description":"TGM perp positions data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TGMPerpPositionsResponse"}}},"headers":{"X-Nansen-Credits-Used":{"$ref":"#/components/headers/XNansenCreditsUsed"},"X-Nansen-Credits-Remaining":{"$ref":"#/components/headers/XNansenCreditsRemaining"},"Payment-Receipt":{"$ref":"#/components/headers/PaymentReceipt"},"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"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nansen.ai/api/token-god-mode/perp-positions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
