# Perp Trades

## Get TGM Perp Trades Data

> Retrieve perpetual trade data for a specific token on Hyperliquid. Shows individual trades with detailed information including trader address, trade side (Long/Short), action type (Add/Reduce/Open/Close), order type (Market/Limit), and trade metrics.\
> \
> \*\*Key Features:\*\*\
> \- Hyperliquid perpetual contracts only\
> \- Smart money filtering capabilities\
> \- Detailed trade breakdown with parsed action fields\
> \- Support for both Long and Short position trading\
> \- Market and Limit order types\
> \
> \*\*Request Parameters:\*\*\
> \- \`token\_symbol\`: Token symbol to fetch trades for (e.g., "BTC", "ETH")\
> \- \`date\`: Date range for the trades\
> \- \`filters\`: Additional filters for side, action, order\_type, etc.\
> \- \`pagination\`: Page and per\_page parameters

```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":{"TGMPerpTradesRequest":{"properties":{"token_symbol":{"type":"string","title":"Token Symbol","description":"Token symbol"},"date":{"$ref":"#/components/schemas/DateRange","description":"ISO 8601 date-time range object with optional from and to fields"},"pagination":{"$ref":"#/components/schemas/PaginationRequest","description":"Pagination parameters"},"filters":{"anyOf":[{"$ref":"#/components/schemas/TGMPerpTradesFilters"}],"description":"Additional filters to apply to the query."},"order_by":{"anyOf":[{"items":{"$ref":"#/components/schemas/SortOrder_TGMPerpTradesSortField_"},"type":"array"}],"title":"Order By","description":"Custom sort order to override the endpoint's default ordering.\n\nExamples:\n- [{\"field\": \"block_timestamp\", \"direction\": \"DESC\"}] - Sort by timestamp descending\n- [{\"field\": \"value_usd\", \"direction\": \"DESC\"}] - Sort by trade value descending\n\nDefault: block_timestamp DESC, transaction_hash ASC, trader_address ASC (ensures stable pagination and prevents duplicate rows)"}},"additionalProperties":false,"type":"object","required":["token_symbol","date"],"title":"TGMPerpTradesRequest","description":"Request model for TGM perp trades endpoint.\n\nThis endpoint provides perp trades data for a specific token."},"DateRange":{"properties":{"from":{"anyOf":[{"type":"string"}],"title":"From","description":"Start date in ISO 8601 format (e.g., 2025-01-01T00:00:00Z or 2025-01-01)"},"to":{"anyOf":[{"type":"string"}],"title":"To","description":"End date in ISO 8601 format (e.g., 2025-01-31T23:59:59Z or 2025-01-31)"}},"type":"object","title":"DateRange","description":"Date range model matching the API schema."},"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."},"TGMPerpTradesFilters":{"properties":{"trader_address":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trader Address","description":"Trader address filter"},"trader_address_label":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Trader 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)"},"action":{"anyOf":[{"$ref":"#/components/schemas/PerpActionType"},{"items":{"$ref":"#/components/schemas/PerpActionType"},"type":"array"},{"type":"null"}],"title":"Action","description":"Action filter with combined buy/sell direction (e.g., 'Buy - Add Long', 'Sell - Reduce Long')"},"order_type":{"anyOf":[{"$ref":"#/components/schemas/OrderType"},{"items":{"$ref":"#/components/schemas/OrderType"},"type":"array"},{"type":"null"}],"title":"Order Type","description":"Order type filter (MARKET or LIMIT)"},"token_amount":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Token amount range filter"},"price_usd":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Price range filter in USD"},"value_usd":{"anyOf":[{"$ref":"#/components/schemas/NumericRangeFilter"}],"description":"Trade value range filter in USD"},"include_smart_money_labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/SmartMoneyFilterType"},"type":"array"}],"title":"Include Smart Money Labels","description":"Include smart money labels"},"exclude_smart_money_labels":{"anyOf":[{"items":{"$ref":"#/components/schemas/SmartMoneyFilterType"},"type":"array"}],"title":"Exclude Smart Money Labels","description":"Exclude smart money labels"}},"additionalProperties":false,"type":"object","title":"TGMPerpTradesFilters","description":"Filters for TGM perp trades endpoint.\n\nThese filters control which perp trades are included in the results."},"PositionSide":{"type":"string","enum":["Long","Short"],"title":"PositionSide","description":"Shared enum for position side direction."},"PerpActionType":{"type":"string","enum":["Buy - Add Long","Buy - Reduce Short","Buy - Open Long","Buy - Close Short","Sell - Add Short","Sell - Reduce Long","Sell - Open Short","Sell - Close Long"],"title":"PerpActionType","description":"Shared enum for perpetual trade action types (combined buy/sell with position actions)."},"OrderType":{"type":"string","enum":["MARKET","LIMIT"],"title":"OrderType","description":"Order type."},"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"},"SmartMoneyFilterType":{"type":"string","enum":["Fund","Smart Trader","30D Smart Trader","90D Smart Trader","180D Smart Trader","Smart HL Perps Trader"],"title":"SmartMoneyFilterType","description":"Enum for smart money filter options."},"SortOrder_TGMPerpTradesSortField_":{"properties":{"field":{"$ref":"#/components/schemas/TGMPerpTradesSortField","description":"Field to sort by"},"direction":{"$ref":"#/components/schemas/SortDirection","description":"Sort direction (ASC or DESC)"}},"type":"object","required":["field","direction"],"title":"SortOrder[TGMPerpTradesSortField]"},"TGMPerpTradesSortField":{"type":"string","enum":["block_timestamp","token_amount","value_usd","transaction_hash","trader_address"],"title":"TGMPerpTradesSortField","description":"Enum for sortable fields in TGM perp trades."},"SortDirection":{"type":"string","enum":["ASC","DESC"],"title":"SortDirection","description":"Enum for sort directions."},"TGMPerpTradesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TGMPerpTrade"},"type":"array","title":"Data","description":"List of TGM perp trade records"},"pagination":{"$ref":"#/components/schemas/PaginationInfo","description":"Pagination information"}},"type":"object","required":["data","pagination"],"title":"TGMPerpTradesResponse","description":"Response model for TGM perp trades endpoint.\n\nContains a list of perp trade records with pagination and metadata."},"TGMPerpTrade":{"properties":{"trader_address_label":{"anyOf":[{"type":"string"}],"title":"Trader Address Label","description":"The label associated with the trader"},"trader_address":{"type":"string","title":"Trader Address","description":"The trader's address"},"token_symbol":{"anyOf":[{"type":"string"}],"title":"Token Symbol","description":"The symbol of the token"},"side":{"anyOf":[{"$ref":"#/components/schemas/PositionSide"}],"description":"The side of the position (Long or Short)"},"action":{"type":"string","title":"Action","description":"The action taken by the trader (Add, Reduce, Open, Close)"},"token_amount":{"anyOf":[{"type":"number"}],"title":"Token Amount","description":"The amount of the specified token traded"},"price_usd":{"anyOf":[{"type":"number"}],"title":"Price Usd","description":"Average fill price in USD across all fills in the trade, from exchange data."},"value_usd":{"anyOf":[{"type":"number"}],"title":"Value Usd","description":"The value in USD"},"type":{"$ref":"#/components/schemas/OrderType","description":"The order type (MARKET or LIMIT)"},"block_timestamp":{"type":"string","title":"Block Timestamp","description":"The block timestamp for the transaction"},"transaction_hash":{"type":"string","title":"Transaction Hash","description":"A representative transaction hash for this trade. Note: A single row may aggregate multiple fills that occurred at the same timestamp. If the trader had fills across multiple transactions at the exact same millisecond, only one transaction_hash is shown. The token_amount and value_usd reflect the total across all fills."}},"type":"object","required":["trader_address","action","type","block_timestamp","transaction_hash"],"title":"TGMPerpTrade","description":"Individual TGM perp trade record.\n\nRepresents a single perp trade with parsed action fields."},"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-trades":{"post":{"tags":["Token God Mode"],"summary":"Get TGM Perp Trades Data","description":"Retrieve perpetual trade data for a specific token on Hyperliquid. Shows individual trades with detailed information including trader address, trade side (Long/Short), action type (Add/Reduce/Open/Close), order type (Market/Limit), and trade metrics.\n\n**Key Features:**\n- Hyperliquid perpetual contracts only\n- Smart money filtering capabilities\n- Detailed trade breakdown with parsed action fields\n- Support for both Long and Short position trading\n- Market and Limit order types\n\n**Request Parameters:**\n- `token_symbol`: Token symbol to fetch trades for (e.g., \"BTC\", \"ETH\")\n- `date`: Date range for the trades\n- `filters`: Additional filters for side, action, order_type, etc.\n- `pagination`: Page and per_page parameters","operationId":"get_tgm_perp_trades_api_v1_tgm_perp_trades_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TGMPerpTradesRequest"}}},"required":true},"responses":{"200":{"description":"TGM perp trades data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TGMPerpTradesResponse"}}},"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-trades.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.
