{"components":{"schemas":{"AccessListEntry":{"additionalProperties":false,"properties":{"address":{"description":"Account address (0x-prefixed)","type":"string"},"storageKeys":{"description":"List of storage slot keys (0x-prefixed hex)","items":{"type":"string"},"type":["array","null"]}},"required":["address","storageKeys"],"type":"object"},"AirdropActivityItem":{"additionalProperties":false,"properties":{"coin_name":{"description":"Project/coin name","type":"string"},"coin_symbol":{"description":"Token symbol","type":"string"},"created_at":{"description":"Activity creation time (Unix seconds)","format":"int64","type":"integer"},"followers_count":{"description":"Twitter followers count","type":"string"},"id":{"description":"Activity identifier","type":"string"},"reward":{"description":"Reward description","type":"string"},"reward_date":{"description":"Expected reward date","type":"string"},"reward_type":{"description":"Reward type (TOKEN, NFT, etc.)","type":"string"},"status":{"description":"Activity status (ACTIVE, ENDED, etc.)","type":"string"},"total_raise":{"description":"Total funds raised in USD","format":"int64","type":"integer"},"updated_at":{"description":"Last update time (Unix seconds)","format":"int64","type":"integer"},"xscore":{"description":"Social score","type":"string"}},"required":["id","coin_name","status","reward","reward_type","created_at","updated_at"],"type":"object"},"AirdropSearchItem":{"additionalProperties":false,"properties":{"coin_symbol":{"description":"Token ticker symbol","type":"string"},"followers_count":{"description":"X/Twitter follower count (0 if unknown)","format":"int64","type":"integer"},"last_status_update":{"description":"Last status change as Unix seconds","format":"int64","type":"integer"},"logo_url":{"description":"Project logo image URL","type":"string"},"project_id":{"description":"Surf project UUID if linked","type":"string"},"project_name":{"description":"Project/coin name","type":"string"},"reward_date":{"description":"Expected reward date as Unix seconds (0 if unknown)","format":"int64","type":"integer"},"reward_type":{"description":"Reward type: airdrop, points, whitelist, nft, role, ambassador","type":"string"},"status":{"description":"Airdrop lifecycle stage: `POTENTIAL` (speculated, tasks open), `CONFIRMED` (announced, tasks open), `SNAPSHOT` (eligibility snapshot taken), `VERIFICATION` (claim window open), `REWARD_AVAILABLE` (ready to claim), `DISTRIBUTED` (sent, historical)","type":"string"},"task_summary":{"$ref":"#/components/schemas/AirdropTaskSummary","description":"Aggregated task statistics"},"tasks":{"description":"Full task list (only with include_tasks=true)","items":{"$ref":"#/components/schemas/AirdropTaskItem"},"type":["array","null"]},"total_raise":{"description":"Total project fundraise in USD (0 if unknown)","format":"int64","type":"integer"},"xscore":{"description":"CryptoRank social score (0 if unknown)","format":"int64","type":"integer"}},"required":["project_name","status","total_raise","xscore","followers_count","reward_date","last_status_update"],"type":"object"},"AirdropTaskItem":{"additionalProperties":false,"properties":{"blockchains":{"description":"Supported blockchain names","items":{"type":"string"},"type":["array","null"]},"close_date":{"description":"Task close date as Unix seconds (0 if unknown)","format":"int64","type":"integer"},"cost":{"description":"Participation cost in USD (0 = free)","format":"int32","type":"integer"},"external_link":{"description":"Public participation URL","type":"string"},"is_exclusive":{"description":"Whether task is exclusive","type":"boolean"},"open_date":{"description":"Task open date as Unix seconds (0 if unknown)","format":"int64","type":"integer"},"status":{"description":"Task status: OPEN, CLOSED, UPCOMING","type":"string"},"time_minutes":{"description":"Estimated time in minutes","format":"int32","type":"integer"},"title":{"description":"Task title","type":"string"},"type":{"description":"Task type: social, testnet, mainnet, staking, trading, etc.","type":"string"}},"required":["title","type","status","is_exclusive","cost","time_minutes","open_date","close_date"],"type":"object"},"AirdropTaskSummary":{"additionalProperties":false,"properties":{"open":{"description":"Number of currently open tasks","format":"int32","type":"integer"},"total":{"description":"Total number of tasks","format":"int32","type":"integer"},"types":{"description":"Distinct task types","items":{"type":"string"},"type":["array","null"]}},"required":["total","open","types"],"type":"object"},"AnalyticsBody":{"additionalProperties":false,"properties":{"category_trends":{"description":"Daily volume/OI time series by platform. When category is omitted, values are summed across all categories.","items":{"$ref":"#/components/schemas/CategoryDailyPoint"},"type":["array","null"]},"momentum_markets":{"description":"Per-market momentum signals sorted by sort_by","items":{"$ref":"#/components/schemas/MomentumItem"},"type":["array","null"]},"momentum_summary":{"$ref":"#/components/schemas/MomentumSummary","description":"Distribution of momentum signals (within category, or globally when category is omitted)"},"top_markets":{"description":"Top markets by open interest (within category, or globally when category is omitted)","items":{"$ref":"#/components/schemas/DiscoverMarketItem"},"type":["array","null"]}},"required":["category_trends","top_markets","momentum_summary","momentum_markets"],"type":"object"},"AsyncSQLJobError":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable error code","type":"string"},"message":{"description":"Human-readable failure detail","type":"string"}},"required":["code","message"],"type":"object"},"AsyncSQLJobRejectedError":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/AsyncSQLJobRejectedError.json"],"format":"uri","readOnly":true,"type":"string"},"error":{"$ref":"#/components/schemas/AsyncSQLJobRejectedErrorDetail"}},"required":["error"],"type":"object"},"AsyncSQLJobRejectedErrorDetail":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable rejection code","enum":["ASYNC_SQL_QUEUE_FULL","ASYNC_SQL_CIRCUIT_OPEN"],"type":"string"},"job_id":{"description":"Null because a rejected request does not create a job","format":"uuid","type":["string","null"]},"message":{"description":"Human-readable rejection detail","type":"string"},"query_id":{"description":"Null because a rejected request does not start a ClickHouse query","format":"uuid","type":["string","null"]},"recommended_action":{"enum":["wait_and_retry","narrow_query"],"type":"string"},"request_id":{"description":"Caller-visible request correlation identifier","type":"string"},"retry_after_ms":{"format":"int64","minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"enum":["rejected"],"type":"string"}},"required":["code","message","request_id","job_id","query_id","status","retryable","retry_after_ms","recommended_action"],"type":"object"},"AsyncSQLJobResponse":{"additionalProperties":false,"properties":{"cancellation_requested":{"description":"Whether cancellation has been durably requested and is awaiting worker confirmation","type":"boolean"},"created_at":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"csv_url":{"type":"string"},"elapsed_ms":{"format":"int64","type":"integer"},"error":{"$ref":"#/components/schemas/AsyncSQLJobError"},"estimated_bytes":{"description":"Approximate total bytes derived from ClickHouse progress","format":"int64","type":"integer"},"estimated_rows":{"description":"Approximate total rows ClickHouse expects to read","format":"int64","type":"integer"},"executed_sql":{"description":"Final SQL executed after server row and scan limits are applied","type":"string"},"expires_at":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"external_request_id":{"description":"Optional caller-supplied correlation identifier","type":"string"},"finished_at":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"job_id":{"format":"uuid","type":"string"},"max_rows":{"format":"int64","type":"integer"},"parameters":{"additionalProperties":{"type":"string"},"description":"ClickHouse bind parameters; empty because this endpoint accepts complete SQL text","type":"object"},"poll_url":{"type":"string"},"processed_bytes":{"format":"int64","type":"integer"},"processed_rows":{"format":"int64","type":"integer"},"progress_percent":{"description":"Approximate completion percentage when ClickHouse reports a total-row estimate","format":"double","maximum":100,"minimum":0,"type":"number"},"query_id":{"format":"uuid","type":"string"},"recommended_action":{"type":"string"},"request_id":{"description":"Caller-visible request correlation identifier","type":"string"},"result_url":{"type":"string"},"retry_after_ms":{"format":"int64","type":"integer"},"retryable":{"type":"boolean"},"row_count":{"format":"int64","type":"integer"},"sql":{"description":"Exact submitted SQL","type":"string"},"started_at":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"status":{"enum":["queued","running","succeeded","failed","canceled"],"type":"string"}},"required":["request_id","job_id","query_id","status","sql","executed_sql","parameters","max_rows","created_at","expires_at","elapsed_ms","processed_rows","processed_bytes","retryable","cancellation_requested","recommended_action"],"type":"object"},"BridgeRankingItem":{"additionalProperties":false,"properties":{"project":{"description":"Bridge protocol name","type":"string"},"tx_count":{"description":"Total number of bridge transfers","format":"int64","type":"integer"},"volume_usd":{"description":"Total USD volume in the time range","format":"double","type":"number"}},"required":["project","volume_usd","tx_count"],"type":"object"},"CategoryDailyPoint":{"additionalProperties":false,"properties":{"market_count":{"description":"Number of active markets","format":"int64","type":"integer"},"open_interest_usd":{"description":"Cumulative open interest (USD)","format":"double","type":"number"},"source":{"description":"Polymarket or Kalshi","type":"string"},"timestamp":{"description":"Day start Unix timestamp","format":"int64","type":"integer"},"volume_usd":{"description":"Daily notional volume (USD)","format":"double","type":"number"}},"required":["timestamp","source","volume_usd","open_interest_usd","market_count"],"type":"object"},"CorrelationItem":{"additionalProperties":false,"properties":{"category":{"description":"Shared category","type":"string"},"correlation":{"description":"30-day Pearson correlation coefficient","format":"double","type":"number"},"market_a_condition_id":{"description":"First market condition ID","type":"string"},"market_a_question":{"description":"First market question","type":"string"},"market_b_condition_id":{"description":"Second market condition ID","type":"string"},"market_b_question":{"description":"Second market question","type":"string"},"overlapping_days":{"description":"Number of trading days with data for both markets","format":"int64","type":"integer"}},"required":["market_a_condition_id","market_b_condition_id","category","correlation","overlapping_days"],"type":"object"},"CursorDataResponseHyperliquidEpisode":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CursorDataResponseHyperliquidEpisode.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HyperliquidEpisode"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"CursorDataResponseHyperliquidFill":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CursorDataResponseHyperliquidFill.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HyperliquidFill"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"CursorMeta":{"additionalProperties":false,"properties":{"cached":{"description":"Whether this response was served from cache","type":"boolean"},"credits_used":{"description":"Credits deducted for this request","format":"int64","type":"integer"},"empty_reason":{"description":"Hint explaining why the data array is empty, when applicable","type":"string"},"has_more":{"description":"Whether more items exist beyond the current page.","type":"boolean"},"limit":{"description":"Maximum number of items returned in this response","format":"int64","type":"integer"},"next_cursor":{"description":"Opaque cursor token for fetching the next page. Empty when no more pages exist.","type":"string"},"watermark":{"description":"Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.","format":"int64","type":"integer"}},"required":["has_more","limit","credits_used","cached"],"type":"object"},"DataAPIError":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataAPIError.json"],"format":"uri","readOnly":true,"type":"string"},"error":{"$ref":"#/components/schemas/DataAPIErrorDetail"}},"required":["error"],"type":"object"},"DataAPIErrorDetail":{"additionalProperties":false,"properties":{"code":{"type":"string"},"financial_serving_reason":{"description":"Why a known equity listing is unavailable from financial serving","enum":["reporting_series_missing","publication_missing","publication_terminal_excluded"],"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"DataObjectResponseAnalyticsBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseAnalyticsBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/AnalyticsBody"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseAsyncSQLJobResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseAsyncSQLJobResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/AsyncSQLJobResponse"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseEquityCandlesResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseEquityCandlesResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/EquityCandlesResponse"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseEquityCompanyProfile":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseEquityCompanyProfile.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/EquityCompanyProfile"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseEquityETFHoldingsResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseEquityETFHoldingsResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/EquityETFHoldingsResponse"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseExchangePerpResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseExchangePerpResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ExchangePerpResponse"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseFundDetailItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseFundDetailItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FundDetailItem"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHumaProjectDetailBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHumaProjectDetailBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HumaProjectDetailBody"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHyperliquidAccount":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHyperliquidAccount.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HyperliquidAccount"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHyperliquidOrders":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHyperliquidOrders.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HyperliquidOrders"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHyperliquidPerformanceView":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHyperliquidPerformanceView.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HyperliquidPerformanceView"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHyperliquidPositions":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHyperliquidPositions.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HyperliquidPositions"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseHyperliquidTradeContext":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseHyperliquidTradeContext.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/HyperliquidTradeContext"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseNewsArticleDetailItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseNewsArticleDetailItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/NewsArticleDetailItem"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseOnchainGasPriceItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseOnchainGasPriceItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/OnchainGasPriceItem"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseOnchainSQLPreflight":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseOnchainSQLPreflight.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/OnchainSQLPreflight"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponsePortfolioWalletsBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponsePortfolioWalletsBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/PortfolioWalletsBody"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseSignalProject":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseSignalProject.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/SignalProject"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseTGEItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseTGEItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/TGEItem"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseWalletDetailBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseWalletDetailBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/WalletDetailBody"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataObjectResponseWebFetchResultItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataObjectResponseWebFetchResultItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/WebFetchResultItem"},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"DataResponseAirdropActivityItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseAirdropActivityItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/AirdropActivityItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseAirdropSearchItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseAirdropSearchItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/AirdropSearchItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseBridgeRankingItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseBridgeRankingItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/BridgeRankingItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseCorrelationItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseCorrelationItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/CorrelationItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseDexActivityItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseDexActivityItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DexActivityItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseDexTradeItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseDexTradeItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DexTradeItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseDiscoverMarketItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseDiscoverMarketItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DiscoverMarketItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityBalanceSheetItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityBalanceSheetItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityBalanceSheetItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityCashFlowItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityCashFlowItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityCashFlowItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityFiling":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityFiling.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityFiling"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityFinancialMetricsItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityFinancialMetricsItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityFinancialMetricsItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityIncomeStatementItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityIncomeStatementItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityIncomeStatementItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityLatestFilingItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityLatestFilingItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityLatestFilingItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityLatestFinancialsItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityLatestFinancialsItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityLatestFinancialsItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityListing":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityListing.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityListing"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseEquityOverviewItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseEquityOverviewItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityOverviewItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseExchangeCandleItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseExchangeCandleItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeCandleItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseExchangeCoverageItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseExchangeCoverageItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeCoverageItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseFundPortfolioItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseFundPortfolioItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FundPortfolioItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseFundSearchItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseFundSearchItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FundSearchItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseFundraisingSearchItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseFundraisingSearchItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FundraisingSearchItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseHyperliquidCandle":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseHyperliquidCandle.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HyperliquidCandle"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseHyperliquidTradeGroup":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseHyperliquidTradeGroup.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HyperliquidTradeGroup"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseHyperliquidTrader":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseHyperliquidTrader.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/HyperliquidTrader"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseInterface {}":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseInterface {}.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiEvent":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiEvent.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiEvent"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiMarketItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiMarketItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiMarketItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiOIPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiOIPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiOIPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiPricePoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiPricePoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiPricePoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiTrade":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiTrade.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiTrade"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseKalshiVolumePoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseKalshiVolumePoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/KalshiVolumePoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseLeaderboardItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseLeaderboardItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/LeaderboardItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseLiquidationOrderItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseLiquidationOrderItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/LiquidationOrderItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseListingEventItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseListingEventItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ListingEventItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMarketExchangeFlowExchangeItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMarketExchangeFlowExchangeItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketExchangeFlowExchangeItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMarketIndicatorItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMarketIndicatorItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketIndicatorItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMarketMetricPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMarketMetricPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketMetricPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMarketTopCoinItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMarketTopCoinItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketTopCoinItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMatchedMarketDailyItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMatchedMarketDailyItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MatchedMarketDailyItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseMatchedMarketPair":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseMatchedMarketPair.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MatchedMarketPair"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseNewsArticleItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseNewsArticleItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/NewsArticleItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseOnchainRow":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseOnchainRow.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"additionalProperties":{},"type":"object"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseOnchainSchemaTable":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseOnchainSchemaTable.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/OnchainSchemaTable"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseOnchainTxItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseOnchainTxItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/OnchainTxItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketEvent":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketEvent.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketEvent"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketMarketItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketMarketItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketMarketItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketOIPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketOIPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketOIPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketPosition":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketPosition.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketPosition"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketPricePoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketPricePoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketPricePoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePolymarketVolumePoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePolymarketVolumePoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PolymarketVolumePoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseProjectEventItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseProjectEventItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ProjectEventItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseProjectMetricPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseProjectMetricPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ProjectMetricPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseProjectPulseItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseProjectPulseItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ProjectPulseItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseProjectSearchItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseProjectSearchItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ProjectSearchItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseProjectTopRankItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseProjectTopRankItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ProjectTopRankItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponsePublicSaleItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponsePublicSaleItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/PublicSaleItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseSearchTokenItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseSearchTokenItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/SearchTokenItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseSignalProject":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseSignalProject.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/SignalProject"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseTokenHolderItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseTokenHolderItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/TokenHolderItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseTokenTransferItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseTokenTransferItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/TokenTransferItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseTokenUnlockPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseTokenUnlockPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/TokenUnlockPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseTransferCounterpartyItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseTransferCounterpartyItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/TransferCounterpartyItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletHistoryItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletHistoryItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletHistoryItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletLabelItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletLabelItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletLabelItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletNetWorthPoint":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletNetWorthPoint.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletNetWorthPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletProtocolItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletProtocolItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletProtocolItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletSearchItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletSearchItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletSearchItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWalletTransferItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWalletTransferItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WalletTransferItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseWebSearchResultItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseWebSearchResultItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/WebSearchResultItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseXTweet":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseXTweet.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/XTweet"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DataResponseYieldRankingItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DataResponseYieldRankingItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/YieldRankingItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/OffsetMeta"}},"required":["data","meta"],"type":"object"},"DexActivityItem":{"additionalProperties":false,"properties":{"active_traders":{"description":"Distinct swap initiators — uniq(taker), ~1% error.","format":"int64","type":"integer"},"enriched_ratio":{"description":"Fraction of trades that are USD-priced (0..1) — lets the caller judge volume_usd completeness. Absent when there are no trades in the window.","format":"double","type":"number"},"timestamp":{"description":"Start-of-day Unix seconds; present only when group_by=day.","format":"int64","type":"integer"},"trades":{"description":"Trade count.","format":"int64","type":"integer"},"volume_usd":{"description":"USD volume. Absent when no trades in the window are USD-priced; undercounts recent days (USD pricing lags ~3 days).","format":"double","type":"number"}},"required":["active_traders","trades"],"type":"object"},"DexTokenPriceBar":{"additionalProperties":false,"properties":{"close":{"description":"Closing price in USD","format":"double","type":"number"},"high":{"description":"Highest price during the bar in USD","format":"double","type":"number"},"low":{"description":"Lowest price during the bar in USD","format":"double","type":"number"},"open":{"description":"Opening price in USD","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds at the bar's open","format":"int64","type":"integer"},"volume_usd":{"description":"USD volume traded during the bar","format":"double","type":"number"}},"required":["timestamp","open","high","low","close","volume_usd"],"type":"object"},"DexTradeItem":{"additionalProperties":false,"properties":{"amount_usd":{"description":"Trade value in USD at execution time","format":"double","type":"number"},"block_time":{"description":"Unix timestamp in seconds when the trade was executed","format":"int64","type":"integer"},"project":{"description":"DEX project name like `uniswap`, `sushiswap`, or `curve`","type":"string"},"taker":{"description":"Wallet address that initiated the swap","type":"string"},"taker_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for the taker address. Only present when the request sets `include=labels`."},"token_bought_address":{"description":"Contract address of the token bought","type":"string"},"token_bought_amount":{"description":"Amount of tokens bought (decimal-adjusted)","format":"double","type":"number"},"token_bought_symbol":{"description":"Symbol of the token bought in this trade","type":"string"},"token_pair":{"description":"Trading pair symbol like `WETH-USDC`","type":"string"},"token_sold_address":{"description":"Contract address of the token sold","type":"string"},"token_sold_amount":{"description":"Amount of tokens sold (decimal-adjusted)","format":"double","type":"number"},"token_sold_symbol":{"description":"Symbol of the token sold in this trade","type":"string"},"tx_hash":{"description":"Transaction hash","type":"string"},"version":{"description":"DEX version like `v2` or `v3`","type":"string"}},"required":["block_time","project","version","token_pair","token_bought_symbol","token_sold_symbol","token_bought_amount","token_sold_amount","amount_usd","taker","tx_hash"],"type":"object"},"DiscoverMarketItem":{"additionalProperties":false,"properties":{"category":{"description":"Surf-curated category","type":"string"},"condition_id":{"description":"Polymarket condition ID","type":"string"},"days_to_resolution":{"description":"Days until market end date","format":"int64","type":"integer"},"event_group_slug":{"description":"Canonical Polymarket event group slug for sibling event pages","type":"string"},"event_slug":{"description":"Polymarket event slug","type":"string"},"event_ticker":{"description":"Kalshi event ticker","type":"string"},"event_title":{"description":"Event title","type":"string"},"latest_price":{"description":"Probability (0-1) for token_id/outcome_label from realtime price store. Omitted when no selected outcome token is available.","format":"double","type":"number"},"market_link":{"description":"Direct link to market","type":"string"},"market_slug":{"description":"Polymarket market slug","type":"string"},"market_ticker":{"description":"Kalshi market ticker","type":"string"},"matched_counterpart":{"description":"Matching market ID on the other platform","type":"string"},"open_interest_usd":{"description":"Current open interest (USD)","format":"double","type":"number"},"outcome_label":{"description":"Polymarket selected outcome label","type":"string"},"platform":{"description":"polymarket or kalshi","type":"string"},"question":{"description":"Market question text","type":"string"},"smart_money_direction":{"description":"BULLISH, BEARISH, or NEUTRAL (Polymarket only)","type":"string"},"status":{"description":"Market status","type":"string"},"subcategory":{"description":"Surf-curated subcategory","type":"string"},"token_id":{"description":"Polymarket selected outcome token ID","type":"string"},"trade_count_7d":{"description":"Number of trades last 7 days","format":"int64","type":"integer"},"volume_1d":{"description":"Notional volume last 24h (USD)","format":"double","type":"number"},"volume_30d":{"description":"Notional volume last 30 days (USD)","format":"double","type":"number"},"volume_7d":{"description":"Notional volume last 7 days (USD)","format":"double","type":"number"}},"required":["platform","question","category","status","volume_1d","volume_7d","volume_30d","trade_count_7d","open_interest_usd"],"type":"object"},"ETFTickerFlow":{"additionalProperties":false,"properties":{"flow_usd":{"description":"Daily net flow in USD for this ticker","format":"double","type":"number"},"ticker":{"description":"ETF ticker symbol like `IBIT`, `GBTC`, or `ETHA`","type":"string"}},"required":["ticker","flow_usd"],"type":"object"},"EquityBalanceSheetItem":{"additionalProperties":false,"properties":{"accumulated_oci":{"$ref":"#/components/schemas/EquityMetricValue"},"calculated_at":{"description":"Serving calculation time as Unix seconds","format":"int64","type":"integer"},"cash_and_equivalents":{"$ref":"#/components/schemas/EquityMetricValue"},"currency":{"description":"Currency used by monetary metrics","type":"string"},"current_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"current_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"current_investments":{"$ref":"#/components/schemas/EquityMetricValue"},"current_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"deferred_revenue":{"$ref":"#/components/schemas/EquityMetricValue"},"deposit_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"fiscal_period":{"description":"Company fiscal period label. Null when persisted fiscal coordinates are unavailable.","type":["string","null"]},"fiscal_quarter":{"description":"Company fiscal quarter","format":"int64","type":"integer"},"fiscal_year":{"description":"Company fiscal year","format":"int64","type":"integer"},"formula_version":{"description":"Formula version used for derived metrics","type":"string"},"goodwill_and_intangible_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"inventory":{"$ref":"#/components/schemas/EquityMetricValue"},"liabilities_and_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"net_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"non_current_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"non_current_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"non_current_investments":{"$ref":"#/components/schemas/EquityMetricValue"},"non_current_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"other_current_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"other_non_current_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"other_non_current_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"outstanding_shares":{"$ref":"#/components/schemas/EquityMetricValue"},"payables":{"$ref":"#/components/schemas/EquityMetricValue"},"period":{"description":"Public financial period represented by this row","enum":["quarterly","ytd","annual","ttm"],"type":"string"},"property_plant_and_equipment":{"$ref":"#/components/schemas/EquityMetricValue"},"receivables":{"$ref":"#/components/schemas/EquityMetricValue"},"report_period":{"description":"Financial period end date in YYYY-MM-DD format","type":"string"},"retained_earnings":{"$ref":"#/components/schemas/EquityMetricValue"},"shareholders_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"source_updated_at":{"description":"Latest source update time as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"US equity ticker symbol","type":"string"},"tax_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"tax_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"total_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"total_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"total_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"},"working_capital":{"$ref":"#/components/schemas/EquityMetricValue"}},"required":["cash_and_equivalents","current_investments","receivables","inventory","current_assets","working_capital","property_plant_and_equipment","non_current_investments","goodwill_and_intangible_assets","tax_assets","other_non_current_assets","non_current_assets","total_assets","payables","current_debt","deferred_revenue","deposit_liabilities","other_current_liabilities","current_liabilities","non_current_debt","tax_liabilities","other_non_current_liabilities","non_current_liabilities","total_liabilities","total_debt","net_debt","retained_earnings","accumulated_oci","shareholders_equity","liabilities_and_equity","outstanding_shares","symbol","report_period","fiscal_period","period","currency"],"type":"object"},"EquityCandle":{"additionalProperties":false,"properties":{"close":{"description":"Closing price","format":"double","type":"number"},"high":{"description":"Highest price","format":"double","type":"number"},"low":{"description":"Lowest price","format":"double","type":"number"},"open":{"description":"Opening price","format":"double","type":"number"},"timestamp":{"description":"Candle timestamp as Unix seconds","format":"int64","type":"integer"},"volume":{"description":"Trading volume","format":"int64","type":"integer"}},"required":["timestamp","open","high","low","close","volume"],"type":"object"},"EquityCandlesResponse":{"additionalProperties":false,"properties":{"candles":{"items":{"$ref":"#/components/schemas/EquityCandle"},"type":["array","null"]},"end_date":{"type":"string"},"interval":{"type":"string"},"interval_multiplier":{"format":"int64","type":"integer"},"latest_price":{"$ref":"#/components/schemas/EquityLatestPrice"},"start_date":{"type":"string"},"symbol":{"type":"string"}},"required":["symbol","interval","interval_multiplier","candles","latest_price"],"type":"object"},"EquityCashFlowItem":{"additionalProperties":false,"properties":{"beginning_cash":{"$ref":"#/components/schemas/EquityMetricValue"},"business_acquisitions_and_disposals":{"$ref":"#/components/schemas/EquityMetricValue"},"calculated_at":{"description":"Serving calculation time as Unix seconds","format":"int64","type":"integer"},"capital_expenditure":{"$ref":"#/components/schemas/EquityMetricValue"},"change_in_cash":{"$ref":"#/components/schemas/EquityMetricValue"},"currency":{"description":"Currency used by monetary metrics","type":"string"},"debt_issuance_repayment":{"$ref":"#/components/schemas/EquityMetricValue"},"depreciation_and_amortization":{"$ref":"#/components/schemas/EquityMetricValue"},"dividends_and_distributions":{"$ref":"#/components/schemas/EquityMetricValue"},"ending_cash":{"$ref":"#/components/schemas/EquityMetricValue"},"equity_issuance_purchase":{"$ref":"#/components/schemas/EquityMetricValue"},"financing_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"fiscal_period":{"description":"Company fiscal period label. Null when persisted fiscal coordinates are unavailable.","type":["string","null"]},"fiscal_quarter":{"description":"Company fiscal quarter","format":"int64","type":"integer"},"fiscal_year":{"description":"Company fiscal year","format":"int64","type":"integer"},"formula_version":{"description":"Formula version used for derived metrics","type":"string"},"free_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"fx_effect":{"$ref":"#/components/schemas/EquityMetricValue"},"investing_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"investment_acquisitions_and_disposals":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"period":{"description":"Public financial period represented by this row","enum":["quarterly","ytd","annual","ttm"],"type":"string"},"report_period":{"description":"Financial period end date in YYYY-MM-DD format","type":"string"},"share_based_compensation":{"$ref":"#/components/schemas/EquityMetricValue"},"source_updated_at":{"description":"Latest source update time as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"US equity ticker symbol","type":"string"}},"required":["net_income","depreciation_and_amortization","share_based_compensation","operating_cash_flow","capital_expenditure","business_acquisitions_and_disposals","investment_acquisitions_and_disposals","investing_cash_flow","debt_issuance_repayment","equity_issuance_purchase","dividends_and_distributions","financing_cash_flow","fx_effect","change_in_cash","beginning_cash","ending_cash","free_cash_flow","symbol","report_period","fiscal_period","period","currency"],"type":"object"},"EquityCompanyProfile":{"additionalProperties":false,"properties":{"cik":{"type":"string"},"company_name":{"type":"string"},"description":{"type":"string"},"employee_count":{"format":"int64","type":"integer"},"exchange":{"type":"string"},"industry":{"type":"string"},"is_active":{"type":"boolean"},"listing_date":{"type":"string"},"location":{"type":"string"},"sec_filings_url":{"type":"string"},"sector":{"type":"string"},"sic_code":{"type":"string"},"sic_industry":{"type":"string"},"sic_sector":{"type":"string"},"source_updated_at":{"format":"int64","type":"integer"},"symbol":{"type":"string"},"website_url":{"type":"string"}},"required":["symbol","company_name","exchange","is_active"],"type":"object"},"EquityETFFund":{"additionalProperties":false,"properties":{"as_of":{"description":"Effective portfolio date","type":"string"},"asset_class":{"description":"Fund asset class","type":"string"},"cik":{"description":"SEC central index key","type":"string"},"filing_date":{"description":"SEC filing date","type":"string"},"name":{"description":"Fund name","type":"string"},"offset":{"description":"Requested offset within the filtered holdings result","format":"int64","type":"integer"},"returned":{"description":"Holdings returned after applying filters and pagination","format":"int64","type":"integer"},"source":{"description":"Provider source type","type":"string"},"total_holdings":{"description":"Total holdings in the unfiltered provider snapshot; asset_class filters only the returned holdings","format":"int64","type":"integer"},"total_net_assets":{"description":"Total net assets; null when unavailable","format":"double","type":["number","null"]}},"required":["name","cik","asset_class","as_of","filing_date","source","total_net_assets","total_holdings","returned","offset"],"type":"object"},"EquityETFHolding":{"additionalProperties":false,"properties":{"asset_class":{"description":"Holding asset class; null when unavailable","type":["string","null"]},"cusip":{"description":"CUSIP identifier; null when unavailable","type":["string","null"]},"isin":{"description":"ISIN identifier; null when unavailable","type":["string","null"]},"logo_url":{"description":"Holding logo image URL; null when no ticker is available","type":["string","null"]},"market_value":{"description":"Reported market value; null when unavailable","format":"double","type":["number","null"]},"name":{"description":"Holding name; null when unavailable","type":["string","null"]},"shares":{"description":"Reported share or unit quantity; null when unavailable","format":"double","type":["number","null"]},"ticker":{"description":"Holding ticker; null when the instrument has no ticker","type":["string","null"]},"weight":{"description":"Portfolio weight in percentage points; null when unavailable","format":"double","type":["number","null"]}},"required":["ticker","name","logo_url","cusip","isin","weight","market_value","shares","asset_class"],"type":"object"},"EquityETFHoldingsPeriod":{"additionalProperties":false,"properties":{"as_of":{"description":"Exact date to send as as_of when selecting this period","format":"date","type":"string"},"quarter":{"description":"Calendar quarter number","format":"int64","maximum":4,"minimum":1,"type":"integer"},"year":{"description":"Calendar year of the portfolio period","format":"int64","minimum":1900,"type":"integer"}},"required":["year","quarter","as_of"],"type":"object"},"EquityETFHoldingsResponse":{"additionalProperties":false,"properties":{"available_periods":{"description":"Available quarterly portfolio periods, ordered newest to oldest","items":{"$ref":"#/components/schemas/EquityETFHoldingsPeriod"},"type":["array","null"]},"snapshots":{"description":"Selected and immediately previous portfolio snapshots, ordered newest to oldest","items":{"$ref":"#/components/schemas/EquityETFHoldingsSnapshot"},"type":["array","null"]},"symbol":{"description":"ETF or index-fund ticker symbol","type":"string"}},"required":["symbol","available_periods","snapshots"],"type":"object"},"EquityETFHoldingsSnapshot":{"additionalProperties":false,"properties":{"fund":{"$ref":"#/components/schemas/EquityETFFund","description":"Filing-backed fund snapshot metadata"},"holdings":{"description":"Holdings ordered by portfolio weight","items":{"$ref":"#/components/schemas/EquityETFHolding"},"type":["array","null"]}},"required":["fund","holdings"],"type":"object"},"EquityFiling":{"additionalProperties":false,"properties":{"accepted_at":{"format":"int64","type":"integer"},"accession":{"type":"string"},"filed_on":{"type":"string"},"financial_metric_count":{"format":"int64","type":"integer"},"form_type":{"type":"string"},"normalized_statement_field_count":{"format":"int64","type":"integer"},"report_periods":{"items":{"type":"string"},"type":["array","null"]},"sec_url":{"type":"string"},"source_observed_at":{"format":"int64","type":"integer"},"source_revision_ids":{"items":{"type":"string"},"type":["array","null"]},"source_statement_ids":{"items":{"type":"string"},"type":["array","null"]},"statement_types":{"items":{"type":"string"},"type":["array","null"]}},"required":["accession","form_type","filed_on","sec_url","report_periods","statement_types","normalized_statement_field_count","financial_metric_count","source_statement_ids","source_revision_ids"],"type":"object"},"EquityFinancialMetricsItem":{"additionalProperties":false,"properties":{"asset_turnover":{"$ref":"#/components/schemas/EquityMetricValue"},"book_value_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"book_value_per_share":{"$ref":"#/components/schemas/EquityMetricValue"},"calculated_at":{"format":"int64","type":"integer"},"cash_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"change_in_cash_per_share":{"$ref":"#/components/schemas/EquityMetricValue"},"currency":{"description":"Currency used by monetary metrics","type":"string"},"current_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"days_sales_outstanding":{"$ref":"#/components/schemas/EquityMetricValue"},"debt_to_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"debt_to_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"earnings_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"earnings_per_share":{"$ref":"#/components/schemas/EquityMetricValue"},"earnings_per_share_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"ebit_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"enterprise_value":{"$ref":"#/components/schemas/EquityMetricValue"},"enterprise_value_to_ebitda_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"enterprise_value_to_revenue_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"fiscal_period":{"description":"Company fiscal period label. Null when persisted fiscal coordinates are unavailable.","type":["string","null"]},"fiscal_quarter":{"format":"int64","type":"integer"},"fiscal_year":{"format":"int64","type":"integer"},"free_cash_flow_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"free_cash_flow_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"free_cash_flow_per_share":{"$ref":"#/components/schemas/EquityMetricValue"},"free_cash_flow_yield":{"$ref":"#/components/schemas/EquityMetricValue"},"gross_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"interest_coverage":{"$ref":"#/components/schemas/EquityMetricValue"},"inventory_turnover":{"$ref":"#/components/schemas/EquityMetricValue"},"liabilities_to_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"market_cap":{"$ref":"#/components/schemas/EquityMetricValue"},"net_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"net_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_cash_flow_per_share":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_cash_flow_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_cycle":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_income_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"payout_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"peg_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"period":{"description":"Metric period","enum":["quarterly","annual","ttm"],"type":"string"},"price_to_book_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"price_to_earnings_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"price_to_sales_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"quick_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"receivables_turnover":{"$ref":"#/components/schemas/EquityMetricValue"},"report_period":{"description":"Financial period end date in YYYY-MM-DD format","type":"string"},"return_on_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"return_on_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"return_on_invested_capital":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue_growth":{"$ref":"#/components/schemas/EquityMetricValue"},"source_updated_at":{"format":"int64","type":"integer"},"symbol":{"description":"US equity ticker symbol","type":"string"},"working_capital_turnover":{"$ref":"#/components/schemas/EquityMetricValue"}},"required":["symbol","report_period","fiscal_period","period","currency","enterprise_value","market_cap","price_to_earnings_ratio","price_to_book_ratio","price_to_sales_ratio","enterprise_value_to_ebitda_ratio","enterprise_value_to_revenue_ratio","free_cash_flow_yield","free_cash_flow_margin","peg_ratio","gross_margin","operating_margin","net_margin","return_on_equity","return_on_assets","return_on_invested_capital","asset_turnover","inventory_turnover","receivables_turnover","days_sales_outstanding","operating_cycle","working_capital_turnover","current_ratio","quick_ratio","cash_ratio","operating_cash_flow_ratio","debt_to_equity","debt_to_assets","interest_coverage","revenue_growth","earnings_growth","book_value_growth","earnings_per_share_growth","free_cash_flow_growth","operating_income_growth","ebitda_growth","payout_ratio","earnings_per_share","book_value_per_share","free_cash_flow_per_share","ebit_margin","ebitda","ebitda_margin","liabilities_to_assets","net_debt","operating_cash_flow_per_share","change_in_cash_per_share"],"type":"object"},"EquityIncomeStatementItem":{"additionalProperties":false,"properties":{"calculated_at":{"description":"Serving calculation time as Unix seconds","format":"int64","type":"integer"},"cost_of_revenue":{"$ref":"#/components/schemas/EquityMetricValue"},"currency":{"description":"Currency used by monetary metrics","type":"string"},"dividends_per_common_share":{"$ref":"#/components/schemas/EquityMetricValue"},"ebit":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda":{"$ref":"#/components/schemas/EquityMetricValue"},"eps_basic":{"$ref":"#/components/schemas/EquityMetricValue"},"eps_calculation_method":{"type":"string"},"eps_diluted":{"$ref":"#/components/schemas/EquityMetricValue"},"fiscal_period":{"description":"Company fiscal period label. Null when persisted fiscal coordinates are unavailable.","type":["string","null"]},"fiscal_quarter":{"description":"Company fiscal quarter","format":"int64","type":"integer"},"fiscal_year":{"description":"Company fiscal year","format":"int64","type":"integer"},"formula_version":{"description":"Formula version used for derived metrics","type":"string"},"gross_profit":{"$ref":"#/components/schemas/EquityMetricValue"},"income_tax_expense":{"$ref":"#/components/schemas/EquityMetricValue"},"interest_expense":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income_common_stock":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income_discontinued_operations":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income_non_controlling_interests":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income_yoy":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_expense":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_income":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_income_yoy":{"$ref":"#/components/schemas/EquityMetricValue"},"period":{"description":"Public financial period represented by this row","enum":["quarterly","ytd","annual","ttm"],"type":"string"},"report_period":{"description":"Financial period end date in YYYY-MM-DD format","type":"string"},"research_and_development":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue_yoy":{"$ref":"#/components/schemas/EquityMetricValue"},"sga_expense":{"$ref":"#/components/schemas/EquityMetricValue"},"source_updated_at":{"description":"Latest source update time as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"US equity ticker symbol","type":"string"},"total_operating_costs":{"$ref":"#/components/schemas/EquityMetricValue"},"weighted_average_shares":{"$ref":"#/components/schemas/EquityMetricValue"},"weighted_average_shares_diluted":{"$ref":"#/components/schemas/EquityMetricValue"}},"required":["revenue","revenue_yoy","cost_of_revenue","gross_profit","operating_expense","total_operating_costs","sga_expense","research_and_development","operating_income","operating_income_yoy","ebit","ebitda","interest_expense","income_tax_expense","net_income","net_income_yoy","net_income_common_stock","net_income_discontinued_operations","net_income_non_controlling_interests","eps_basic","eps_diluted","dividends_per_common_share","weighted_average_shares","weighted_average_shares_diluted","symbol","report_period","fiscal_period","period","currency"],"type":"object"},"EquityLatestFilingItem":{"additionalProperties":false,"properties":{"accepted_at":{"description":"SEC accepted_at as Unix seconds","format":"int64","type":"integer"},"company_name":{"description":"Company display name","type":"string"},"coverage_fields":{"description":"Normalized statement field count for this filing","format":"int64","type":"integer"},"filed_on":{"description":"SEC filed-on date in YYYY-MM-DD format","type":"string"},"financial_metric_count":{"description":"Financial metric count for this filing","format":"int64","type":"integer"},"form_type":{"type":"string"},"logo_url":{"description":"Company logo image URL","type":"string"},"report_period":{"description":"Report period end date in YYYY-MM-DD format","type":"string"},"sec_url":{"type":"string"},"symbol":{"description":"Primary current verified stock ticker","type":"string"}},"required":["symbol","company_name","logo_url","form_type","report_period","filed_on","sec_url","coverage_fields","financial_metric_count"],"type":"object"},"EquityLatestFinancialsItem":{"additionalProperties":false,"properties":{"company_name":{"description":"Company display name","type":"string"},"filed_on":{"description":"Latest periodic SEC filing date in YYYY-MM-DD format","type":"string"},"free_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"gross_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"logo_url":{"description":"Company logo image URL","type":"string"},"operating_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"pe_ttm":{"$ref":"#/components/schemas/EquityMetricValue"},"report_period":{"description":"TTM period end date in YYYY-MM-DD format","type":"string"},"return_on_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue_growth":{"$ref":"#/components/schemas/EquityMetricValue","description":"Revenue growth from the current TTM publication"},"source_updated_at":{"description":"Latest source update time as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"Primary current verified stock ticker","type":"string"}},"required":["symbol","company_name","logo_url","report_period","filed_on","revenue_growth","gross_margin","operating_margin","return_on_equity","pe_ttm","free_cash_flow"],"type":"object"},"EquityLatestPrice":{"additionalProperties":false,"properties":{"day_change":{"description":"Absolute change from the previous trading-day close","format":"double","type":"number"},"day_change_percent":{"description":"Percentage change from the previous trading-day close","format":"double","type":"number"},"price":{"description":"Latest traded price","format":"double","type":"number"},"timestamp":{"description":"Latest-price timestamp as Unix seconds","format":"int64","type":"integer"}},"required":["price","timestamp"],"type":"object"},"EquityListing":{"additionalProperties":false,"properties":{"financial_serving_reason":{"enum":["reporting_series_missing","publication_missing","publication_terminal_excluded"],"type":"string"},"financial_serving_status":{"type":"string"},"is_current":{"type":"boolean"},"is_primary":{"type":"boolean"},"issuer_cik":{"type":"string"},"issuer_company_id":{"type":"string"},"issuer_legal_name":{"type":"string"},"listing_currency":{"type":"string"},"listing_exchange_code":{"type":"string"},"listing_id":{"type":"string"},"listing_lifecycle_status":{"type":"string"},"listing_symbol_id":{"type":"string"},"reporting_series_display_name":{"type":"string"},"reporting_series_id":{"type":"string"},"security_id":{"type":"string"},"security_name":{"type":"string"},"security_type":{"type":"string"},"share_class":{"type":"string"},"stock_type":{"type":"string"},"symbol_exchange_code":{"type":"string"},"symbol_identity_status":{"type":"string"},"ticker":{"type":"string"},"valid_from":{"type":"string"},"valid_to":{"type":"string"}},"required":["listing_symbol_id","listing_id","security_id","security_type","stock_type","is_primary","listing_lifecycle_status","ticker","is_current","symbol_identity_status","issuer_company_id","issuer_cik","issuer_legal_name","financial_serving_status"],"type":"object"},"EquityMeta":{"additionalProperties":false,"properties":{"currency":{"description":"Price currency","type":"string"},"day_change":{"description":"Absolute change from the previous trading-day close","format":"double","type":"number"},"day_change_percent":{"description":"Percentage change from the previous trading-day close","format":"double","type":"number"},"logo_url":{"description":"Company or fund logo image URL","type":"string"},"name":{"description":"Company or fund name","type":"string"},"price":{"description":"Latest traded price","format":"double","type":"number"},"price_timestamp":{"description":"Latest-price timestamp as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"US stock or ETF ticker symbol","type":"string"},"tokenized":{"description":"Tokenized counterparts of this stock. Only present when include_tokenized=true and a mapping exists.","items":{"$ref":"#/components/schemas/EquityTokenizedAsset"},"type":["array","null"]}},"required":["symbol","name","logo_url","price","currency","price_timestamp"],"type":"object"},"EquityMetricValue":{"additionalProperties":false,"properties":{"quality_reason_codes":{"description":"Serving-layer quality reason codes","items":{"type":"string"},"type":["array","null"]},"reason_code":{"description":"Opaque serving-layer reason when a metric is unavailable","type":"string"},"source_accessions":{"description":"Source filing accession identifiers","items":{"type":"string"},"type":["array","null"]},"source_financial_metric_snapshot_ids":{"description":"Source provider metric snapshot identifiers","items":{"type":"string"},"type":["array","null"]},"source_revision_ids":{"description":"Source statement revision identifiers","items":{"type":"string"},"type":["array","null"]},"source_statement_ids":{"description":"Source financial statement identifiers","items":{"type":"string"},"type":["array","null"]},"status":{"description":"Availability status","enum":["available","missing","not_applicable"],"type":"string"},"value":{"description":"Exact metric value. Null when missing or not applicable.","format":"double","type":["number","null"]},"value_origin":{"description":"Whether the value is reported or derived","enum":["reported","derived"],"type":"string"}},"required":["value","status"],"type":"object"},"EquityOverviewItem":{"additionalProperties":false,"properties":{"calculated_at":{"description":"Serving calculation time as Unix seconds","format":"int64","type":"integer"},"cash_and_equivalents":{"$ref":"#/components/schemas/EquityMetricValue"},"company_name":{"type":"string"},"currency":{"description":"Currency used by monetary metrics","type":"string"},"current_ratio":{"$ref":"#/components/schemas/EquityMetricValue"},"debt_to_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"duration_months":{"format":"int64","type":"integer"},"ebit":{"$ref":"#/components/schemas/EquityMetricValue"},"ebit_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda":{"$ref":"#/components/schemas/EquityMetricValue"},"ebitda_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"eps_basic":{"$ref":"#/components/schemas/EquityMetricValue"},"eps_diluted":{"$ref":"#/components/schemas/EquityMetricValue"},"exchange":{"type":"string"},"fiscal_period":{"description":"Company fiscal period label. Null when persisted fiscal coordinates are unavailable.","type":["string","null"]},"fiscal_quarter":{"description":"Company fiscal quarter","format":"int64","type":"integer"},"fiscal_year":{"description":"Company fiscal year","format":"int64","type":"integer"},"formula_version":{"description":"Formula version used for derived metrics","type":"string"},"free_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"gross_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"gross_profit":{"$ref":"#/components/schemas/EquityMetricValue"},"industry":{"type":"string"},"liabilities_to_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"net_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"net_income":{"$ref":"#/components/schemas/EquityMetricValue"},"net_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_cash_flow":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_income":{"$ref":"#/components/schemas/EquityMetricValue"},"operating_margin":{"$ref":"#/components/schemas/EquityMetricValue"},"pb_mrq":{"$ref":"#/components/schemas/EquityMetricValue"},"pe_lyr":{"$ref":"#/components/schemas/EquityMetricValue"},"pe_ttm":{"$ref":"#/components/schemas/EquityMetricValue"},"period":{"description":"Public financial period represented by this row","enum":["quarterly","ytd","annual","ttm"],"type":"string"},"period_start":{"type":"string"},"ps_ttm":{"$ref":"#/components/schemas/EquityMetricValue"},"report_period":{"description":"Financial period end date in YYYY-MM-DD format","type":"string"},"return_on_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"return_on_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"return_on_invested_capital":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue":{"$ref":"#/components/schemas/EquityMetricValue"},"revenue_yoy":{"$ref":"#/components/schemas/EquityMetricValue"},"sector":{"type":"string"},"shareholders_equity":{"$ref":"#/components/schemas/EquityMetricValue"},"source_updated_at":{"description":"Latest source update time as Unix seconds","format":"int64","type":"integer"},"symbol":{"description":"US equity ticker symbol","type":"string"},"total_assets":{"$ref":"#/components/schemas/EquityMetricValue"},"total_debt":{"$ref":"#/components/schemas/EquityMetricValue"},"total_liabilities":{"$ref":"#/components/schemas/EquityMetricValue"}},"required":["company_name","exchange","revenue","revenue_yoy","gross_profit","gross_margin","operating_income","operating_margin","net_income","net_margin","ebit","ebit_margin","ebitda","ebitda_margin","operating_cash_flow","free_cash_flow","cash_and_equivalents","total_debt","net_debt","total_assets","total_liabilities","shareholders_equity","return_on_equity","return_on_assets","return_on_invested_capital","current_ratio","debt_to_equity","liabilities_to_assets","eps_basic","eps_diluted","pe_ttm","pe_lyr","pb_mrq","ps_ttm","symbol","report_period","fiscal_period","period","currency"],"type":"object"},"EquityTokenizedAsset":{"additionalProperties":false,"properties":{"chains":{"description":"Deployments, primary first","items":{"$ref":"#/components/schemas/EquityTokenizedAssetChain"},"type":["array","null"]},"coingecko_id":{"description":"CoinGecko id, for resolving a live quote","type":"string"},"issuer_name":{"description":"Entity that issues the tokenized stock, e.g. xStocks, Ondo Finance","type":"string"},"issuer_slug":{"description":"Stable issuer identifier","type":"string"},"logo_url":{"description":"Token logo image URL","type":"string"},"mapping_source":{"description":"How the stock-to-token link was established","type":"string"},"name":{"description":"Token name, e.g. Tesla xStock","type":"string"},"symbol":{"description":"Token ticker, e.g. TSLAX","type":"string"},"token_id":{"description":"Surf token id","type":"string"},"verification_status":{"description":"Confidence in the mapping","type":"string"},"website_url":{"description":"Issuer or token website","type":"string"}},"required":["symbol","name","token_id","chains"],"type":"object"},"EquityTokenizedAssetChain":{"additionalProperties":false,"properties":{"chain_id":{"description":"Canonical Surf chain id the token is deployed on","type":"string"},"contract_address":{"description":"Token contract address on that chain","type":"string"},"is_primary":{"description":"Whether this is the issuer's primary deployment","type":"boolean"}},"required":["chain_id","contract_address","is_primary"],"type":"object"},"EvmBalanceItem":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"chain_balances":{"description":"Per-chain balance breakdown, sorted by value descending (EVM only)","items":{"$ref":"#/components/schemas/WalletChainItem"},"type":["array","null"]},"total_usd":{"description":"Total portfolio value in USD (EVM only)","format":"double","type":"number"}},"required":["address","total_usd"],"type":"object"},"EvmTokenItem":{"additionalProperties":false,"properties":{"balance":{"description":"Decimal-adjusted token balance as a string","type":"string"},"chain":{"description":"Chain name like ethereum, polygon (EVM only)","type":"string"},"is_verified":{"description":"Whether the token is verified (EVM only)","type":"boolean"},"logo_url":{"description":"Token logo image URL","type":"string"},"name":{"description":"Full token name","type":"string"},"price":{"description":"Current USD price per token (EVM only)","format":"double","type":"number"},"symbol":{"description":"Token ticker symbol","type":"string"},"token_address":{"description":"Token contract address (EVM only)","type":"string"},"usd_value":{"description":"Total USD value (balance * price) (EVM only)","format":"double","type":"number"}},"required":["token_address","symbol","balance","price","usd_value","is_verified"],"type":"object"},"ExchangeCandleItem":{"additionalProperties":false,"properties":{"close":{"description":"Closing price","format":"double","type":"number"},"close_time":{"description":"Candle close time in Unix seconds","format":"int64","type":"integer"},"exchange":{"description":"Exchange identifier","type":"string"},"high":{"description":"Highest price during the interval","format":"double","type":"number"},"interval":{"description":"Candle interval","type":"string"},"is_synthetic":{"description":"Whether this candle is a carry-forward row for a no-trade interval","type":"boolean"},"low":{"description":"Lowest price during the interval","format":"double","type":"number"},"open":{"description":"Opening price","format":"double","type":"number"},"pair":{"description":"Trading pair like BTC/KRW","type":"string"},"region":{"description":"Exchange market region","type":"string"},"timestamp":{"description":"Candle open time in Unix seconds","format":"int64","type":"integer"},"trade_count":{"description":"Number of trades in the candle","format":"int64","type":"integer"},"volume_base":{"description":"Trading volume in base currency units","format":"double","type":"number"},"volume_quote":{"description":"Trading volume in quote currency units","format":"double","type":"number"}},"required":["exchange","region","pair","interval","timestamp","close_time","open","high","low","close","is_synthetic"],"type":"object"},"ExchangeCoverageItem":{"additionalProperties":false,"properties":{"active":{"description":"Whether the market is active","type":"boolean"},"base":{"description":"Base currency","type":"string"},"change_24h_abs":{"description":"24h signed price change amount in quote currency","format":"double","type":"number"},"change_24h_pct":{"description":"24h signed price change percentage. Example: -2.68 means -2.68%","format":"double","type":"number"},"data_actionability":{"description":"Whether the current data status needs pipeline attention","type":"string"},"data_status":{"description":"Current market data coverage status","type":"string"},"exchange":{"description":"Exchange identifier","type":"string"},"high_24h":{"description":"24h high price","format":"double","type":"number"},"latest_4h_candle_at":{"description":"Latest 4h candle open time in Unix seconds","format":"int64","type":"integer"},"latest_5m_candle_at":{"description":"Latest 5m candle open time in Unix seconds","format":"int64","type":"integer"},"latest_candle_at":{"description":"Latest available candle open time in Unix seconds","format":"int64","type":"integer"},"latest_price":{"description":"Latest observed trade price","format":"double","type":"number"},"latest_ticker_at":{"description":"Latest ticker observation time in Unix seconds","format":"int64","type":"integer"},"latest_weekly_candle_at":{"description":"Latest weekly candle open time in Unix seconds","format":"int64","type":"integer"},"listing_date":{"description":"Earliest known exchange listing or first-trading date for this market, in Unix seconds when available.","format":"int64","type":"integer"},"low_24h":{"description":"24h low price","format":"double","type":"number"},"open_24h":{"description":"24h opening price","format":"double","type":"number"},"pair":{"description":"Trading pair like BTC/KRW","type":"string"},"prev_close":{"description":"Previous closing price","format":"double","type":"number"},"quote":{"description":"Quote currency","type":"string"},"region":{"description":"Exchange market region","type":"string"},"status":{"description":"Market status","type":"string"},"technical_score":{"description":"Latest OHLCV-derived technical score","format":"double","type":"number"},"technical_score_at":{"description":"Technical score generation time in Unix seconds","format":"int64","type":"integer"},"technical_score_label":{"description":"Technical score label","type":"string"},"type":{"description":"Market type","type":"string"},"volume_24h_base":{"description":"24h trading volume in base currency units","format":"double","type":"number"},"volume_24h_quote":{"description":"24h quote-currency trading volume","format":"double","type":"number"}},"required":["exchange","region","pair","base","quote","type","status","active"],"type":"object"},"ExchangeDepthItem":{"additionalProperties":false,"properties":{"ask_depth":{"description":"Total ask-side depth in base currency units","format":"double","type":["number","null"]},"asks":{"description":"Sell orders, price ascending","items":{"$ref":"#/components/schemas/ExchangeDepthLevel"},"type":["array","null"]},"bid_depth":{"description":"Total bid-side depth in base currency units","format":"double","type":["number","null"]},"bids":{"description":"Buy orders, price descending","items":{"$ref":"#/components/schemas/ExchangeDepthLevel"},"type":["array","null"]},"exchange":{"description":"Exchange identifier","type":"string"},"mid_price":{"description":"(best_bid + best_ask) / 2","format":"double","type":["number","null"]},"pair":{"description":"Trading pair like BTC/USDT","type":"string"},"spread":{"description":"Best ask - best bid","format":"double","type":["number","null"]},"spread_pct":{"description":"Spread as percent of mid price","format":"double","type":["number","null"]}},"required":["exchange","pair","bids","asks","spread","spread_pct","bid_depth","ask_depth","mid_price"],"type":"object"},"ExchangeDepthLevel":{"additionalProperties":false,"properties":{"amount":{"description":"Amount at this level","format":"double","type":"number"},"price":{"description":"Price level","format":"double","type":"number"}},"required":["price","amount"],"type":"object"},"ExchangeFundingHistoryItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange identifier","type":"string"},"funding_interval_hours":{"description":"Funding interval in hours when known","format":"int64","type":["integer","null"]},"funding_rate":{"description":"Raw funding rate at this settlement. Use funding_rate_8h for cross-exchange comparison when present.","format":"double","type":["number","null"]},"funding_rate_1h":{"description":"Funding rate normalized to a 1-hour interval","format":"double","type":"number"},"funding_rate_8h":{"description":"Funding rate normalized to an 8-hour interval for cross-exchange comparison","format":"double","type":"number"},"funding_rate_annualized":{"description":"Simple annualized funding rate derived from the 1-hour normalized rate","format":"double","type":"number"},"funding_rate_raw":{"description":"Alias of funding_rate: raw funding rate for the exchange settlement interval","format":"double","type":"number"},"pair":{"description":"Perpetual contract pair like BTC/USDT","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":["integer","null"]}},"required":["exchange","pair","funding_rate","timestamp","funding_interval_hours"],"type":"object"},"ExchangeFundingItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange identifier","type":"string"},"funding_interval_hours":{"description":"Funding interval in hours when known","format":"int64","type":["integer","null"]},"funding_rate":{"description":"Current raw funding rate for the exchange settlement interval (0.0001 = 0.01%). Use funding_rate_8h for cross-exchange comparison.","format":"double","type":["number","null"]},"funding_rate_1h":{"description":"Funding rate normalized to a 1-hour interval","format":"double","type":"number"},"funding_rate_8h":{"description":"Funding rate normalized to an 8-hour interval for cross-exchange comparison","format":"double","type":"number"},"funding_rate_annualized":{"description":"Simple annualized funding rate derived from the 1-hour normalized rate","format":"double","type":"number"},"funding_rate_raw":{"description":"Alias of funding_rate: raw funding rate for the exchange settlement interval","format":"double","type":"number"},"index_price":{"description":"Index price derived from the weighted average of spot prices across multiple exchanges","format":"double","type":["number","null"]},"interval":{"description":"Funding interval like 8h","type":["string","null"]},"mark_price":{"description":"Mark price calculated by the exchange from the index price and funding rate, used as the reference for liquidations","format":"double","type":["number","null"]},"next_funding":{"description":"Next settlement time ISO8601","type":["string","null"]},"pair":{"description":"Perpetual contract pair like BTC/USDT","type":"string"}},"required":["exchange","pair","funding_rate","next_funding","mark_price","index_price","interval","funding_interval_hours"],"type":"object"},"ExchangeKlineItem":{"additionalProperties":false,"properties":{"close":{"description":"Closing price","format":"double","type":"number"},"high":{"description":"Highest price during the interval","format":"double","type":"number"},"low":{"description":"Lowest price during the interval","format":"double","type":"number"},"open":{"description":"Opening price","format":"double","type":"number"},"timestamp":{"description":"Candle open time in Unix seconds","format":"int64","type":["integer","null"]},"volume":{"description":"Trading volume in base currency units","format":"double","type":"number"}},"required":["timestamp","open","high","low","close","volume"],"type":"object"},"ExchangeKlineResponse":{"additionalProperties":false,"properties":{"candles":{"description":"OHLCV candles","items":{"$ref":"#/components/schemas/ExchangeKlineItem"},"type":["array","null"]},"count":{"description":"Number of candles","format":"int64","type":"integer"},"exchange":{"description":"Exchange identifier","type":"string"},"interval":{"description":"Candle interval","type":"string"},"pair":{"description":"Trading pair","type":"string"},"period_end":{"description":"Last candle datetime","type":["string","null"]},"period_high":{"description":"Highest price in period","format":"double","type":["number","null"]},"period_low":{"description":"Lowest price in period","format":"double","type":["number","null"]},"period_start":{"description":"First candle datetime","type":["string","null"]},"period_volume":{"description":"Total volume in period","format":"double","type":["number","null"]}},"required":["exchange","pair","interval","candles","count","period_high","period_low","period_volume","period_start","period_end"],"type":"object"},"ExchangeLongShortRatioItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange identifier","type":"string"},"long_short_ratio":{"description":"Ratio of longs to shorts (e.g. 1.5 means 60% long / 40% short). To get percentages: long% = ratio/(ratio+1)*100, short% = 100/(ratio+1)","format":"double","type":["number","null"]},"pair":{"description":"Perpetual contract pair like BTC/USDT","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":["integer","null"]}},"required":["exchange","pair","long_short_ratio","timestamp"],"type":"object"},"ExchangeMarketItem":{"additionalProperties":false,"properties":{"active":{"description":"Whether the market is active","type":["boolean","null"]},"base":{"description":"Base currency","type":["string","null"]},"exchange":{"description":"Exchange identifier","type":"string"},"maker_fee":{"description":"Default maker fee rate","format":"double","type":["number","null"]},"pair":{"description":"Trading pair like BTC/USDT","type":"string"},"quote":{"description":"Quote currency","type":["string","null"]},"taker_fee":{"description":"Default taker fee rate","format":"double","type":["number","null"]},"type":{"description":"Market type: spot, swap, future, option","type":["string","null"]}},"required":["exchange","pair","base","quote","type","active","maker_fee","taker_fee"],"type":"object"},"ExchangeOpenInterestItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange identifier","type":"string"},"open_interest_amount":{"description":"Open interest in contracts","format":"double","type":["number","null"]},"open_interest_usd":{"description":"Open interest in USD","format":"double","type":["number","null"]},"pair":{"description":"Trading pair like BTC/USDT","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":["integer","null"]}},"required":["exchange","pair","open_interest_amount","open_interest_usd","timestamp"],"type":"object"},"ExchangePerpResponse":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange identifier","type":"string"},"funding":{"$ref":"#/components/schemas/ExchangeFundingItem","description":"Current funding rate data; null when not requested"},"open_interest":{"$ref":"#/components/schemas/ExchangeOpenInterestItem","description":"Current open interest data; null when not requested"},"pair":{"description":"Perpetual contract pair like BTC/USDT","type":"string"}},"required":["exchange","pair","funding","open_interest"],"type":"object"},"ExchangePriceItem":{"additionalProperties":false,"properties":{"ask":{"description":"Best ask price","format":"double","type":["number","null"]},"bid":{"description":"Best bid price","format":"double","type":["number","null"]},"change_24h_pct":{"description":"24h signed price change percentage. Example: -2.68 means -2.68%","format":"double","type":["number","null"]},"exchange":{"description":"Exchange identifier like binance, okx","type":"string"},"high_24h":{"description":"24h high price","format":"double","type":["number","null"]},"last":{"description":"Last traded price","format":"double","type":["number","null"]},"low_24h":{"description":"24h low price","format":"double","type":["number","null"]},"pair":{"description":"Trading pair like BTC/USDT","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":["integer","null"]},"volume_24h_base":{"description":"24h trading volume in base currency units","format":"double","type":["number","null"]}},"required":["exchange","pair","last","bid","ask","high_24h","low_24h","volume_24h_base","change_24h_pct","timestamp"],"type":"object"},"FundDetailItem":{"additionalProperties":false,"properties":{"description":{"description":"Fund description","type":"string"},"id":{"description":"Surf fund UUID — pass as 'id' parameter to /fund/detail or /fund/portfolio for exact lookup","type":"string"},"image":{"description":"Fund logo URL","type":"string"},"invested_projects_count":{"description":"Total number of unique invested projects (a project with multiple funding rounds counts once)","format":"int64","type":"integer"},"jurisdiction":{"description":"Fund jurisdiction","type":"string"},"links":{"description":"Fund links (website, social, etc.)","items":{"$ref":"#/components/schemas/FundLinkItem"},"type":["array","null"]},"members":{"description":"Fund team members","items":{"$ref":"#/components/schemas/FundMemberItem"},"type":["array","null"]},"name":{"description":"Fund name","type":"string"},"recent_researches":{"description":"Recent research publications","items":{"$ref":"#/components/schemas/FundResearchItem"},"type":["array","null"]},"tier":{"description":"Fund tier ranking (lower is better)","format":"int64","type":"integer"},"type":{"description":"Fund type like `VC` or `Accelerator`","type":"string"},"x_accounts":{"description":"X (Twitter) accounts","items":{"$ref":"#/components/schemas/FundXAccountItem"},"type":["array","null"]}},"required":["id","name","tier","links","x_accounts","members","recent_researches","invested_projects_count"],"type":"object"},"FundLinkItem":{"additionalProperties":false,"properties":{"type":{"description":"Link type like `web`, `twitter`, or `linkedin`","type":"string"},"value":{"description":"Link URL","type":"string"}},"required":["type","value"],"type":"object"},"FundMemberItem":{"additionalProperties":false,"properties":{"avatar":{"description":"Avatar URL","type":"string"},"name":{"description":"Member name","type":"string"},"roles":{"description":"Member roles","items":{"type":"string"},"type":["array","null"]}},"required":["name","roles"],"type":"object"},"FundPortfolioItem":{"additionalProperties":false,"properties":{"invested_at":{"description":"Investment date (Unix seconds)","format":"int64","type":"integer"},"is_lead":{"description":"Whether this fund was the lead investor","type":"boolean"},"project_id":{"description":"Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup. Prefer over 'q' (fuzzy name search).","type":"string"},"project_logo":{"description":"Project logo URL","type":"string"},"project_name":{"description":"Project name","type":"string"},"project_slug":{"description":"Project slug","type":"string"},"recent_raise":{"description":"Most recent funding round amount in USD","format":"double","type":"number"},"total_raise":{"description":"Total amount raised by the project in USD","format":"double","type":"number"}},"required":["project_id","project_name","is_lead"],"type":"object"},"FundResearchItem":{"additionalProperties":false,"properties":{"id":{"description":"Research ID","type":"string"},"published_at":{"description":"Publication date (Unix seconds)","format":"int64","type":"integer"},"title":{"description":"Research title","type":"string"},"url":{"description":"Research URL","type":"string"}},"required":["id","title","url","published_at"],"type":"object"},"FundSearchItem":{"additionalProperties":false,"properties":{"id":{"description":"Surf fund UUID — pass as 'id' parameter to /fund/detail or /fund/portfolio for exact lookup","type":"string"},"image":{"description":"Fund logo URL","type":"string"},"invested_projects_count":{"description":"Total number of unique invested projects (a project with multiple funding rounds counts once)","format":"int64","type":"integer"},"name":{"description":"Fund name","type":"string"},"tier":{"description":"Fund tier ranking (lower is better)","format":"int64","type":"integer"},"top_projects":{"description":"Top invested projects (up to 5)","items":{"$ref":"#/components/schemas/FundPortfolioItem"},"type":["array","null"]},"type":{"description":"Fund type","type":"string"}},"required":["id","name","tier","invested_projects_count","top_projects"],"type":"object"},"FundXAccountItem":{"additionalProperties":false,"properties":{"display_name":{"description":"Display name","type":"string"},"followers_count":{"description":"Follower count","format":"int64","type":"integer"},"handle":{"description":"X (Twitter) handle without the @ prefix","type":"string"},"id":{"description":"Numeric X (Twitter) user ID","type":"string"},"profile_image":{"description":"Profile image URL","type":"string"}},"required":["id","handle","followers_count"],"type":"object"},"FundraisingSearchItem":{"additionalProperties":false,"properties":{"event_at":{"description":"Effective event time as Unix seconds","format":"int64","type":"integer"},"id":{"description":"Fundraising event UUID","type":"string"},"importance":{"description":"Importance score from 1 to 5; omitted when unscored","format":"int64","maximum":5,"minimum":1,"type":"integer"},"published_at":{"description":"Source publication time as Unix seconds","format":"int64","type":"integer"},"source":{"$ref":"#/components/schemas/FundraisingSearchSource","description":"Primary source information"},"source_count":{"description":"Number of sources consolidated into this event","format":"int64","type":"integer"},"summary":{"description":"Localized event summary with field-level English fallback","type":"string"},"title":{"description":"Localized event title with field-level English fallback","type":"string"}},"required":["id","title","summary","source","event_at","published_at","source_count"],"type":"object"},"FundraisingSearchSource":{"additionalProperties":false,"properties":{"name":{"description":"Source account or publication name","type":"string"},"type":{"description":"Public source type: social or news","enum":["social","news"],"type":"string"},"url":{"description":"Primary source URL","type":"string"}},"required":["type"],"type":"object"},"HumaOnchainSQLInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/HumaOnchainSQLInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"max_rows":{"default":1000,"description":"Maximum number of rows to return","examples":[1000],"format":"int64","maximum":10000,"minimum":1,"type":"integer"},"sql":{"description":"Send a JSON object with the sql field. Example: {\"sql\":\"SELECT 1\"}. Use GET /v1/onchain/schema for tables and columns. Transfer table amount is decimal-adjusted; amount_raw is the original base-unit value. Use single quotes for ClickHouse strings. Example: toDate('2026-04-07').","examples":["SELECT block_date, project, symbol, apy, tvl_usd FROM agent.ethereum_yields_daily WHERE block_date >= today() - 7 ORDER BY apy DESC LIMIT 10"],"type":"string"}},"required":["sql"],"type":"object"},"HumaOnchainSQLJobCreateInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/HumaOnchainSQLJobCreateInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"max_rows":{"default":1000,"description":"Maximum number of result rows to retain","examples":[1000],"format":"int64","maximum":10000,"minimum":1,"type":"integer"},"sql":{"description":"Exact read-only ClickHouse SQL to execute asynchronously. The submitted SQL and date range are preserved.","examples":["SELECT block_date, project, symbol, apy FROM agent.ethereum_yields_daily WHERE block_date >= today() - 30 ORDER BY apy DESC"],"type":"string"}},"required":["sql"],"type":"object"},"HumaOnchainSQLPreflightInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/HumaOnchainSQLPreflightInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"max_rows":{"default":1000,"description":"Maximum result rows in the final server-bounded execution plan","examples":[1000],"format":"int64","maximum":10000,"minimum":1,"type":"integer"},"sql":{"description":"Read-only ClickHouse SELECT/WITH query to validate and estimate without executing it","examples":["SELECT block_date, project, apy, tvl_usd FROM agent.ethereum_yields_daily WHERE block_date >= today() - 7 LIMIT 100"],"type":"string"}},"required":["sql"],"type":"object"},"HumaProjectDetailBody":{"additionalProperties":false,"properties":{"contracts":{"$ref":"#/components/schemas/ProjectContractsItem","description":"Deployed smart contract addresses across chains"},"funding":{"$ref":"#/components/schemas/ProjectFundingItem","description":"Fundraising history (rounds, amounts, investors)"},"overview":{"$ref":"#/components/schemas/ProjectOverviewItem","description":"Comprehensive project overview (name, description, website, tags, chains, token symbol, social handles)"},"social":{"$ref":"#/components/schemas/ProjectSocialItem","description":"Social media links and follower counts"},"team":{"$ref":"#/components/schemas/ProjectTeamItem","description":"Team members with roles and social links"},"tge_status":{"$ref":"#/components/schemas/ProjectTgeStatusItem","description":"TGE status and exchange listings (pre/upcoming/post)"},"token_info":{"$ref":"#/components/schemas/ProjectTokenInfoItem","description":"Native token market data (price, supply, market cap, price changes)"},"tokenomics":{"$ref":"#/components/schemas/ProjectTokenomicsItem","description":"Legacy token supply and valuation metrics. Does not include unlock schedule, allocation, or unlock percentage data."}},"type":"object"},"HyperliquidAccount":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"as_of":{"description":"When the account sections were fetched upstream (Unix seconds) — for a cached response this predates the response time by up to the cache TTL","format":"int64","type":"integer"},"errors":{"description":"Sections whose fetch failed; omitted when everything succeeded","items":{"$ref":"#/components/schemas/HyperliquidSectionError"},"type":["array","null"]},"perp":{"$ref":"#/components/schemas/HyperliquidPerpSummary","description":"Perps summary; omitted if the fetch failed (see errors[])"},"spot":{"$ref":"#/components/schemas/HyperliquidSpot","description":"Spot balances; omitted if the fetch failed (see errors[])"},"staking":{"$ref":"#/components/schemas/HyperliquidStaking","description":"HYPE staking; omitted if the fetch failed (see errors[])"},"total_value_usd":{"description":"Best-effort total account value, USD: perp equity + vault equity + staked HYPE + spot holdings that have a market price (USDC, stablecoins, and HYPE). Excludes spot tokens with no market price (counted in unpriced_token_count) — so when unpriced_token_count is 0 this is the complete account value, otherwise a lower bound. Omitted when any account section (perp, spot, vaults, staking) failed to load, or when HYPE is held but its price could not be fetched (see errors[]) — so a present value always covers every section.","format":"double","type":"number"},"unpriced_token_count":{"description":"Number of held spot tokens that have no market price and are therefore excluded from total_value_usd. 0 means total_value_usd is complete; greater than 0 means it is a lower bound (the excluded tokens are typically small, illiquid spot tokens).","format":"int64","type":"integer"},"vaults":{"$ref":"#/components/schemas/HyperliquidVaults","description":"Vault equity; omitted if the fetch failed (see errors[])"}},"required":["as_of","unpriced_token_count","address"],"type":"object"},"HyperliquidCandle":{"additionalProperties":false,"properties":{"close":{"description":"Close price, USD","format":"double","type":"number"},"close_time":{"description":"Candle close (Unix seconds)","format":"int64","type":"integer"},"closed":{"description":"true when the candle interval has closed (final)","type":"boolean"},"high":{"description":"High price, USD","format":"double","type":"number"},"interval":{"description":"Candle interval (1m, 1h, 1d, …)","type":"string"},"low":{"description":"Low price, USD","format":"double","type":"number"},"open":{"description":"Open price, USD","format":"double","type":"number"},"open_time":{"description":"Candle open (Unix seconds)","format":"int64","type":"integer"},"quote":{"description":"Quote-asset volume, USD. null for candles before quote-volume coverage began.","format":"double","type":["number","null"]},"symbol":{"description":"Market id","type":"string"},"trades":{"description":"Number of trades in the candle","format":"int64","type":"integer"},"volume":{"description":"Base-asset volume (token units)","format":"double","type":"number"}},"required":["symbol","interval","open_time","close_time","open","high","low","close","volume","quote","trades","closed"],"type":"object"},"HyperliquidCumFunding":{"additionalProperties":false,"properties":{"all_time":{"description":"Funding since the account opened, USD","format":"double","type":"number"},"since_change":{"description":"Funding since this position last changed, USD","format":"double","type":"number"},"since_open":{"description":"Funding since this position was opened, USD","format":"double","type":"number"}},"required":["all_time","since_open","since_change"],"type":"object"},"HyperliquidEpisode":{"additionalProperties":false,"properties":{"close_time":{"description":"When the position fully closed (Unix seconds)","format":"int64","type":"integer"},"direction":{"description":"long or short (side of the opening leg)","type":"string"},"entry_px":{"description":"Size-weighted average entry price, USD","format":"double","type":"number"},"episode_id":{"description":"Stable per-wallet episode id (the opening fill's trade id). Present on warehouse rows; OMITTED on live-tail rows (assigned when the episode lands in the warehouse) — dedup live rows by (symbol, open_time, close_time) until then.","type":"string"},"exit_px":{"description":"Size-weighted average exit price, USD","format":"double","type":"number"},"fees":{"description":"Fees paid over the episode, USD","format":"double","type":"number"},"funding_pnl":{"description":"Funding paid/received over the episode, USD (positive = received). A separate field — net_pnl EXCLUDES funding. Check funding_status before displaying this compatibility value.","format":"double","type":"number"},"funding_status":{"description":"Whether funding_pnl is usable. complete distinguishes a real zero from unavailable historical data; partial is reserved for incomplete attribution.","enum":["complete","partial","unavailable"],"type":"string"},"gross_pnl":{"description":"Realized PnL before fees, USD","format":"double","type":"number"},"hold_seconds":{"description":"Duration the position was held, seconds","format":"int64","type":"integer"},"is_win":{"description":"net_pnl > 0","type":"boolean"},"leverage":{"description":"Opening leverage multiplier. Omitted unless the source contract proves opening-time semantics.","format":"int64","minimum":1,"type":"integer"},"leverage_semantics":{"description":"Explicit meaning of reported_leverage; omitted when unavailable.","enum":["completed_trade_reported"],"type":"string"},"leverage_type":{"description":"Opening margin mode. Omitted unless opening-time semantics are proven.","enum":["cross","isolated"],"type":"string"},"net_pnl":{"description":"Realized PnL after fees, USD (funding excluded — gross_pnl − fees)","format":"double","type":"number"},"notional_usd":{"description":"Opened notional, USD (opened_sz × entry_px) — the size figure /trades/aggregate's volume_usd sums","format":"double","type":"number"},"open_time":{"description":"When the position opened (Unix seconds)","format":"int64","type":"integer"},"opened_sz":{"description":"Total size opened over the episode (token units)","format":"double","type":"number"},"reported_leverage":{"description":"Leverage associated with the completed-trade record; not asserted to be the opening value.","format":"int64","minimum":1,"type":"integer"},"reported_leverage_type":{"description":"Margin mode associated with reported_leverage.","enum":["cross","isolated"],"type":"string"},"source":{"description":"warehouse (from the ClickHouse build) or live (Hydromancer gap-fill past the warehouse watermark)","type":"string"},"symbol":{"description":"Market id the trade was in (BTC, kPEPE, xyz:GOLD)","type":"string"}},"required":["symbol","direction","open_time","close_time","opened_sz","entry_px","exit_px","gross_pnl","net_pnl","fees","funding_pnl","funding_status","is_win","hold_seconds","source","notional_usd"],"type":"object"},"HyperliquidFill":{"additionalProperties":false,"properties":{"closed_pnl":{"description":"Realized profit/loss, USD. 0 on fills that only open or increase a position (see direction) — realized PnL is booked on closing or reducing fills.","format":"double","type":"number"},"crossed":{"description":"true = taker (this fill took liquidity); false = maker (provided liquidity / rebate)","type":"boolean"},"direction":{"description":"e.g. Open Long, Close Short","type":"string"},"fee":{"description":"Fee paid, USD (negative = rebate)","format":"double","type":"number"},"fee_token":{"description":"Fee token (e.g. USDC)","type":"string"},"fill_id":{"description":"Stable unique identifier for this fill. Pass the oldest fill's value back as to_fill_id (alongside its time_ms as to_ms) to page losslessly, and use it to de-duplicate fills across pages — time and hash are NOT unique (many fills can share a second and an on-chain hash).","type":"string"},"hash":{"description":"On-chain transaction hash (the zero hash when is_internal is true). NOT unique per fill — one transaction can settle many fills.","type":"string"},"is_internal":{"description":"true for fills not tied to a standard on-chain order (zero transaction hash)","type":"boolean"},"price":{"description":"Fill price","format":"double","type":"number"},"side":{"description":"buy or sell","type":"string"},"size":{"description":"Amount filled","format":"double","type":"number"},"start_position":{"description":"Position size before this fill","format":"double","type":"number"},"symbol":{"description":"Market id","type":"string"},"time":{"description":"When it filled (Unix seconds). Second-granular; use time_ms for precise ordering and for paging via to_ms.","format":"int64","type":"integer"},"time_ms":{"description":"When it filled (Unix milliseconds). Use for precise ordering/dedup; pass the oldest value back as to_ms (paired with its fill_id as to_fill_id) to page to the next page without losing fills.","format":"int64","type":"integer"},"tx_index":{"description":"Position of the fill's transaction within its block. (time_ms, tx_index) is unique per fill and is the key cursor paging advances on; 0 is a valid value (first transaction in the block).","format":"int64","type":"integer"}},"required":["symbol","side","direction","price","size","start_position","closed_pnl","fee","fee_token","crossed","is_internal","time","time_ms","fill_id","tx_index","hash"],"type":"object"},"HyperliquidHistoricalOrder":{"additionalProperties":false,"properties":{"is_position_tpsl":{"description":"true when this was a position-level TP/SL","type":"boolean"},"is_trigger":{"description":"true for stop / take-profit (trigger) orders","type":"boolean"},"limit_price":{"description":"Limit price, USD","format":"double","type":"number"},"market_type":{"description":"perp or spot. Spot orders carry @index symbols and belong to the spot book, not the perp surfaces.","type":"string"},"order_id":{"description":"Order id (oid)","format":"int64","type":"integer"},"order_type":{"description":"Order type (Limit, Stop Market, …)","type":"string"},"original_size":{"description":"Original size when placed (token units)","format":"double","type":"number"},"placed_time":{"description":"When the order was placed (Unix seconds)","format":"int64","type":"integer"},"reduce_only":{"description":"true when the order could only reduce the position","type":"boolean"},"side":{"description":"buy or sell","type":"string"},"size":{"description":"Remaining size at the terminal state (token units)","format":"double","type":"number"},"status":{"description":"Terminal status: filled, canceled, rejected, …","type":"string"},"status_time":{"description":"When the order reached this status (Unix seconds)","format":"int64","type":"integer"},"symbol":{"description":"Market id. Perp orders use the coin name (BTC, xyz:GOLD); SPOT orders use a raw spot-pair index (@107) — see market_type.","type":"string"},"trigger_condition":{"description":"Human-readable trigger condition (empty for plain limit orders)","type":"string"},"trigger_price":{"description":"Trigger price for stop/take-profit orders, USD (0 when not a trigger)","format":"double","type":"number"}},"required":["symbol","market_type","order_id","side","limit_price","size","original_size","order_type","status","status_time","placed_time","trigger_condition","trigger_price","is_trigger","is_position_tpsl","reduce_only"],"type":"object"},"HyperliquidOpenOrder":{"additionalProperties":false,"properties":{"is_position_tpsl":{"description":"true when this is a position-level TP/SL","type":"boolean"},"is_trigger":{"description":"true for stop / take-profit (trigger) orders","type":"boolean"},"limit_price":{"description":"Limit price, USD","format":"double","type":"number"},"market_type":{"description":"perp or spot. Spot orders carry @index symbols and belong to the spot book, not the perp surfaces.","type":"string"},"order_id":{"description":"Order id (oid)","format":"int64","type":"integer"},"order_type":{"description":"Order type (Limit, Stop Market, …)","type":"string"},"original_size":{"description":"Original size when placed (token units)","format":"double","type":"number"},"reduce_only":{"description":"true when the order can only reduce the position","type":"boolean"},"side":{"description":"buy or sell","type":"string"},"size":{"description":"Remaining size (token units)","format":"double","type":"number"},"symbol":{"description":"Market id. Perp orders use the coin name (BTC, xyz:GOLD); SPOT orders use a raw spot-pair index (@107) that does not join to /positions, /trades, or /fills — see market_type.","type":"string"},"timestamp":{"description":"When the order was placed (Unix seconds)","format":"int64","type":"integer"},"trigger_condition":{"description":"Human-readable trigger condition (empty for plain limit orders)","type":"string"},"trigger_price":{"description":"Trigger price for stop/take-profit orders, USD (0 when not a trigger)","format":"double","type":"number"}},"required":["symbol","market_type","order_id","side","limit_price","size","original_size","order_type","timestamp","trigger_condition","trigger_price","is_trigger","is_position_tpsl","reduce_only"],"type":"object"},"HyperliquidOrders":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address (lowercased)","type":"string"},"as_of":{"description":"When the order sections were fetched upstream (Unix seconds) — the data's age, which for a cached response predates the response time by up to the cache TTL","format":"int64","type":"integer"},"errors":{"description":"Sections whose fetch failed (open, historical); omitted when everything succeeded","items":{"$ref":"#/components/schemas/HyperliquidSectionError"},"type":["array","null"]},"historical":{"description":"Recent terminal orders (filled / canceled / rejected, newest status first), truncated to historical_limit","items":{"$ref":"#/components/schemas/HyperliquidHistoricalOrder"},"type":["array","null"]},"historical_total":{"description":"Total terminal orders before historical_limit truncation — greater than len(historical) means the list was cut","format":"int64","type":"integer"},"open":{"description":"Live resting orders (stops / take-profits / limits), truncated to open_limit","items":{"$ref":"#/components/schemas/HyperliquidOpenOrder"},"type":["array","null"]},"open_total":{"description":"Total open orders before open_limit truncation — greater than len(open) means the list was cut","format":"int64","type":"integer"}},"required":["address","as_of","open","open_total","historical","historical_total"],"type":"object"},"HyperliquidPerformanceView":{"additionalProperties":false,"properties":{"account_value":{"description":"Live PERP clearinghouse equity, USD (from the snapshot) — not total portfolio (spot/vault excluded; see /hyperliquid/account.total_value_usd). A genuinely flat/empty perp account returns 0 with NO errors[] entry; the field is OMITTED only when the snapshot section degraded (which also adds an errors[] entry) — so detect degradation via errors[], not a 0 value.","format":"double","type":"number"},"address":{"description":"Wallet address (lowercased)","type":"string"},"errors":{"description":"Sections whose fetch failed (gap_fill, snapshot, ledger); omitted when everything succeeded","items":{"$ref":"#/components/schemas/HyperliquidSectionError"},"type":["array","null"]},"open_positions":{"description":"Live open positions from the clearinghouse snapshot (empty when the snapshot section degraded — see errors[])","items":{"$ref":"#/components/schemas/HyperliquidPosition"},"type":["array","null"]},"partial":{"description":"true when one or more upstream sections degraded (= errors[] is non-empty); the present sections are still returned","type":"boolean"},"performance":{"$ref":"#/components/schemas/HyperliquidWalletPerf","description":"Lifetime performance re-rolled over the warehouse aggregate + the live gap-fill tail; omitted when the wallet has never traded. A lower bound when errors[] contains gap_fill (the live tail was truncated or unavailable)."},"total_unrealized_pnl":{"description":"Sum of unrealized PnL across the live open positions, USD. Omitted when the snapshot section degraded (see errors[]); 0 for a flat account.","format":"double","type":"number"},"traded_pairs":{"description":"Distinct markets this wallet has closed trades in (warehouse + live tail), e.g. for a breadth badge. 0 when the wallet has never traded.","format":"int64","type":"integer"},"watermark":{"description":"Warehouse episode watermark = the boundary the live gap-fill resumes from (Unix SECONDS); 0 means full backfill","format":"int64","type":"integer"}},"required":["address","open_positions","traded_pairs","watermark","partial"],"type":"object"},"HyperliquidPerpSummary":{"additionalProperties":false,"properties":{"account_value":{"description":"Perps equity, USD","format":"double","type":"number"},"open_position_count":{"description":"Number of open positions","format":"int64","type":"integer"},"total_margin_used":{"description":"Margin in use, USD","format":"double","type":"number"},"withdrawable":{"description":"Withdrawable from perps, USD","format":"double","type":"number"}},"required":["account_value","withdrawable","total_margin_used","open_position_count"],"type":"object"},"HyperliquidPosition":{"additionalProperties":false,"properties":{"cum_funding":{"$ref":"#/components/schemas/HyperliquidCumFunding","description":"Funding paid/received, USD"},"distance_to_liquidation":{"description":"Fraction the mark must move to reach the liquidation price (e.g. 0.05 = 5%), always positive — a RELATIVE fraction, not an absolute price/USD distance. Omitted when there is no liquidation price.","format":"double","type":"number"},"entry_price":{"description":"Average entry price, USD","format":"double","type":"number"},"leverage_type":{"description":"cross or isolated","type":"string"},"leverage_value":{"description":"Leverage used","format":"int64","type":"integer"},"liquidation_price":{"description":"Liquidation price, USD. Omitted when Hyperliquid returns none upstream — common for cross positions whose spot collateral backstops them; fall back to the account-level margin_ratio for proximity.","format":"double","type":"number"},"margin_used":{"description":"Margin on this position, USD","format":"double","type":"number"},"mark_price":{"description":"Current mark price, USD (= position_value / |size|)","format":"double","type":"number"},"max_leverage":{"description":"Max allowed leverage for this market","format":"int64","type":"integer"},"position_value":{"description":"Current value, USD","format":"double","type":"number"},"return_on_equity":{"description":"Return on equity (0.45 = 45%)","format":"double","type":"number"},"side":{"description":"long or short","type":"string"},"size":{"description":"Position size; positive = long, negative = short","format":"double","type":"number"},"symbol":{"description":"Market id (BTC, kPEPE, xyz:GOLD)","type":"string"},"unrealized_pnl":{"description":"Unrealized profit/loss, USD","format":"double","type":"number"}},"required":["symbol","size","side","leverage_type","leverage_value","max_leverage","entry_price","mark_price","position_value","unrealized_pnl","return_on_equity","margin_used","cum_funding"],"type":"object"},"HyperliquidPositions":{"additionalProperties":false,"properties":{"account_value":{"description":"Perp clearinghouse equity, USD (cross-margin summary). NOT total portfolio — for total equity incl. spot/vault/staking use /hyperliquid/account (total_value_usd).","format":"double","type":"number"},"address":{"description":"Wallet address","type":"string"},"cross_maintenance_margin_used":{"description":"Maintenance margin, USD","format":"double","type":"number"},"margin_ratio":{"description":"Maintenance margin / account equity (0-1); the account is liquidated as this approaches 1.0. Use it as the account-level liquidation-proximity signal when a position's liquidation_price is null.","format":"double","type":"number"},"positions":{"description":"Open positions, sorted by position value (largest first)","items":{"$ref":"#/components/schemas/HyperliquidPosition"},"type":["array","null"]},"timestamp":{"description":"When this was captured (Unix seconds)","format":"int64","type":"integer"},"total_margin_used":{"description":"Margin currently in use, USD","format":"double","type":"number"},"total_notional_pos":{"description":"Total size of all positions, USD","format":"double","type":"number"},"total_raw_usd":{"description":"Raw USD balance","format":"double","type":"number"},"withdrawable":{"description":"Available to withdraw, USD","format":"double","type":"number"}},"required":["address","account_value","total_notional_pos","total_raw_usd","total_margin_used","cross_maintenance_margin_used","margin_ratio","withdrawable","timestamp","positions"],"type":"object"},"HyperliquidSectionError":{"additionalProperties":false,"properties":{"reason":{"description":"Short reason for the failure","type":"string"},"section":{"description":"Section that failed: perp, spot, vaults, staking, or pricing (the HYPE-mark lookup that values total_value_usd)","type":"string"}},"required":["section","reason"],"type":"object"},"HyperliquidSpot":{"additionalProperties":false,"properties":{"balances":{"description":"Spot token balances, sorted by symbol","items":{"$ref":"#/components/schemas/HyperliquidSpotBalance"},"type":["array","null"]}},"required":["balances"],"type":"object"},"HyperliquidSpotBalance":{"additionalProperties":false,"properties":{"available":{"description":"Free balance not locked in open orders = total - hold (token units). Not the cross-margin withdrawable.","format":"double","type":"number"},"entry_notional":{"description":"Cost basis, USD","format":"double","type":"number"},"hold":{"description":"Amount locked in open orders (token units)","format":"double","type":"number"},"symbol":{"description":"Token (USDC, HYPE)","type":"string"},"token_id":{"description":"Token index","format":"int64","type":"integer"},"total":{"description":"Token balance (token units)","format":"double","type":"number"},"withdrawable":{"description":"Maintenance-adjusted amount actually withdrawable for this token; differs from available for collateral tokens like USDC (token units). Omitted when not available for this token.","format":"double","type":"number"}},"required":["symbol","token_id","total","hold","available","entry_notional"],"type":"object"},"HyperliquidStaking":{"additionalProperties":false,"properties":{"delegated_hype":{"description":"HYPE staked","format":"double","type":"number"},"pending_withdrawal_count":{"description":"Pending withdrawals","format":"int64","type":"integer"},"total_pending_withdrawal_hype":{"description":"HYPE currently unstaking","format":"double","type":"number"},"undelegated_hype":{"description":"HYPE not delegated","format":"double","type":"number"}},"required":["delegated_hype","undelegated_hype","total_pending_withdrawal_hype","pending_withdrawal_count"],"type":"object"},"HyperliquidTradeContext":{"additionalProperties":false,"properties":{"funding_pnl":{"description":"Funding paid/received during the episode, USD (positive = received). Omitted unless funding_status is complete.","format":"double","type":"number"},"funding_status":{"description":"Whether funding_pnl is usable. complete includes a real zero; partial is reserved for incomplete attribution.","enum":["complete","partial","unavailable"],"type":"string"},"leverage":{"description":"Opening leverage multiplier; omitted because completed-trade semantics do not prove the opening value.","format":"int64","minimum":1,"type":"integer"},"leverage_semantics":{"enum":["completed_trade_reported"],"type":"string"},"leverage_type":{"description":"Opening margin mode; omitted unless opening-time semantics are proven.","enum":["cross","isolated"],"type":"string"},"reported_leverage":{"description":"Leverage from the completed-trade record; not asserted to be the opening value.","format":"int64","minimum":1,"type":"integer"},"reported_leverage_type":{"enum":["cross","isolated"],"type":"string"}},"required":["funding_status"],"type":"object"},"HyperliquidTradeGroup":{"additionalProperties":false,"properties":{"avg_loss":{"description":"Average net_pnl of losing trades, USD (negative); omitted when this group has no losses","format":"double","type":"number"},"avg_win":{"description":"Average net_pnl of winning trades, USD; omitted when this group has no wins","format":"double","type":"number"},"fees":{"description":"Sum of episode fees, USD","format":"double","type":"number"},"funding_pnl":{"description":"Sum of separately-attributed episode funding, USD (positive = received). Never included in net_pnl; check funding_status before use.","format":"double","type":"number"},"funding_status":{"description":"Coverage of funding_pnl for episodes in this group.","enum":["complete","partial","unavailable"],"type":"string"},"gross_pnl":{"description":"Sum of episode gross_pnl, USD (before fees)","format":"double","type":"number"},"key":{"description":"Group identifier: a UTC date (YYYY-MM-DD) for group_by=day; the market id for symbol; long/short for direction; or the tier label (e.g. 10k-100k, 1h-1d) for size_bucket / hold_bucket","type":"string"},"net_pnl":{"description":"Sum of episode net_pnl, USD (funding excluded — gross_pnl − fees)","format":"double","type":"number"},"trade_count":{"description":"Closed episodes (trades) in this group","format":"int64","type":"integer"},"volume_usd":{"description":"Notional volume traded, USD (sum of opened_sz × entry price)","format":"double","type":"number"},"win_rate":{"description":"Share of trades with net_pnl > 0 (0-1)","format":"double","type":"number"}},"required":["key","trade_count","gross_pnl","net_pnl","fees","funding_pnl","funding_status","win_rate","volume_usd"],"type":"object"},"HyperliquidTrader":{"additionalProperties":false,"properties":{"account_age_days":{"description":"Account age in days (lifetime). Omitted when the trader has no fills on record.","format":"int64","type":"integer"},"address":{"description":"Trader's wallet address (0x)","type":"string"},"days_active":{"description":"Distinct active days within the selected window","format":"int64","type":"integer"},"human_score":{"description":"Human-likeness, 0-100","format":"int64","type":"integer"},"rank":{"description":"1-based position within this response's window/sort/filter set, offset-adjusted (rank = offset + row index + 1). NOT a stable global id — it shifts as the leaderboard moves.","format":"int64","type":"integer"},"total_fees":{"description":"Net fees, USD (positive = paid, negative = rebate)","format":"double","type":"number"},"total_funding":{"description":"Net funding, USD (positive = received)","format":"double","type":"number"},"total_pnl":{"description":"Net PnL over the window, USD (after fees + funding)","format":"double","type":"number"},"total_trades":{"description":"Trades in the window","format":"int64","type":"integer"},"traded_pairs":{"description":"Markets the trader has ever filled (lifetime — NOT limited to the selected window, unlike the metrics above), e.g. BTC, kPEPE, xyz:SILVER","items":{"type":"string"},"type":["array","null"]},"volume_traded":{"description":"Notional volume, USD","format":"double","type":"number"},"win_rate":{"description":"Share of profitable trades (0-1)","format":"double","type":"number"}},"required":["rank","address","total_pnl","win_rate","total_trades","volume_traded","total_fees","total_funding","days_active","traded_pairs","human_score"],"type":"object"},"HyperliquidVaultPosition":{"additionalProperties":false,"properties":{"equity":{"description":"Equity in this vault, USD","format":"double","type":"number"},"locked_until":{"description":"Lock expiry, Unix seconds. Compare against the current time — a past value means the lock has expired. Omitted when this vault has no lock.","format":"int64","type":"integer"},"vault_address":{"description":"Vault address","type":"string"}},"required":["vault_address","equity"],"type":"object"},"HyperliquidVaults":{"additionalProperties":false,"properties":{"positions":{"description":"Per-vault positions, sorted by vault address","items":{"$ref":"#/components/schemas/HyperliquidVaultPosition"},"type":["array","null"]},"total_equity":{"description":"Total held in vaults, USD","format":"double","type":"number"}},"required":["total_equity","positions"],"type":"object"},"HyperliquidWalletPerf":{"additionalProperties":false,"properties":{"avg_loss":{"description":"Average net_pnl of losing trades, USD (negative); omitted when there are no losses","format":"double","type":"number"},"avg_win":{"description":"Average net_pnl of winning trades, USD; omitted when there are no wins","format":"double","type":"number"},"fees":{"description":"Sum of episode fees, USD","format":"double","type":"number"},"first_trade":{"description":"Earliest episode close (Unix seconds); 0 when no trades","format":"int64","type":"integer"},"gross_pnl":{"description":"Sum of episode gross_pnl, USD","format":"double","type":"number"},"last_trade":{"description":"Latest episode close (Unix seconds); 0 when no trades","format":"int64","type":"integer"},"losses":{"description":"Episodes with net_pnl < 0","format":"int64","type":"integer"},"net_pnl":{"description":"Sum of episode net_pnl, USD (funding excluded)","format":"double","type":"number"},"profit_factor":{"description":"Total win PnL / total loss PnL; omitted when there are no losses","format":"double","type":"number"},"scratches":{"description":"Episodes with net_pnl == 0","format":"int64","type":"integer"},"trades":{"description":"Closed episodes (trades)","format":"int64","type":"integer"},"volume_usd":{"description":"Notional volume traded, USD","format":"double","type":"number"},"win_rate":{"description":"wins / trades (0-1)","format":"double","type":"number"},"wins":{"description":"Episodes with net_pnl > 0","format":"int64","type":"integer"}},"required":["trades","wins","losses","scratches","win_rate","gross_pnl","fees","net_pnl","volume_usd","first_trade","last_trade"],"type":"object"},"IndicatorValues":{"additionalProperties":false,"properties":{"bbands_lower":{"description":"Bollinger lower band","format":"double","type":"number"},"bbands_middle":{"description":"Bollinger middle band (SMA)","format":"double","type":"number"},"bbands_upper":{"description":"Bollinger upper band","format":"double","type":"number"},"dmi_adx":{"description":"Average Directional Index value","format":"double","type":"number"},"dmi_mdi":{"description":"Negative Directional Indicator (-DI)","format":"double","type":"number"},"dmi_pdi":{"description":"Positive Directional Indicator (+DI)","format":"double","type":"number"},"ichimoku_base":{"description":"Ichimoku baseline (Kijun-sen)","format":"double","type":"number"},"ichimoku_conversion":{"description":"Ichimoku conversion line (Tenkan-sen)","format":"double","type":"number"},"ichimoku_current_span_a":{"description":"Ichimoku current span A","format":"double","type":"number"},"ichimoku_current_span_b":{"description":"Ichimoku current span B","format":"double","type":"number"},"ichimoku_lagging_span_a":{"description":"Ichimoku lagging span A","format":"double","type":"number"},"ichimoku_lagging_span_b":{"description":"Ichimoku lagging span B","format":"double","type":"number"},"ichimoku_span_a":{"description":"Ichimoku leading span A (Senkou A)","format":"double","type":"number"},"ichimoku_span_b":{"description":"Ichimoku leading span B (Senkou B)","format":"double","type":"number"},"macd_hist":{"description":"MACD histogram (MACD minus signal)","format":"double","type":"number"},"macd_signal":{"description":"MACD signal line","format":"double","type":"number"},"macd_value":{"description":"MACD line value","format":"double","type":"number"},"stoch_d":{"description":"Stochastic %D (slow line)","format":"double","type":"number"},"stoch_k":{"description":"Stochastic %K (fast line)","format":"double","type":"number"},"supertrend_advice":{"description":"Supertrend direction: `buy` (price above supertrend, bullish) or `sell` (price below supertrend, bearish)","type":"string"},"supertrend_value":{"description":"Supertrend line value","format":"double","type":"number"}},"type":"object"},"KalshiEvent":{"additionalProperties":false,"properties":{"event_subtitle":{"description":"Event subtitle","type":"string"},"event_ticker":{"description":"Unique event ticker identifier","type":"string"},"event_title":{"description":"Event title","type":"string"},"market_count":{"description":"Number of markets in this event","format":"int64","type":"integer"},"markets":{"description":"Markets within this event","items":{"$ref":"#/components/schemas/KalshiMarketItem"},"type":["array","null"]}},"required":["event_ticker","event_title","market_count","markets"],"type":"object"},"KalshiMarketItem":{"additionalProperties":false,"properties":{"category":{"description":"Surf curated market category","type":"string"},"close_time":{"description":"Market close time (Unix seconds)","format":"int64","type":"integer"},"end_time":{"description":"Market end time (Unix seconds)","format":"int64","type":"integer"},"event_ticker":{"description":"Parent event ticker","type":"string"},"event_title":{"description":"Event title","type":"string"},"last_day_open_interest":{"description":"Previous day open interest from daily report","format":"double","type":"number"},"market_ticker":{"description":"Unique market ticker identifier","type":"string"},"notional_volume_usd":{"description":"Last day notional trading volume in USD (each contract = $1)","format":"double","type":"number"},"open_interest":{"description":"Open interest (contracts)","format":"double","type":"number"},"payout_type":{"description":"Payout type","type":"string"},"result":{"description":"Market result if resolved","type":"string"},"start_time":{"description":"Market start time (Unix seconds)","format":"int64","type":"integer"},"status":{"description":"Market status","type":"string"},"subcategory":{"description":"Surf curated market subcategory","type":"string"},"title":{"description":"Market title","type":"string"},"total_volume":{"description":"Total trading volume (contracts)","format":"int64","type":"integer"}},"required":["market_ticker","event_ticker","title","status","payout_type","total_volume","notional_volume_usd","open_interest","last_day_open_interest"],"type":"object"},"KalshiOIPoint":{"additionalProperties":false,"properties":{"open_interest":{"description":"Open interest on this date (contracts)","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds (midnight UTC for the trading day)","format":"int64","type":"integer"}},"required":["timestamp","open_interest"],"type":"object"},"KalshiPricePoint":{"additionalProperties":false,"properties":{"high":{"description":"Highest price as probability (0-1)","format":"double","type":"number"},"low":{"description":"Lowest price as probability (0-1)","format":"double","type":"number"},"open":{"description":"Opening price as probability (0-1). Present for daily interval only.","format":"double","type":"number"},"side_a":{"$ref":"#/components/schemas/KalshiPriceSide","description":"Yes outcome price data (close price for daily/hourly)"},"side_b":{"$ref":"#/components/schemas/KalshiPriceSide","description":"No outcome price data (close price for daily/hourly)"},"timestamp":{"description":"Unix timestamp in seconds (midnight UTC for daily, hour start for hourly, trade time for latest)","format":"int64","type":"integer"}},"required":["timestamp","side_a","side_b","high","low"],"type":"object"},"KalshiPriceSide":{"additionalProperties":false,"properties":{"label":{"description":"Outcome label: `Yes` or `No`","type":"string"},"price":{"description":"Price as probability (0-1)","format":"double","type":"number"}},"required":["label","price"],"type":"object"},"KalshiTrade":{"additionalProperties":false,"properties":{"market_ticker":{"description":"Unique market ticker identifier","type":"string"},"no_price":{"description":"No outcome price as probability (0-1)","format":"double","type":"number"},"notional_volume_usd":{"description":"Notional volume in USD (each contract = $1)","format":"int64","type":"integer"},"taker_side":{"description":"Taker side: `yes` or `no`","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"trade_id":{"description":"Unique trade identifier","type":"string"},"yes_price":{"description":"Yes outcome price as probability (0-1)","format":"double","type":"number"}},"required":["timestamp","trade_id","market_ticker","taker_side","yes_price","no_price","notional_volume_usd"],"type":"object"},"KalshiVolumePoint":{"additionalProperties":false,"properties":{"notional_volume_usd":{"description":"Notional volume in USD (each contract counted as $1)","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds (midnight UTC for the trading day)","format":"int64","type":"integer"}},"required":["timestamp","notional_volume_usd"],"type":"object"},"LeaderboardItem":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"pnl":{"description":"Realized PnL (USD)","format":"double","type":"number"},"positions":{"description":"Total positions","format":"int64","type":"integer"},"positions_lost":{"description":"Number of losing positions","format":"int64","type":"integer"},"positions_open":{"description":"Number of open positions","format":"int64","type":"integer"},"positions_won":{"description":"Number of winning positions","format":"int64","type":"integer"},"trade_count":{"description":"Total number of trades","format":"int64","type":"integer"},"volume":{"description":"Total trading volume (USD)","format":"double","type":"number"}},"required":["address","pnl","volume","trade_count","positions","positions_won","positions_lost","positions_open"],"type":"object"},"LiquidationChartItem":{"additionalProperties":false,"properties":{"contributing_exchanges":{"description":"Exchanges that contributed to this liquidation point","items":{"type":"string"},"type":["array","null"]},"excluded_exchanges":{"description":"Requested exchanges omitted because liquidation data is unavailable","items":{"type":"string"},"type":["array","null"]},"long_liquidation_usd":{"description":"Long-side aggregated liquidation volume (USD)","format":"double","type":"number"},"short_liquidation_usd":{"description":"Short-side aggregated liquidation volume (USD)","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"}},"required":["timestamp","long_liquidation_usd","short_liquidation_usd"],"type":"object"},"LiquidationExchangeItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange name like `Binance` or `OKX`. `All` = aggregate across all exchanges","type":"string"},"liquidation_usd":{"description":"Total liquidation volume (USD)","format":"double","type":"number"},"long_liquidation_usd":{"description":"Long-side liquidation volume (USD)","format":"double","type":"number"},"short_liquidation_usd":{"description":"Short-side liquidation volume (USD)","format":"double","type":"number"}},"required":["exchange","liquidation_usd","long_liquidation_usd","short_liquidation_usd"],"type":"object"},"LiquidationOrderItem":{"additionalProperties":false,"properties":{"base_asset":{"description":"Base token symbol like `BTC`","type":"string"},"exchange":{"description":"Exchange name like `Binance` or `OKX`","type":"string"},"order_id":{"description":"Deterministic fingerprint for this liquidation row","type":"string"},"price":{"description":"Liquidation execution price (USD)","format":"double","type":"number"},"side":{"description":"Liquidation side: `long` or `short`","type":"string"},"symbol":{"description":"Full trading pair like `BTCUSDT`","type":"string"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"usd_value":{"description":"Liquidated position size (USD)","format":"double","type":"number"}},"required":["order_id","exchange","symbol","base_asset","price","usd_value","side","timestamp"],"type":"object"},"ListingEventItem":{"additionalProperties":false,"properties":{"base_symbol":{"description":"Base currency symbol","type":"string"},"effective_at":{"description":"When the listing/delisting takes effect (Unix seconds)","format":"int64","type":"integer"},"event_type":{"description":"LISTING or DELISTING","type":"string"},"exchange_name":{"description":"Exchange name","type":"string"},"product":{"description":"Product type (SPOT, PERP, etc.)","type":"string"},"published_at":{"description":"When the announcement was published (Unix seconds)","format":"int64","type":"integer"},"quote_symbol":{"description":"Quote currency symbol","type":"string"},"trading_pair":{"description":"Trading pair like BTC/USDT","type":"string"}},"required":["exchange_name","product","trading_pair","event_type","effective_at"],"type":"object"},"MarketETFFlowItem":{"additionalProperties":false,"properties":{"etfs":{"description":"Flow breakdown by individual ETF ticker","items":{"$ref":"#/components/schemas/ETFTickerFlow"},"type":["array","null"]},"flow_usd":{"description":"Daily net flow in USD (positive=inflow, negative=outflow)","format":"double","type":"number"},"price_usd":{"description":"Token price in USD at close of day","format":"double","type":"number"},"project_id":{"description":"Surf project UUID of the underlying, for frontend entity linking. Empty when unmapped.","type":"string"},"settled":{"description":"Whether this trading day is final. Current-day rows may still be pending upstream settlement.","type":"boolean"},"symbol":{"description":"Underlying token symbol like `BTC`, `ETH`, `XRP`, `SOL`, or `HYPE`","type":"string"},"timestamp":{"description":"Unix timestamp in seconds (midnight UTC for the trading day)","format":"int64","type":"integer"}},"required":["flow_usd","price_usd","timestamp","settled"],"type":"object"},"MarketExchangeFlowExchangeItem":{"additionalProperties":false,"properties":{"name":{"description":"Human-readable exchange name","type":"string"},"supported_flow_filter":{"description":"Whether this filter is in Hermod's curated exchange-flow allowlist","type":"boolean"},"symbol":{"description":"Exchange filter value to pass as the `exchange` query parameter","type":"string"},"type":{"description":"Filter type: `aggregate` for upstream exchange categories or `exchange` for individual exchanges","type":"string"}},"required":["symbol","name","type","supported_flow_filter"],"type":"object"},"MarketFearGreedHistoryItem":{"additionalProperties":false,"properties":{"classification":{"description":"Human-readable classification (Extreme Fear, Fear, Neutral, Greed, Extreme Greed)","type":"string"},"price":{"description":"BTC price in USD at this point in time","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds for this data point","format":"int64","type":"integer"},"value":{"description":"Fear and Greed Index score from 0 (extreme fear) to 100 (extreme greed)","format":"int64","type":"integer"}},"required":["value","classification","price","timestamp"],"type":"object"},"MarketFuturesItem":{"additionalProperties":false,"properties":{"funding_rate":{"description":"Current funding rate as a decimal (`0.0001` = 0.01%)","format":"double","type":"number"},"long_short_ratio":{"description":"Ratio of long to short positions","format":"double","type":"number"},"open_interest":{"description":"Total open interest in USD","format":"double","type":"number"},"project_id":{"description":"Surf project UUID this symbol resolved to, for frontend entity linking. Empty when unmapped.","type":"string"},"symbol":{"description":"Trading symbol like `BTC` or `ETH`","type":"string"},"updated_at":{"description":"Unix timestamp (seconds) of last update","format":"int64","type":"integer"},"volume_24h":{"description":"24-hour trading volume in USD","format":"double","type":"number"},"volume_change_24h":{"description":"24-hour volume change in USD (positive=increase, negative=decrease)","format":"double","type":"number"}},"required":["symbol","open_interest","funding_rate","long_short_ratio","volume_24h","volume_change_24h","updated_at"],"type":"object"},"MarketIndicatorItem":{"additionalProperties":false,"properties":{"interval":{"description":"Time interval used to compute the indicator like `1h`, `4h`, or `1d`","type":"string"},"name":{"description":"Indicator name like `rsi`, `macd`, or `bbands`","type":"string"},"project_id":{"description":"Surf project UUID this symbol resolved to, for frontend entity linking. Empty when unmapped.","type":"string"},"symbol":{"description":"Token symbol this indicator is computed for","type":"string"},"timestamp":{"description":"Candle open timestamp in Unix seconds (present in time-series responses)","format":"int64","type":"integer"},"updated_at":{"description":"Unix timestamp in seconds when the indicator was last computed","format":"int64","type":"integer"},"value":{"description":"Primary indicator value","format":"double","type":"number"},"values":{"$ref":"#/components/schemas/IndicatorValues","description":"Component values for multi-value indicators. Present for macd, bbands, stoch, dmi, ichimoku, supertrend. Nil for single-value indicators (rsi, ema, sma, atr, cci, obv, vwap)."}},"required":["name","symbol","interval","value"],"type":"object"},"MarketMetricPoint":{"additionalProperties":false,"properties":{"exchange":{"description":"Exchange filter used for exchange-flow metrics. Omitted for non-exchange-flow metrics.","type":"string"},"exchange_name":{"description":"Human-readable exchange name for exchange-flow metrics. Omitted for non-exchange-flow metrics.","type":"string"},"metric":{"description":"Metric name like `nupl`, `sopr`, or `exchange-flows/inflow`","type":"string"},"project_id":{"description":"Surf project UUID this symbol resolved to, for frontend entity linking. Empty when unmapped.","type":"string"},"symbol":{"description":"Token symbol this data point belongs to","type":"string"},"timestamp":{"description":"Unix timestamp in seconds for this data point","format":"int64","type":"integer"},"value":{"description":"Metric value at this timestamp","format":"double","type":"number"}},"required":["value","timestamp"],"type":"object"},"MarketOptionsItem":{"additionalProperties":false,"properties":{"exchange":{"description":"Options exchange name","type":"string"},"max_pain_price":{"description":"Max pain price for the nearest expiry in USD. Only available for individual exchanges (Deribit, OKX, Binance, Bybit), not present on the `All` aggregate row.","format":"double","type":"number"},"open_interest":{"description":"Total options open interest in USD","format":"double","type":"number"},"project_id":{"description":"Surf project UUID this symbol resolved to, for frontend entity linking. Empty when unmapped.","type":"string"},"put_call_ratio":{"description":"Put/call open interest ratio (put OI / call OI). Values above 1 indicate bearish sentiment. Only available for individual exchanges (Deribit, OKX, Binance, Bybit), not present on the `All` aggregate row.","format":"double","type":"number"},"symbol":{"description":"Underlying token symbol like `BTC` or `ETH`","type":"string"},"updated_at":{"description":"Unix timestamp (seconds) of last update","format":"int64","type":"integer"},"volume_24h":{"description":"24-hour options trading volume in USD","format":"double","type":"number"}},"required":["symbol","exchange","open_interest","volume_24h","updated_at"],"type":"object"},"MarketPriceResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/MarketPriceResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"description":"Historical price points","items":{"$ref":"#/components/schemas/MarketMetricPoint"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta","description":"Cost and cache metadata for this response"},"project_id":{"description":"Surf project UUID the `--symbol` resolved to, for frontend entity linking. Empty when the symbol is unmapped.","type":"string"},"summary":{"$ref":"#/components/schemas/MarketPriceSummary","description":"Rollup statistics over the requested time range"},"symbol":{"description":"The queried ticker, normalized.","type":"string"}},"required":["data","summary","meta"],"type":"object"},"MarketPriceSummary":{"additionalProperties":false,"properties":{"change_abs":{"description":"Absolute change in the quote currency: last - first","format":"double","type":"number"},"change_pct":{"description":"Percentage change rounded to 4 decimals: (last - first) / first * 100. Zero when first is zero.","format":"double","type":"number"},"first":{"description":"Value of the earliest-timestamp point in the requested time range","format":"double","type":"number"},"high":{"description":"Highest value observed in the requested time range","format":"double","type":"number"},"last":{"description":"Value of the latest-timestamp point in the requested time range","format":"double","type":"number"},"latest_dt":{"description":"Unix seconds of the latest-timestamp point","format":"int64","type":"integer"},"low":{"description":"Lowest value observed in the requested time range","format":"double","type":"number"},"n_points":{"description":"Number of points in the underlying time-series","format":"int64","type":"integer"}},"required":["first","last","high","low","change_abs","change_pct","latest_dt","n_points"],"type":"object"},"MarketTopCoinItem":{"additionalProperties":false,"properties":{"ath":{"description":"All-time high price in USD","format":"double","type":"number"},"ath_date":{"description":"Unix timestamp in seconds when the all-time high price was reached","format":"int64","type":"integer"},"atl":{"description":"All-time low price in USD","format":"double","type":"number"},"atl_date":{"description":"Unix timestamp in seconds when the all-time low price was reached","format":"int64","type":"integer"},"change_24h_pct":{"description":"Price change percentage over the last 24 hours","format":"double","type":"number"},"circulating_supply":{"description":"Circulating token supply","format":"double","type":"number"},"fdv":{"description":"Fully diluted valuation in USD","format":"double","type":"number"},"high_24h":{"description":"Highest price in the last 24 hours in USD","format":"double","type":"number"},"id":{"description":"Surf project UUID. Empty when no matching Surf project metadata is available.","type":"string"},"image":{"description":"Token logo image URL","type":"string"},"low_24h":{"description":"Lowest price in the last 24 hours in USD","format":"double","type":"number"},"market_cap_usd":{"description":"Total market capitalization in USD","format":"double","type":"number"},"max_supply":{"description":"Maximum token supply (e.g. 21M for BTC). Not available for all tokens.","format":"double","type":"number"},"name":{"description":"Full token name","type":"string"},"price_usd":{"description":"Current price in USD","format":"double","type":"number"},"rank":{"description":"Rank position in the list (1 = highest)","format":"int64","type":"integer"},"slug":{"description":"Surf project slug. Empty under the same conditions as id.","type":"string"},"symbol":{"description":"Token ticker symbol like `BTC` or `ETH`","type":"string"},"total_supply":{"description":"Total token supply","format":"double","type":"number"},"volume_24h_usd":{"description":"24-hour trading volume in USD","format":"double","type":"number"}},"required":["rank","symbol","name","price_usd","change_24h_pct","market_cap_usd","volume_24h_usd","high_24h","low_24h"],"type":"object"},"MatchedMarketDailyItem":{"additionalProperties":false,"properties":{"kalshi_oi_contracts":{"description":"Kalshi open interest (contracts)","format":"double","type":"number"},"kalshi_volume_contracts":{"description":"Kalshi daily volume (contracts)","format":"double","type":"number"},"polymarket_oi_usd":{"description":"Polymarket open interest (USD)","format":"double","type":"number"},"polymarket_volume_usd":{"description":"Polymarket daily volume (USD)","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp (midnight UTC)","format":"int64","type":"integer"}},"required":["timestamp","polymarket_volume_usd","polymarket_oi_usd","kalshi_volume_contracts","kalshi_oi_contracts"],"type":"object"},"MatchedMarketKalshi":{"additionalProperties":false,"properties":{"event_ticker":{"description":"Kalshi event ticker","type":"string"},"market_ticker":{"description":"Kalshi market ticker","type":"string"},"open_interest":{"description":"Open interest in contracts","format":"double","type":"number"},"status":{"description":"Market status","type":"string"},"title":{"description":"Market title","type":"string"},"volume_contracts":{"description":"Total volume in contracts","format":"double","type":"number"}},"required":["market_ticker","title","event_ticker","volume_contracts","open_interest","status"],"type":"object"},"MatchedMarketPair":{"additionalProperties":false,"properties":{"category":{"description":"Market category","type":"string"},"confidence":{"description":"Match confidence score (75-100)","format":"int64","type":"integer"},"kalshi":{"$ref":"#/components/schemas/MatchedMarketKalshi","description":"Kalshi market details"},"kalshi_price":{"description":"Kalshi YES-side probability (0-1). Omitted when no realtime price is available.","format":"double","type":"number"},"match_type":{"description":"Match type: exact or related","type":"string"},"polymarket":{"$ref":"#/components/schemas/MatchedMarketPolymarket","description":"Polymarket market details"},"polymarket_price":{"description":"Polymarket matched outcome probability (0-1). Omitted when no realtime price is available.","format":"double","type":"number"},"spread_pct":{"description":"Absolute spread between Polymarket matched-outcome and Kalshi YES probabilities, expressed as a percentage. Only present when both prices are known.","format":"double","type":"number"}},"required":["confidence","match_type","category","polymarket","kalshi"],"type":"object"},"MatchedMarketPolymarket":{"additionalProperties":false,"properties":{"condition_id":{"description":"Polymarket condition identifier","type":"string"},"event_slug":{"description":"Event slug identifier","type":"string"},"is_active":{"description":"Whether the market is currently active","type":"boolean"},"outcome_label":{"description":"Polymarket matched outcome label","type":"string"},"question":{"description":"Market question text","type":"string"},"token_id":{"description":"Polymarket matched outcome token ID","type":"string"},"volume_usd":{"description":"Total trading volume (USD)","format":"double","type":"number"}},"required":["condition_id","question","event_slug","volume_usd","is_active"],"type":"object"},"MomentumItem":{"additionalProperties":false,"properties":{"category":{"description":"Surf-curated category","type":"string"},"condition_id":{"description":"Polymarket condition ID","type":"string"},"latest_price":{"description":"Latest YES price (0-1)","format":"double","type":"number"},"oi_change_7d":{"description":"7-day open interest change (USD)","format":"double","type":"number"},"price_change_7d":{"description":"7-day price change","format":"double","type":"number"},"price_momentum":{"description":"CONFIRMING_UP, CONFIRMING_DOWN, DIVERGING_UP, DIVERGING_DOWN, or NEUTRAL","type":"string"},"question":{"description":"Market question text","type":"string"},"smart_money_direction":{"description":"BULLISH, BEARISH, or NEUTRAL","type":"string"},"smart_wallets_involved":{"description":"Number of smart wallets with positions","format":"int64","type":"integer"},"subcategory":{"description":"Surf-curated subcategory","type":"string"},"volume_7d":{"description":"7-day volume (USD)","format":"double","type":"number"},"volume_direction":{"description":"INCREASING, STABLE, or DECREASING","type":"string"},"whale_flow_net_1d":{"description":"Net whale flow (USD) last 24h","format":"double","type":"number"},"whale_flow_net_7d":{"description":"Net whale flow (USD) last 7 days","format":"double","type":"number"}},"required":["condition_id","question","category","latest_price","price_change_7d","volume_7d","volume_direction","price_momentum","smart_money_direction","smart_wallets_involved","whale_flow_net_1d","whale_flow_net_7d","oi_change_7d"],"type":"object"},"MomentumSummary":{"additionalProperties":false,"properties":{"confirming_down":{"description":"Price down + volume up","format":"int64","type":"integer"},"confirming_up":{"description":"Price up + volume up","format":"int64","type":"integer"},"diverging_down":{"description":"Price down + volume down","format":"int64","type":"integer"},"diverging_up":{"description":"Price up + volume down","format":"int64","type":"integer"},"neutral":{"description":"No clear momentum","format":"int64","type":"integer"},"total_active":{"description":"Total active markets (in category, or globally when category is omitted)","format":"int64","type":"integer"},"volume_decreasing":{"description":"Markets with decreasing volume","format":"int64","type":"integer"},"volume_increasing":{"description":"Markets with increasing volume","format":"int64","type":"integer"}},"required":["total_active","confirming_up","confirming_down","diverging_up","diverging_down","neutral","volume_increasing","volume_decreasing"],"type":"object"},"NewsArticleDetailItem":{"additionalProperties":false,"properties":{"content":{"description":"Full article body text","type":"string"},"id":{"description":"Article ID","type":"string"},"project_id":{"description":"Surf project UUID","type":"string"},"project_name":{"description":"Primary crypto project referenced in the article","type":"string"},"published_at":{"description":"Unix timestamp in seconds when the article was published","format":"int64","type":"integer"},"source":{"description":"Publisher name","type":"string"},"summary":{"description":"Short summary of the article","type":"string"},"title":{"description":"Article headline","type":"string"},"url":{"description":"Direct URL to the original article","type":"string"}},"required":["id","title","content","published_at"],"type":"object"},"NewsArticleItem":{"additionalProperties":false,"properties":{"highlights":{"additionalProperties":{"items":{"type":"string"},"type":["array","null"]},"description":"Search highlight fragments with <em> tags around matching terms. Only present in search results.","type":"object"},"id":{"description":"Article ID. Use with the detail endpoint to fetch full content.","type":"string"},"project_id":{"description":"Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup","type":"string"},"project_name":{"description":"Primary crypto project referenced in the article","type":"string"},"published_at":{"description":"Unix timestamp in seconds when the article was published","format":"int64","type":"integer"},"source":{"description":"Publisher name (e.g. COINDESK, COINTELEGRAPH)","type":"string"},"summary":{"description":"Short summary of the article","type":"string"},"title":{"description":"Article headline","type":"string"},"url":{"description":"Direct URL to the original article","type":"string"}},"required":["id","title","published_at"],"type":"object"},"ObjectResponseMeta":{"additionalProperties":false,"properties":{"cached":{"description":"Whether this response was served from cache","type":"boolean"},"credits_used":{"description":"Credits deducted for this request","format":"int64","type":"integer"},"empty_reason":{"description":"Hint explaining why the data array is empty, when applicable","type":"string"}},"required":["credits_used","cached"],"type":"object"},"OffsetMeta":{"additionalProperties":false,"properties":{"cached":{"description":"Whether this response was served from cache","type":"boolean"},"credits_used":{"description":"Credits deducted for this request","format":"int64","type":"integer"},"empty_reason":{"description":"Hint explaining why the data array is empty, when applicable","type":"string"},"has_more":{"description":"Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.","type":"boolean"},"limit":{"description":"Maximum number of items returned in this response","format":"int64","type":"integer"},"offset":{"description":"Number of items skipped (pagination offset)","format":"int64","type":"integer"},"total":{"description":"Total number of matching items (before pagination). Omitted when total is unknown.","format":"int64","type":"integer"},"watermark":{"description":"Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.","format":"int64","type":"integer"}},"required":["limit","offset","credits_used","cached"],"type":"object"},"OnchainGasPriceItem":{"additionalProperties":false,"properties":{"chain":{"description":"Canonical chain name","type":"string"},"gas_price":{"description":"Gas price in wei","type":"string"},"gas_price_gwei":{"description":"Gas price in Gwei","format":"double","type":"number"}},"required":["chain","gas_price","gas_price_gwei"],"type":"object"},"OnchainPhysicalTable":{"additionalProperties":false,"properties":{"database":{"description":"Physical ClickHouse database","type":"string"},"engine":{"description":"Physical ClickHouse table engine","type":"string"},"partition_key":{"description":"Physical PARTITION BY expression","type":"string"},"primary_key":{"description":"Physical primary-key expression","type":"string"},"sorting_key":{"description":"Physical ORDER BY expression","type":"string"},"table":{"description":"Physical ClickHouse table","type":"string"},"total_bytes":{"description":"Current compressed bytes from system.tables","format":"int64","type":"integer"},"total_rows":{"description":"Current physical row estimate from system.tables","format":"int64","type":"integer"}},"required":["database","table","engine"],"type":"object"},"OnchainSQLPreflight":{"additionalProperties":false,"properties":{"accepted":{"description":"Whether the plan remains within required filters and configured scan budgets","type":"boolean"},"budget":{"$ref":"#/components/schemas/OnchainSQLPreflightBudget","description":"Server-enforced scan and execution budgets"},"estimate":{"$ref":"#/components/schemas/OnchainSQLPreflightEstimate","description":"Estimated physical scan returned before execution"},"executed_sql":{"description":"Final SQL after server row limits and scan budgets are applied; preflight does not execute it","type":"string"},"query_id":{"description":"ClickHouse query ID used for this EXPLAIN ESTIMATE operation","type":"string"},"request_id":{"description":"Request correlation ID echoed in the X-Request-ID response header","type":"string"},"sql":{"description":"Original submitted SQL","type":"string"},"tables":{"description":"Allowlisted logical tables and bounded physical source metadata used by the plan","items":{"$ref":"#/components/schemas/OnchainSchemaTable"},"type":["array","null"]},"warnings":{"description":"Deterministic guardrail findings and recommended actions","items":{"$ref":"#/components/schemas/OnchainSQLPreflightWarning"},"type":["array","null"]}},"required":["request_id","query_id","accepted","sql","executed_sql","tables","estimate","budget","warnings"],"type":"object"},"OnchainSQLPreflightBudget":{"additionalProperties":false,"properties":{"max_bytes_to_read":{"description":"Maximum ClickHouse bytes the query may read; zero means disabled","format":"int64","type":"integer"},"max_execution_time_seconds":{"description":"Synchronous execution-time budget in seconds","format":"int64","type":"integer"},"max_rows_to_read":{"description":"Maximum ClickHouse rows the query may read; zero means disabled","format":"int64","type":"integer"}},"required":["max_rows_to_read","max_bytes_to_read","max_execution_time_seconds"],"type":"object"},"OnchainSQLPreflightEstimate":{"additionalProperties":false,"properties":{"by_table":{"description":"Per-physical-table estimates","items":{"$ref":"#/components/schemas/OnchainSQLPreflightTableEstimate"},"type":["array","null"]},"bytes":{"description":"Estimated bytes derived from physical table bytes per row","format":"int64","type":"integer"},"marks":{"description":"Estimated index granules to read","format":"int64","type":"integer"},"parts":{"description":"Estimated active data parts","format":"int64","type":"integer"},"rows":{"description":"Estimated rows to read","format":"int64","type":"integer"}},"required":["parts","rows","marks","bytes","by_table"],"type":"object"},"OnchainSQLPreflightTableEstimate":{"additionalProperties":false,"properties":{"bytes":{"description":"Estimated bytes derived from current physical table size","format":"int64","type":"integer"},"database":{"description":"Physical ClickHouse database","type":"string"},"marks":{"description":"Estimated index granules to read","format":"int64","type":"integer"},"parts":{"description":"Estimated active data parts","format":"int64","type":"integer"},"rows":{"description":"Estimated rows to read","format":"int64","type":"integer"},"table":{"description":"Physical ClickHouse table","type":"string"}},"required":["database","table","parts","rows","marks","bytes"],"type":"object"},"OnchainSQLPreflightWarning":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable warning code","type":"string"},"message":{"description":"Human-readable explanation","type":"string"},"recommended_action":{"description":"Concrete action that preserves the requested query semantics","type":"string"},"severity":{"description":"Warning is advisory; error makes accepted false","enum":["warning","error"],"type":"string"}},"required":["code","severity","message","recommended_action"],"type":"object"},"OnchainSchemaCol":{"additionalProperties":false,"properties":{"comment":{"description":"Column comment or description","type":"string"},"name":{"description":"Column name","type":"string"},"type":{"description":"Column data type like `UInt64`, `String`, or `DateTime`","type":"string"}},"required":["name","type"],"type":"object"},"OnchainSchemaTable":{"additionalProperties":false,"properties":{"columns":{"description":"List of columns in this table","items":{"$ref":"#/components/schemas/OnchainSchemaCol"},"type":["array","null"]},"database":{"description":"Database name (always `agent`)","type":"string"},"engine":{"description":"Logical table engine, commonly View","type":"string"},"partition_key":{"description":"Logical table PARTITION BY expression when applicable","type":"string"},"physical_sources":{"description":"Bounded physical source metadata for a selected logical view","items":{"$ref":"#/components/schemas/OnchainPhysicalTable"},"type":["array","null"]},"primary_key":{"description":"Logical table primary-key expression when applicable","type":"string"},"sorting_key":{"description":"Logical table ORDER BY expression when applicable","type":"string"},"table":{"description":"Logical table name","type":"string"},"total_bytes":{"description":"Logical table compressed bytes when available","format":"int64","type":"integer"},"total_rows":{"description":"Logical table row estimate when available","format":"int64","type":"integer"}},"required":["database","table","columns"],"type":"object"},"OnchainTxItem":{"additionalProperties":false,"properties":{"accessList":{"description":"List of addresses and storage keys. Empty array for legacy; populated for EIP-2930+","items":{"$ref":"#/components/schemas/AccessListEntry"},"type":["array","null"]},"blobVersionedHashes":{"description":"Versioned hashes of blob commitments. EIP-4844 only","items":{"type":"string"},"type":["array","null"]},"blockHash":{"description":"Block hash, null if pending","type":["string","null"]},"blockNumber":{"description":"Block number (hex), null if pending","type":["string","null"]},"chainId":{"description":"Chain ID (hex)","type":"string"},"from":{"description":"Sender address (0x-prefixed)","type":"string"},"from_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for the from address. Only present when the request sets `include=labels`."},"gas":{"description":"Gas limit (hex)","type":"string"},"gasPrice":{"description":"Gas price in wei (hex). Present in all types; for EIP-1559 this is the effective gas price","type":"string"},"hash":{"description":"Transaction hash (0x-prefixed)","type":"string"},"input":{"description":"Call data (hex)","type":"string"},"maxFeePerBlobGas":{"description":"Max fee per blob gas in wei (hex). EIP-4844 only","type":"string"},"maxFeePerGas":{"description":"Max fee per gas in wei (hex). EIP-1559/EIP-4844 only","type":"string"},"maxPriorityFeePerGas":{"description":"Max priority fee per gas in wei (hex). EIP-1559/EIP-4844 only","type":"string"},"nonce":{"description":"Sender nonce (hex)","type":"string"},"r":{"description":"Signature R (hex)","type":"string"},"s":{"description":"Signature S (hex)","type":"string"},"to":{"description":"Recipient address, null for contract creation","type":["string","null"]},"to_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for the to address. Only present when the request sets `include=labels` and the transaction is not a contract creation."},"transactionIndex":{"description":"Index in block (hex), null if pending","type":["string","null"]},"type":{"description":"Transaction type: 0x0=legacy, 0x1=EIP-2930, 0x2=EIP-1559, 0x3=EIP-4844","type":"string"},"v":{"description":"Signature V (hex). Legacy: recovery ID (0x1b/0x1c); EIP-2930+: parity (0x0/0x1)","type":"string"},"value":{"description":"ETH value in wei (hex)","type":"string"},"yParity":{"description":"Signature Y parity (hex). Present in EIP-2930+ transactions","type":"string"}},"required":["hash","nonce","blockHash","blockNumber","transactionIndex","from","to","value","gas","input","type","v","r","s","accessList"],"type":"object"},"PolymarketEvent":{"additionalProperties":false,"properties":{"category":{"description":"Surf curated event category","type":"string"},"description":{"description":"Event description","type":"string"},"end_time":{"description":"Event end time (Unix seconds)","format":"int64","type":"integer"},"event_slug":{"description":"Event identifier slug","type":"string"},"image":{"description":"Event image URL","type":"string"},"market_count":{"description":"Number of markets in this event","format":"int64","type":"integer"},"markets":{"description":"Markets within this event","items":{"$ref":"#/components/schemas/PolymarketMarketItem"},"type":["array","null"]},"settlement_sources":{"description":"Resolution source URL","type":"string"},"start_time":{"description":"Event start time (Unix seconds)","format":"int64","type":"integer"},"status":{"description":"Event status: `open` if any market is open, `closed` if all markets are closed","type":"string"},"subcategory":{"description":"Surf curated event subcategory","type":"string"},"tags":{"description":"Event tags","items":{"type":"string"},"type":["array","null"]},"title":{"description":"Event title","type":"string"},"volume_total":{"description":"Total event volume across all markets (USD)","format":"double","type":"number"}},"required":["event_slug","title","status","volume_total","market_count","markets"],"type":"object"},"PolymarketMarketItem":{"additionalProperties":false,"properties":{"category":{"description":"Surf curated market category","type":"string"},"close_time":{"description":"Market close time (Unix seconds)","format":"int64","type":"integer"},"completed_time":{"description":"Resolution time (Unix seconds)","format":"int64","type":"integer"},"condition_id":{"description":"Unique condition identifier","type":"string"},"description":{"description":"Market description","type":"string"},"end_time":{"description":"Market end time (Unix seconds)","format":"int64","type":"integer"},"event_slug":{"description":"Event identifier slug","type":"string"},"game_start_time":{"description":"Game start time for sports markets (Unix seconds)","format":"int64","type":"integer"},"image":{"description":"Market image URL","type":"string"},"market_slug":{"description":"Market identifier slug","type":"string"},"negative_risk_id":{"description":"Negative risk market identifier","type":"string"},"polymarket_link":{"description":"Link to Polymarket page","type":"string"},"resolution_source":{"description":"URL to resolution data source","type":"string"},"side_a":{"$ref":"#/components/schemas/PolymarketMarketSide","description":"First outcome"},"side_b":{"$ref":"#/components/schemas/PolymarketMarketSide","description":"Second outcome"},"start_time":{"description":"Market start time (Unix seconds)","format":"int64","type":"integer"},"status":{"description":"Market status: `open` or `closed`","type":"string"},"subcategory":{"description":"Surf curated market subcategory","type":"string"},"tags":{"description":"Market tags","items":{"type":"string"},"type":["array","null"]},"title":{"description":"Market title","type":"string"},"volume_1_month":{"description":"Trading volume in the past month (USD)","format":"double","type":"number"},"volume_1_week":{"description":"Trading volume in the past week (USD)","format":"double","type":"number"},"volume_1_year":{"description":"Trading volume in the past year (USD)","format":"double","type":"number"},"volume_total":{"description":"Total trading volume (USD)","format":"double","type":"number"},"winning_side":{"description":"Winning outcome label, if resolved","type":"string"}},"required":["market_slug","condition_id","title","volume_1_week","volume_1_month","volume_1_year","volume_total","status"],"type":"object"},"PolymarketMarketSide":{"additionalProperties":false,"properties":{"id":{"description":"Token identifier for this outcome","type":"string"},"label":{"description":"Outcome label","type":"string"}},"required":["id","label"],"type":"object"},"PolymarketOIPoint":{"additionalProperties":false,"properties":{"daily_net_change_usd":{"description":"Daily net change in USD","format":"double","type":"number"},"open_interest_usd":{"description":"Open interest in USD","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds (midnight UTC)","format":"int64","type":"integer"}},"required":["timestamp","open_interest_usd","daily_net_change_usd"],"type":"object"},"PolymarketPosition":{"additionalProperties":false,"properties":{"avg_price":{"description":"Average entry price (0-1)","format":"double","type":"number"},"cash_pnl":{"description":"Unrealized profit and loss in USD","format":"double","type":"number"},"condition_id":{"description":"Market condition identifier","type":"string"},"cur_price":{"description":"Current market price (0-1)","format":"double","type":"number"},"current_value":{"description":"Current position value in USD","format":"double","type":"number"},"outcome_label":{"description":"Outcome label","type":"string"},"question":{"description":"Market question","type":"string"},"realized_pnl":{"description":"Realized profit and loss in USD","format":"double","type":"number"},"redeemable":{"description":"Whether the position is redeemable","type":"boolean"},"size":{"description":"Position size in shares","format":"double","type":"number"}},"required":["condition_id","question","outcome_label","size","avg_price","cur_price","current_value","cash_pnl","realized_pnl","redeemable"],"type":"object"},"PolymarketPricePoint":{"additionalProperties":false,"properties":{"side_a":{"$ref":"#/components/schemas/PolymarketPriceSide","description":"First outcome price data"},"side_b":{"$ref":"#/components/schemas/PolymarketPriceSide","description":"Second outcome price data"},"timestamp":{"description":"Interval start Unix timestamp in seconds","format":"int64","type":"integer"}},"required":["timestamp"],"type":"object"},"PolymarketPriceSide":{"additionalProperties":false,"properties":{"label":{"description":"Outcome label such as `Yes` or `No`","type":"string"},"price":{"description":"Average price over the interval (0-1)","format":"double","type":"number"},"token_id":{"description":"Outcome token identifier","type":"string"}},"required":["token_id","label","price"],"type":"object"},"PolymarketVolumePoint":{"additionalProperties":false,"properties":{"buy_volume":{"description":"Buy-side volume (USD), available when using granularity param","format":"double","type":"number"},"notional_volume_usd":{"description":"Notional trading volume in USD","format":"double","type":"number"},"sell_volume":{"description":"Sell-side volume (USD), available when using granularity param","format":"double","type":"number"},"timestamp":{"description":"Interval start Unix timestamp in seconds","format":"int64","type":"integer"},"trade_count":{"description":"Number of trades","format":"int64","type":"integer"}},"required":["timestamp","notional_volume_usd","trade_count"],"type":"object"},"PortfolioWalletItem":{"additionalProperties":false,"properties":{"address":{"description":"Bound Hyperliquid wallet address","type":"string"},"label":{"description":"Optional user-defined wallet label","type":"string"}},"required":["address"],"type":"object"},"PortfolioWalletsBody":{"additionalProperties":false,"properties":{"wallets":{"description":"Wallets currently bound by the Task session owner","items":{"$ref":"#/components/schemas/PortfolioWalletItem"},"type":["array","null"]}},"required":["wallets"],"type":"object"},"ProjectContractAddress":{"additionalProperties":false,"properties":{"address":{"description":"Contract address on the specified chain","type":"string"},"chain":{"description":"Chain name like `ethereum`, `bsc`, or `solana`","type":"string"},"label":{"description":"Human-readable label for this contract like `Token` or `Staking`","type":"string"}},"required":["chain","address"],"type":"object"},"ProjectContractsItem":{"additionalProperties":false,"properties":{"contracts":{"description":"List of deployed smart contract addresses across chains","items":{"$ref":"#/components/schemas/ProjectContractAddress"},"type":["array","null"]}},"type":"object"},"ProjectEventItem":{"additionalProperties":false,"properties":{"date":{"description":"Event date in ISO 8601 format","type":"string"},"description":{"description":"Detailed event description","type":"string"},"logo_url":{"description":"Project logo image URL","type":"string"},"title":{"description":"Short event title","type":"string"},"type":{"description":"Event type — one of: launch, upgrade, partnership, news, airdrop, listing, twitter","type":"string"}},"required":["type","title"],"type":"object"},"ProjectFundingInvestor":{"additionalProperties":false,"properties":{"id":{"description":"Surf UUID for the investor (Fund UUID when Type=FUND, Person UUID when Type=PERSON)","type":"string"},"is_lead":{"description":"Whether this investor led the round","type":"boolean"},"logo":{"description":"Investor logo URL","type":"string"},"name":{"description":"Investor name","type":"string"},"type":{"description":"Investor type (FUND or PERSON)","type":"string"}},"required":["name","is_lead"],"type":"object"},"ProjectFundingItem":{"additionalProperties":false,"properties":{"rounds":{"description":"List of individual funding rounds","items":{"$ref":"#/components/schemas/ProjectFundingRound"},"type":["array","null"]},"total_raise":{"description":"Total capital raised across all rounds in USD","format":"double","type":"number"}},"type":"object"},"ProjectFundingRound":{"additionalProperties":false,"properties":{"amount":{"description":"Amount raised in USD","format":"double","type":"number"},"date":{"description":"Date when the round closed in ISO 8601 format","type":"string"},"investors":{"description":"Investors participating in this round","items":{"$ref":"#/components/schemas/ProjectFundingInvestor"},"type":["array","null"]},"round_name":{"description":"Funding round name like `Seed`, `Series A`, or `Private`","type":"string"},"valuation":{"description":"Project valuation at round close in USD","format":"double","type":"number"}},"required":["round_name"],"type":"object"},"ProjectMetricPoint":{"additionalProperties":false,"properties":{"timestamp":{"description":"Unix timestamp in seconds for this data point","format":"int64","type":"integer"},"value":{"description":"Metric value at this timestamp","format":"double","type":"number"}},"required":["timestamp","value"],"type":"object"},"ProjectOverviewItem":{"additionalProperties":false,"properties":{"chains":{"description":"Chains the project is deployed on","items":{"type":"string"},"type":["array","null"]},"description":{"description":"Short description of the project","type":"string"},"exchanges":{"description":"Exchange names where the token is listed","items":{"type":"string"},"type":["array","null"]},"id":{"description":"Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup. Prefer over 'q' (fuzzy name search).","type":"string"},"logo_url":{"description":"Project logo image URL","type":"string"},"name":{"description":"Project name","type":"string"},"slug":{"description":"URL-friendly project slug","type":"string"},"tags":{"description":"Project category tags like `DeFi`, `NFT`, or `Layer2`","items":{"type":"string"},"type":["array","null"]},"tge_status":{"description":"TGE status: pre, upcoming, or post","type":"string"},"token_symbol":{"description":"Primary token ticker symbol","type":"string"},"website":{"description":"Project official website URL","type":"string"},"x_followers":{"description":"Number of X (Twitter) followers","format":"int64","type":"integer"},"x_handle":{"description":"X (Twitter) handle without the @ prefix","type":"string"},"x_id":{"description":"Numeric X (Twitter) account ID for the primary X account","type":"string"}},"required":["id","name","x_followers"],"type":"object"},"ProjectPulseItem":{"additionalProperties":false,"properties":{"id":{"type":"string"},"signal_type":{"type":"string"},"slug":{"type":"string"},"sources":{"items":{"type":"string"},"type":["array","null"]},"subtitle":{"type":"string"},"timestamp":{"format":"int64","type":"integer"},"title":{"type":"string"},"tldr":{"items":{"type":"string"},"type":["array","null"]}},"required":["id","title","signal_type","timestamp"],"type":"object"},"ProjectSearchItem":{"additionalProperties":false,"properties":{"chains":{"description":"Chains the project operates on","items":{"type":"string"},"type":["array","null"]},"description":{"description":"Short description of the project","type":"string"},"id":{"description":"Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup. Prefer over 'q' (fuzzy name search).","type":"string"},"logo_url":{"description":"Project logo image URL","type":"string"},"name":{"description":"Project name","type":"string"},"slug":{"description":"Project slug for URL construction","type":"string"},"symbol":{"description":"Primary token symbol like `BTC` or `ETH`","type":"string"},"tags":{"description":"Project category tags","items":{"type":"string"},"type":["array","null"]},"tokens":{"description":"Associated tokens","items":{"$ref":"#/components/schemas/TokenSearchItem"},"type":["array","null"]}},"required":["id","name"],"type":"object"},"ProjectSocialAccount":{"additionalProperties":false,"properties":{"followers_count":{"description":"Number of followers on this platform","format":"int64","type":"integer"},"handle":{"description":"Username or handle on the social platform","type":"string"},"url":{"description":"Profile URL on the social platform","type":"string"}},"type":"object"},"ProjectSocialItem":{"additionalProperties":false,"properties":{"discord":{"$ref":"#/components/schemas/ProjectSocialAccount","description":"Discord community server"},"github":{"$ref":"#/components/schemas/ProjectSocialAccount","description":"GitHub organization or repository account"},"telegram":{"$ref":"#/components/schemas/ProjectSocialAccount","description":"Telegram group or channel"},"twitter":{"$ref":"#/components/schemas/ProjectSocialAccount","description":"X (Twitter) account for the project"}},"type":"object"},"ProjectTeamItem":{"additionalProperties":false,"properties":{"members":{"description":"List of team members with their roles and social links","items":{"$ref":"#/components/schemas/ProjectTeamMember"},"type":["array","null"]}},"type":"object"},"ProjectTeamMember":{"additionalProperties":false,"properties":{"id":{"description":"Surf Person UUID. Omitted when no linked Person record is available.","type":"string"},"image":{"description":"Team member profile image URL","type":"string"},"name":{"description":"Team member's full name","type":"string"},"role":{"description":"Team member's role or title","type":"string"},"social_links":{"additionalProperties":{"type":"string"},"description":"Social profile links keyed by platform name like `twitter` or `linkedin`","type":"object"}},"required":["name"],"type":"object"},"ProjectTgeStatusItem":{"additionalProperties":false,"properties":{"current_status":{"description":"TGE status: `pre`, `upcoming`, or `post`. Omitted when unknown.","type":"string"},"exchanges":{"description":"Exchange names where the token is listed","items":{"type":"string"},"type":["array","null"]},"last_event_time":{"description":"Unix timestamp of the last TGE event","format":"int64","type":"integer"}},"type":"object"},"ProjectTokenInfoItem":{"additionalProperties":false,"properties":{"all_time_high":{"description":"All-time high price in USD","format":"double","type":"number"},"all_time_high_date":{"description":"Unix timestamp in seconds when the all-time high price was reached","format":"int64","type":"integer"},"all_time_low":{"description":"All-time low price in USD","format":"double","type":"number"},"all_time_low_date":{"description":"Unix timestamp in seconds when the all-time low price was reached","format":"int64","type":"integer"},"circulating_supply":{"description":"Circulating token supply","format":"double","type":"number"},"fdv":{"description":"Fully diluted valuation in USD","format":"double","type":"number"},"high_24h":{"description":"24-hour high price in USD","format":"double","type":"number"},"image":{"description":"Token logo image URL","type":"string"},"low_24h":{"description":"24-hour low price in USD","format":"double","type":"number"},"market_cap_usd":{"description":"Market capitalization in USD","format":"double","type":"number"},"name":{"description":"Full token name","type":"string"},"price_change_24h":{"description":"24-hour price change percentage","format":"double","type":"number"},"price_change_30d":{"description":"30-day price change percentage","format":"double","type":"number"},"price_change_7d":{"description":"7-day price change percentage","format":"double","type":"number"},"price_usd":{"description":"Current price in USD","format":"double","type":"number"},"symbol":{"description":"Token ticker symbol","type":"string"},"total_supply":{"description":"Total token supply","format":"double","type":"number"},"volume_24h":{"description":"24-hour trading volume in USD","format":"double","type":"number"}},"required":["symbol","name"],"type":"object"},"ProjectTokenomicsItem":{"additionalProperties":false,"properties":{"circulating_supply":{"description":"Number of tokens currently in public circulation","format":"double","type":"number"},"fdv":{"description":"Fully diluted valuation in USD","format":"double","type":"number"},"market_cap_usd":{"description":"Total market capitalization in USD","format":"double","type":"number"},"total_supply":{"description":"Total token supply","format":"double","type":"number"}},"type":"object"},"ProjectTopRankItem":{"additionalProperties":false,"properties":{"fees":{"format":"double","type":"number"},"id":{"description":"Surf project UUID. Empty when no matching Surf project metadata is available.","type":"string"},"logo_url":{"description":"Project logo image URL","type":"string"},"name":{"type":"string"},"revenue":{"format":"double","type":"number"},"slug":{"description":"Surf project slug. Empty under the same conditions as id.","type":"string"},"symbol":{"type":"string"},"tvl":{"format":"double","type":"number"},"users":{"format":"int64","type":"integer"},"volume":{"format":"double","type":"number"}},"required":["name"],"type":"object"},"PublicSaleItem":{"additionalProperties":false,"properties":{"allocation_of_supply":{"description":"Percentage of total supply allocated","format":"double","type":"number"},"ath_roi":{"description":"All-time-high return on investment multiplier","format":"double","type":"number"},"crowdsale_end_date":{"description":"Sale end date (Unix seconds)","format":"int64","type":"integer"},"crowdsale_price":{"description":"Token sale price in USD","format":"double","type":"number"},"crowdsale_raise":{"description":"Total funds raised in USD","format":"double","type":"number"},"crowdsale_start_date":{"description":"Sale start date (Unix seconds)","format":"int64","type":"integer"},"crowdsale_status":{"description":"Sale status (UPCOMING, ACTIVE, ENDED)","type":"string"},"crowdsale_type":{"description":"Sale type (IDO, ICO, IEO, etc.)","type":"string"},"launchpad_name":{"description":"Launchpad platform name","type":"string"},"name":{"description":"Project name","type":"string"},"project_id":{"description":"Surf project UUID, for frontend entity linking.","type":"string"},"symbol":{"description":"Token symbol","type":"string"}},"type":"object"},"SearchTokenItem":{"additionalProperties":false,"properties":{"address":{"description":"Token contract address. Use together with `chain` only on token endpoints that support the returned chain.","type":"string"},"chain":{"description":"Chain the contract is deployed on","type":"string"},"decimals":{"description":"Token decimal places","format":"int64","type":"integer"},"symbol":{"description":"Token ticker symbol (canonical uppercase)","type":"string"},"volume_usd":{"description":"Reserved compatibility field. Always returns 0; do not use this field for candidate ordering.","format":"double","type":"number"}},"required":["symbol","chain","address","decimals","volume_usd"],"type":"object"},"SignalCoreState":{"additionalProperties":false,"properties":{"driver":{"description":"Primary state driver","type":"string"},"priority":{"description":"State priority","format":"int64","type":"integer"},"reason":{"description":"Short reason behind the state","type":"string"},"state":{"description":"State label","type":"string"},"state_type":{"description":"State type","type":"string"},"strength":{"description":"Directional state strength","type":"string"}},"type":"object"},"SignalDerivativeComponent":{"additionalProperties":false,"properties":{"metric":{"description":"Derivative component metric","type":"string"},"score":{"description":"Component score","format":"double","type":"number"},"used":{"description":"Whether the component contributed to the derivative score","type":"boolean"},"weight":{"description":"Component weight","format":"double","type":"number"}},"required":["used"],"type":"object"},"SignalDimensions":{"additionalProperties":false,"properties":{"derivative":{"description":"Derivative dimension score","format":"double","type":"number"},"derivative_components":{"description":"Derivative sub-component scores","items":{"$ref":"#/components/schemas/SignalDerivativeComponent"},"type":["array","null"]},"flow":{"description":"Flow dimension score","format":"double","type":"number"},"movement":{"description":"Movement dimension score","format":"double","type":"number"},"social":{"description":"Social dimension score","format":"double","type":"number"}},"type":"object"},"SignalPriceChange":{"additionalProperties":false,"properties":{"1h":{"description":"1 hour price change percent","format":"double","type":"number"},"24h":{"description":"24 hour price change percent","format":"double","type":"number"},"7d":{"description":"7 day price change percent","format":"double","type":"number"}},"type":"object"},"SignalProject":{"additionalProperties":false,"properties":{"ai_summary":{"additionalProperties":{"type":"string"},"description":"AI-generated summary by language code","type":"object"},"baseline":{"description":"Baseline primary metric value","format":"double","type":"number"},"change_percent":{"description":"Primary metric percent change","format":"double","type":"number"},"change_vs_previous_percent":{"description":"Primary metric percent change versus previous snapshot","format":"double","type":"number"},"computed_hour":{"description":"Snapshot computation hour as Unix seconds","format":"int64","type":"integer"},"core_state":{"$ref":"#/components/schemas/SignalCoreState","description":"Current classified market/social state"},"driver":{"description":"Primary driver label","type":"string"},"evidence_score":{"description":"Evidence strength score","format":"double","type":"number"},"heat_dimensions":{"$ref":"#/components/schemas/SignalDimensions","description":"Dimension-level signal scores"},"heat_score":{"description":"Signal score value","format":"double","type":"number"},"heat_score_by_range":{"additionalProperties":{"format":"double","type":"number"},"description":"Signal score by supported window","type":"object"},"heat_score_change_vs_previous_percent_by_range":{"additionalProperties":{"format":"double","type":"number"},"description":"Signal score percent change versus previous snapshot by window","type":"object"},"heat_score_previous_by_range":{"additionalProperties":{"format":"double","type":"number"},"description":"Previous signal score by supported window","type":"object"},"liquidation_long_24h":{"description":"24h long liquidation volume in USD","format":"double","type":"number"},"liquidation_long_short_ratio_24h":{"description":"24h long/short liquidation ratio","format":"double","type":"number"},"liquidation_short_24h":{"description":"24h short liquidation volume in USD","format":"double","type":"number"},"logo":{"description":"Project logo URL","type":"string"},"market_relevance":{"description":"Market relevance score","format":"double","type":"number"},"metric":{"description":"Metric used for this snapshot","type":"string"},"name":{"description":"Project name","type":"string"},"open_interest":{"description":"Open interest in USD","format":"double","type":"number"},"points_used":{"description":"Number of points used in the score calculation","format":"int64","type":"integer"},"previous_value":{"description":"Previous primary metric value","format":"double","type":"number"},"price":{"description":"Latest token price in USD","format":"double","type":"number"},"price_change_percent":{"$ref":"#/components/schemas/SignalPriceChange","description":"Latest price change percentages"},"project_id":{"description":"Surf project UUID","type":"string"},"project_slug":{"description":"Project slug","type":"string"},"rank":{"description":"Rank within the returned signal score snapshot","format":"int64","type":"integer"},"score":{"description":"Signal score used for display","format":"double","type":"number"},"signed_z":{"description":"Signed z-score for the primary metric","format":"double","type":"number"},"symbol":{"description":"Token symbol","type":"string"},"time_range":{"description":"Window used for this snapshot","type":"string"},"token_id":{"description":"Surf token UUID","type":"string"},"token_signals":{"additionalProperties":{"type":"string"},"description":"Compact token signal labels","type":"object"},"updated_at":{"description":"Last update time as Unix seconds","format":"int64","type":"integer"},"value":{"description":"Primary metric value for this snapshot","format":"double","type":"number"},"volume_24h":{"description":"24h trading volume in USD","format":"double","type":"number"},"volume_24h_change_percent":{"description":"24h trading volume percent change","format":"double","type":"number"}},"required":["price_change_percent","core_state","heat_dimensions"],"type":"object"},"SimpleListResponseDexTokenPriceBar":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseDexTokenPriceBar.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DexTokenPriceBar"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseEquityMeta":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseEquityMeta.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/EquityMeta"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangeDepthItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangeDepthItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeDepthItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangeFundingHistoryItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangeFundingHistoryItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeFundingHistoryItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangeKlineResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangeKlineResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeKlineResponse"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangeLongShortRatioItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangeLongShortRatioItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeLongShortRatioItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangeMarketItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangeMarketItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangeMarketItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseExchangePriceItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseExchangePriceItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ExchangePriceItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseLiquidationChartItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseLiquidationChartItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/LiquidationChartItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseLiquidationExchangeItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseLiquidationExchangeItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/LiquidationExchangeItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseMarketETFFlowItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseMarketETFFlowItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketETFFlowItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseMarketFearGreedHistoryItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseMarketFearGreedHistoryItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketFearGreedHistoryItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseMarketFuturesItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseMarketFuturesItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketFuturesItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SimpleListResponseMarketOptionsItem":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/SimpleListResponseMarketOptionsItem.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/MarketOptionsItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/ObjectResponseMeta"}},"required":["data","meta"],"type":"object"},"SolBalanceItem":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"sol_balance":{"description":"Decimal-adjusted native SOL balance as a string (Solana only)","type":"string"}},"required":["address","sol_balance"],"type":"object"},"SolTokenItem":{"additionalProperties":false,"properties":{"balance":{"description":"Decimal-adjusted token balance as a string","type":"string"},"decimals":{"description":"Token decimal places (Solana only)","format":"int64","type":"integer"},"is_verified":{"description":"Whether the token contract is verified","type":"boolean"},"logo_url":{"description":"Token logo image URL","type":"string"},"name":{"description":"Full token name","type":"string"},"symbol":{"description":"Token ticker symbol","type":"string"},"token_address":{"description":"SPL token mint address (Solana only)","type":"string"}},"required":["token_address","symbol","balance","decimals","is_verified"],"type":"object"},"StructuredFilter":{"additionalProperties":false,"properties":{"field":{"description":"Column name to filter on like `block_number` or `from_address`","examples":["block_number"],"type":"string"},"op":{"description":"Comparison operator: eq, neq, gt, gte, lt, lte, like, in, not_in. For `in`/`not_in`, value must be a JSON array","examples":["eq"],"type":"string"},"value":{"description":"Comparison value. Use a JSON array for `in`/`not_in` operators like `[21000000, 21000001]`"}},"required":["field","op","value"],"type":"object"},"StructuredQuery":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StructuredQuery.json"],"format":"uri","readOnly":true,"type":"string"},"fields":{"description":"Columns to return. Omit to return all columns.","examples":[["project","symbol","apy","tvl_usd"]],"items":{"type":"string"},"type":["array","null"]},"filters":{"description":"WHERE conditions (ANDed together)","items":{"$ref":"#/components/schemas/StructuredFilter"},"type":["array","null"]},"limit":{"description":"Max rows to return. Default 20, max 10000","examples":[20],"format":"int64","type":"integer"},"offset":{"description":"Rows to skip for pagination. Default 0","examples":[0],"format":"int64","type":"integer"},"sort":{"description":"ORDER BY clauses","items":{"$ref":"#/components/schemas/StructuredSort"},"type":["array","null"]},"source":{"description":"Fully-qualified table name like `agent.ethereum_yields_daily`. Use GET /v1/onchain/schema for available tables.","examples":["agent.ethereum_yields_daily"],"type":"string"}},"required":["source"],"type":"object"},"StructuredSort":{"additionalProperties":false,"properties":{"field":{"description":"Column name to sort by like `gas`, `block_number`, or `amount_usd`","examples":["gas"],"type":"string"},"order":{"description":"Sort direction: asc (default) or desc","examples":["desc"],"type":"string"}},"required":["field"],"type":"object"},"TGEItem":{"additionalProperties":false,"properties":{"current_status":{"description":"Current TGE status","type":"string"},"exchanges":{"description":"Exchanges where token launched","items":{"type":"string"},"type":["array","null"]},"last_event_time":{"description":"Last status change (Unix seconds)","format":"int64","type":"integer"},"project_id":{"description":"Surf project UUID","type":"string"},"project_name":{"description":"Surf project name, for frontend entity linking.","type":"string"}},"required":["project_id","current_status"],"type":"object"},"TokenHolderItem":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address of the token holder","type":"string"},"balance":{"description":"Token balance (decimal-adjusted, human-readable)","type":"string"},"entity_name":{"description":"Name of the associated entity like `Binance` or `Aave`","type":"string"},"entity_type":{"description":"Type of entity like `exchange`, `fund`, or `whale`","type":"string"},"label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Full entity label record for this address. Only present when the request sets `include=labels`."},"percentage":{"description":"Share of total supply held as a percentage (5.2 means 5.2%)","format":"double","type":"number"}},"required":["address","balance"],"type":"object"},"TokenSearchItem":{"additionalProperties":false,"properties":{"id":{"description":"Token identifier","type":"string"},"image":{"description":"Token logo image URL","type":"string"},"name":{"description":"Token name","type":"string"},"symbol":{"description":"Token symbol","type":"string"}},"required":["id","name","symbol"],"type":"object"},"TokenTransferItem":{"additionalProperties":false,"properties":{"amount":{"description":"Transfer amount (decimal-adjusted, human-readable)","type":"string"},"amount_usd":{"description":"Transfer value in USD at the time of the transaction. Not available for all transfers.","format":"double","type":"number"},"block_number":{"description":"Block number in which this transfer was included","format":"int64","type":"integer"},"from_address":{"description":"Sender wallet address","type":"string"},"from_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for from_address. Only present when the request sets `include=labels`."},"symbol":{"description":"Token symbol like ETH, USDC, or WETH","type":"string"},"timestamp":{"description":"Unix timestamp in seconds when the transfer occurred","format":"int64","type":"integer"},"to_address":{"description":"Recipient wallet address","type":"string"},"to_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for to_address. Only present when the request sets `include=labels`."},"tx_hash":{"description":"Transaction hash","type":"string"}},"required":["tx_hash","from_address","to_address","amount","timestamp","block_number"],"type":"object"},"TokenUnlockAllocationItem":{"additionalProperties":false,"properties":{"amount":{"description":"Decimal-adjusted allocation amount","format":"double","type":"number"},"name":{"description":"Allocation name","type":"string"}},"required":["name","amount"],"type":"object"},"TokenUnlockPoint":{"additionalProperties":false,"properties":{"allocations":{"description":"Breakdown by allocation","items":{"$ref":"#/components/schemas/TokenUnlockAllocationItem"},"type":["array","null"]},"cumulative_unlocked_amount":{"description":"Cumulative total tokens unlocked up to this timestamp (decimal-adjusted). Use this for unlocked-supply ratios.","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"total_supply":{"description":"Token total supply used as the denominator for unlocked_percentage_of_total_supply","format":"double","type":"number"},"unlock_amount":{"description":"Legacy alias for cumulative_unlocked_amount. This is cumulative and must not be summed across rows.","format":"double","type":"number"},"unlocked_percentage_of_total_supply":{"description":"Cumulative unlocked amount divided by total_supply, expressed as a percentage from 0 to 100","format":"double","type":"number"}},"required":["timestamp","unlock_amount","cumulative_unlocked_amount"],"type":"object"},"TransferCounterpartyItem":{"additionalProperties":false,"properties":{"amount":{"description":"Decimal-adjusted token amount transferred (summed).","type":"string"},"amount_usd":{"description":"Summed USD value. Absent when no transfers in the window are USD-priced.","format":"double","type":"number"},"counterparty_address":{"description":"Receiver (direction=to) or sender (direction=from) address.","type":"string"},"first_transfer_at":{"description":"Unix seconds of the first transfer seen in the window.","format":"int64","type":"integer"},"label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity label for this counterparty. Only present when include=labels."},"last_transfer_at":{"description":"Unix seconds of the last transfer seen in the window.","format":"int64","type":"integer"},"transfer_count":{"description":"Number of transfers in the window.","format":"int64","type":"integer"}},"required":["counterparty_address","transfer_count","amount","first_transfer_at","last_transfer_at"],"type":"object"},"TransferSeriesPoint":{"additionalProperties":false,"properties":{"amount":{"description":"Decimal-adjusted token amount transferred on this day.","type":"string"},"amount_usd":{"description":"Summed USD value for the day. Absent when the day is not yet USD-priced.","format":"double","type":"number"},"date":{"description":"Start-of-day Unix seconds (UTC).","format":"int64","type":"integer"},"enriched_ratio":{"description":"Fraction of the day's transfers with a USD price (0..1).","format":"double","type":"number"},"transfer_count":{"description":"Transfers on this day.","format":"int64","type":"integer"}},"required":["date","transfer_count","amount"],"type":"object"},"TransferStatsBody":{"additionalProperties":false,"properties":{"enriched_ratio":{"description":"Fraction of transfers with a USD price (0..1). Low/zero on recent windows where USD pricing lags ~3 days.","format":"double","type":"number"},"first_transfer_at":{"description":"Unix seconds of the first transfer in the window (0 if none).","format":"int64","type":"integer"},"last_transfer_at":{"description":"Unix seconds of the last transfer in the window (0 if none).","format":"int64","type":"integer"},"series":{"description":"Daily breakdown, newest first. Present only when include=series.","items":{"$ref":"#/components/schemas/TransferSeriesPoint"},"type":["array","null"]},"total_amount":{"description":"Decimal-adjusted total token amount transferred.","type":"string"},"total_amount_usd":{"description":"Summed USD value. Absent when nothing in the window is USD-priced.","format":"double","type":"number"},"total_transfers":{"description":"Total transfers in the window.","format":"int64","type":"integer"},"unique_receivers":{"description":"Approximate distinct receivers (uniq, ~1% error).","format":"int64","type":"integer"},"unique_senders":{"description":"Approximate distinct senders (uniq, ~1% error).","format":"int64","type":"integer"}},"required":["total_transfers","unique_senders","unique_receivers","total_amount","first_transfer_at","last_transfer_at"],"type":"object"},"TransferStatsMeta":{"additionalProperties":false,"properties":{"cached":{"description":"Whether this response was served from cache","type":"boolean"},"credits_used":{"description":"Credits deducted for this request","format":"int64","type":"integer"},"empty_reason":{"description":"Hint explaining why the data object is empty, when applicable","type":"string"},"enriched_ratio":{"description":"Fraction of transfers with a USD price (0..1). Low/zero means USD-value fields are partial.","format":"double","type":"number"}},"required":["credits_used","cached"],"type":"object"},"TransferStatsResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/TransferStatsResponse.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/TransferStatsBody"},"meta":{"$ref":"#/components/schemas/TransferStatsMeta"}},"required":["data","meta"],"type":"object"},"UpstreamErrorDetail":{"additionalProperties":false,"properties":{"async_job_url":{"description":"Durable job submission path when starting a new async job is safe","type":"string"},"code":{"description":"Stable machine-readable error code","type":"string"},"message":{"description":"Human-readable failure detail","type":"string"},"query_id":{"description":"ClickHouse query identifier for diagnostics","type":"string"},"recommended_action":{"description":"Machine-readable next action","enum":["use_async_job","contact_support"],"type":"string"},"request_id":{"description":"Caller-visible request correlation identifier","type":"string"},"retry_after":{"description":"Seconds to wait before retrying; omitted when not applicable","format":"int64","type":"integer"},"retryable":{"description":"Whether the same logical request may be retried","type":"boolean"},"status":{"description":"Terminal execution status when known","enum":["canceled","failed"],"type":"string"}},"required":["code","message","retryable"],"type":"object"},"UpstreamErrorResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpstreamErrorResponse.json"],"format":"uri","readOnly":true,"type":"string"},"error":{"$ref":"#/components/schemas/UpstreamErrorDetail"}},"required":["error"],"type":"object"},"V2CandlestickData":{"additionalProperties":false,"properties":{"close":{"description":"Closing price","format":"double","type":"number"},"end_period_ts":{"description":"Period end Unix timestamp (seconds)","format":"int64","type":"integer"},"high":{"description":"Highest price in period","format":"double","type":"number"},"low":{"description":"Lowest price in period","format":"double","type":"number"},"open":{"description":"Opening price","format":"double","type":"number"},"timestamp":{"description":"Period start Unix timestamp (seconds)","format":"int64","type":"integer"},"trades_count":{"description":"Number of trades","format":"int64","type":"integer"},"volume":{"description":"Total shares traded","format":"double","type":"number"}},"required":["timestamp","end_period_ts","open","high","low","close","volume","trades_count"],"type":"object"},"V2CandlestickResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/V2CandlestickResponse.json"],"format":"uri","readOnly":true,"type":"string"},"candles":{"items":{"$ref":"#/components/schemas/V2CandlestickData"},"type":["array","null"]},"condition_id":{"type":"string"},"interval":{"format":"int64","type":"integer"}},"required":["condition_id","interval","candles"],"type":"object"},"V2CursorPagination":{"additionalProperties":false,"properties":{"count":{"description":"Items in current response","format":"int64","type":"integer"},"has_more":{"description":"Whether more data is available","type":"boolean"},"limit":{"description":"Requested limit","format":"int64","type":"integer"},"pagination_key":{"description":"Base64 cursor for next page","type":"string"}},"required":["limit","count","has_more"],"type":"object"},"V2KalshiOrderbookLevel":{"additionalProperties":false,"properties":{"price":{"description":"Price in cents (1-99)","format":"int64","type":"integer"},"size":{"description":"Number of contracts at this price level","format":"int64","type":"integer"}},"required":["price","size"],"type":"object"},"V2KalshiOrderbookSnapshot":{"additionalProperties":false,"properties":{"ask_depth":{"description":"Total ask depth (contracts)","format":"int64","type":"integer"},"best_ask":{"description":"Best ask price (cents)","format":"int64","type":"integer"},"best_bid":{"description":"Best bid price (cents)","format":"int64","type":"integer"},"bid_depth":{"description":"Total bid depth (contracts)","format":"int64","type":"integer"},"sequence":{"description":"Sequence number","format":"int64","type":"integer"},"ticker":{"description":"Market ticker","type":"string"},"timestamp":{"description":"Snapshot time in milliseconds","format":"int64","type":"integer"},"yes_asks":{"description":"Yes sell orders, price ascending","items":{"$ref":"#/components/schemas/V2KalshiOrderbookLevel"},"type":["array","null"]},"yes_bids":{"description":"Yes buy orders, price descending","items":{"$ref":"#/components/schemas/V2KalshiOrderbookLevel"},"type":["array","null"]}},"required":["ticker","timestamp","yes_bids","yes_asks","best_bid","best_ask","bid_depth","ask_depth","sequence"],"type":"object"},"V2KalshiOrderbooksResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/V2KalshiOrderbooksResponse.json"],"format":"uri","readOnly":true,"type":"string"},"pagination":{"$ref":"#/components/schemas/V2CursorPagination"},"snapshots":{"items":{"$ref":"#/components/schemas/V2KalshiOrderbookSnapshot"},"type":["array","null"]}},"required":["snapshots","pagination"],"type":"object"},"V2OrderbookLevel":{"additionalProperties":false,"properties":{"price":{"description":"Price level (0-1)","format":"double","type":"number"},"size":{"description":"Quantity at this price level","format":"double","type":"number"}},"required":["price","size"],"type":"object"},"V2OrderbookSnapshot":{"additionalProperties":false,"properties":{"asks":{"description":"Sell orders, price-ordered","items":{"$ref":"#/components/schemas/V2OrderbookLevel"},"type":["array","null"]},"assetId":{"description":"Token identifier","type":"string"},"bids":{"description":"Buy orders, price-ordered","items":{"$ref":"#/components/schemas/V2OrderbookLevel"},"type":["array","null"]},"hash":{"description":"Orderbook state identifier","type":"string"},"indexedAt":{"description":"Indexing time in milliseconds","format":"int64","type":"integer"},"market":{"description":"Market condition ID","type":"string"},"tickSize":{"description":"Minimum price increment","type":"string"},"timestamp":{"description":"Snapshot time in milliseconds","format":"int64","type":"integer"}},"required":["asks","bids","hash","assetId","timestamp","tickSize","indexedAt","market"],"type":"object"},"V2OrderbooksResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/V2OrderbooksResponse.json"],"format":"uri","readOnly":true,"type":"string"},"pagination":{"$ref":"#/components/schemas/V2CursorPagination"},"snapshots":{"items":{"$ref":"#/components/schemas/V2OrderbookSnapshot"},"type":["array","null"]}},"required":["snapshots","pagination"],"type":"object"},"V2VolumeChartPoint":{"additionalProperties":false,"properties":{"no_volume":{"description":"No-side volume in USD","format":"double","type":"number"},"timestamp":{"description":"Unix timestamp (seconds)","format":"int64","type":"integer"},"total_volume":{"description":"Total volume in USD","format":"double","type":"number"},"trades_count":{"description":"Number of trades","format":"int64","type":"integer"},"yes_volume":{"description":"Yes-side volume in USD","format":"double","type":"number"}},"required":["timestamp","total_volume","yes_volume","no_volume","trades_count"],"type":"object"},"V2VolumeChartResponse":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/V2VolumeChartResponse.json"],"format":"uri","readOnly":true,"type":"string"},"condition_id":{"type":"string"},"data_points":{"items":{"$ref":"#/components/schemas/V2VolumeChartPoint"},"type":["array","null"]},"end_time":{"format":"int64","type":"integer"},"granularity":{"type":"string"},"start_time":{"format":"int64","type":"integer"}},"required":["condition_id","granularity","start_time","end_time","data_points"],"type":"object"},"WalletApprovalItem":{"additionalProperties":false,"properties":{"balance":{"description":"Current token balance","format":"double","type":"number"},"chain":{"description":"Canonical chain name","type":"string"},"name":{"description":"Full token name","type":"string"},"spenders":{"description":"List of approved spender contracts","items":{"$ref":"#/components/schemas/WalletApprovalSpender"},"type":["array","null"]},"symbol":{"description":"Token ticker symbol","type":"string"},"token_address":{"description":"Token contract address","type":"string"}},"required":["token_address","symbol","chain","balance","spenders"],"type":"object"},"WalletApprovalSpender":{"additionalProperties":false,"properties":{"allowance":{"description":"Approved token amount (use -1 for unlimited)","format":"double","type":"number"},"spender_address":{"description":"Address of the approved spender contract","type":"string"},"spender_name":{"description":"Human-readable name of the spender, absent for unrecognized contracts","type":"string"}},"required":["spender_address","allowance"],"type":"object"},"WalletChainItem":{"additionalProperties":false,"properties":{"chain":{"description":"Canonical chain name like `ethereum` or `polygon`","type":"string"},"chain_id":{"description":"EVM chain ID like `1` for Ethereum or `137` for Polygon","format":"int64","type":"integer"},"usd_value":{"description":"Total USD value of assets on this chain","format":"double","type":"number"}},"required":["chain","usd_value"],"type":"object"},"WalletDetailBody":{"additionalProperties":false,"properties":{"active_chains":{"description":"Chains the wallet has non-zero balances on. Always present (not controlled by fields param). For Solana addresses, returns a single entry.","items":{"$ref":"#/components/schemas/WalletChainItem"},"type":["array","null"]},"approvals":{"description":"Token approvals (EVM-only, up to 50). Only present when `approvals` is included in the `fields` param.","items":{"$ref":"#/components/schemas/WalletApprovalItem"},"type":["array","null"]},"errors":{"description":"Per-field errors for any fields that failed to load","items":{"$ref":"#/components/schemas/WalletDetailError"},"type":["array","null"]},"evm_balance":{"$ref":"#/components/schemas/EvmBalanceItem","description":"EVM wallet balance. Populated for EVM chains only."},"evm_tokens":{"description":"EVM token holdings (up to 50). Populated for EVM chains only.","items":{"$ref":"#/components/schemas/EvmTokenItem"},"type":["array","null"]},"labels":{"$ref":"#/components/schemas/WalletLabelItem","description":"Address labels and entity attribution"},"nft":{"description":"NFT holdings (EVM-only, top 200 by value)","items":{"$ref":"#/components/schemas/WalletNFTItem"},"type":["array","null"]},"sol_balance":{"$ref":"#/components/schemas/SolBalanceItem","description":"Solana wallet balance from Solscan. Populated for Solana chain only."},"sol_tokens":{"description":"Solana SPL token holdings from Solscan (up to 50). Populated for Solana chain only.","items":{"$ref":"#/components/schemas/SolTokenItem"},"type":["array","null"]}},"type":"object"},"WalletDetailError":{"additionalProperties":false,"properties":{"field":{"description":"Field name that failed to load like `evm_balance`, `sol_balance`, `evm_tokens`, `sol_tokens`, `labels`, `nft`, `active_chains`, or `approvals`","type":"string"},"message":{"description":"Error message describing why the field could not be loaded","type":"string"}},"required":["field","message"],"type":"object"},"WalletHistoryItem":{"additionalProperties":false,"properties":{"from_address":{"description":"Sender wallet address","type":"string"},"from_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for from_address. Only present when the request sets `include=labels`."},"timestamp":{"description":"Unix timestamp in seconds when the transaction was confirmed","format":"int64","type":"integer"},"to_address":{"description":"Recipient wallet address","type":"string"},"to_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for to_address. Only present when the request sets `include=labels`."},"tx_hash":{"description":"Transaction hash","type":"string"},"tx_type":{"description":"Transaction type: `send`, `receive`, `swap`, `approve`, etc.","type":"string"},"value":{"description":"Decimal-adjusted transaction value in native token as a string","type":"string"}},"required":["tx_hash","from_address","to_address","value","timestamp"],"type":"object"},"WalletLabelInfo":{"additionalProperties":false,"properties":{"confidence":{"description":"Confidence score 0.0-1.0","format":"double","type":"number"},"label":{"description":"Human-readable label for this address like `Binance Hot Wallet`","type":"string"}},"required":["label"],"type":"object"},"WalletLabelItem":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"entity_name":{"description":"Name of the associated entity like `Binance` or `Aave`","type":"string"},"entity_type":{"description":"Type of entity like `exchange`, `fund`, or `whale`","type":"string"},"labels":{"description":"List of labels assigned to this address","items":{"$ref":"#/components/schemas/WalletLabelInfo"},"type":["array","null"]}},"required":["address","labels"],"type":"object"},"WalletNFTItem":{"additionalProperties":false,"properties":{"chain":{"description":"Canonical chain name like `ethereum` or `polygon`","type":"string"},"collection_name":{"description":"NFT collection name","type":"string"},"contract_address":{"description":"NFT contract address","type":"string"},"image_url":{"description":"NFT image or thumbnail URL","type":"string"},"name":{"description":"NFT item name or title","type":"string"},"token_id":{"description":"NFT token ID within the collection","type":"string"},"usd_price":{"description":"Latest trading price in USD","format":"double","type":"number"}},"required":["contract_address","token_id"],"type":"object"},"WalletNetWorthPoint":{"additionalProperties":false,"properties":{"timestamp":{"description":"Unix timestamp in seconds","format":"int64","type":"integer"},"usd_value":{"description":"Total portfolio value in USD at this point in time","format":"double","type":"number"}},"required":["timestamp","usd_value"],"type":"object"},"WalletProtocolItem":{"additionalProperties":false,"properties":{"chain":{"description":"Canonical chain name where the protocol operates","type":"string"},"logo_url":{"description":"Protocol logo image URL","type":"string"},"positions":{"description":"Individual positions held in this protocol","items":{"$ref":"#/components/schemas/WalletProtocolPosition"},"type":["array","null"]},"protocol_name":{"description":"Human-readable protocol name","type":"string"},"site_url":{"description":"Protocol website URL","type":"string"},"total_usd":{"description":"Total USD value across all positions in this protocol","format":"double","type":"number"}},"required":["protocol_name","chain","total_usd","positions"],"type":"object"},"WalletProtocolPosition":{"additionalProperties":false,"properties":{"balance_usd":{"description":"Total USD value of this position","format":"double","type":"number"},"borrow_tokens":{"description":"Tokens borrowed in this position","items":{"$ref":"#/components/schemas/WalletProtocolToken"},"type":["array","null"]},"lp_tokens":{"description":"LP tokens in this position","items":{"$ref":"#/components/schemas/WalletProtocolToken"},"type":["array","null"]},"name":{"description":"Position name or type like `Lending` or `Staking`","type":"string"},"reward_tokens":{"description":"Unclaimed reward tokens in this position","items":{"$ref":"#/components/schemas/WalletProtocolToken"},"type":["array","null"]},"supply_tokens":{"description":"Tokens supplied/deposited in this position","items":{"$ref":"#/components/schemas/WalletProtocolToken"},"type":["array","null"]}},"required":["name","balance_usd"],"type":"object"},"WalletProtocolToken":{"additionalProperties":false,"properties":{"amount":{"description":"Token amount held in this position","format":"double","type":"number"},"chain":{"description":"Canonical chain name like `ethereum` or `polygon`","type":"string"},"name":{"description":"Full token name","type":"string"},"price":{"description":"Current token price in USD","format":"double","type":"number"},"symbol":{"description":"Token ticker symbol","type":"string"},"token_address":{"description":"Token contract address","type":"string"}},"required":["symbol","amount","price","chain"],"type":"object"},"WalletSearchAddress":{"additionalProperties":false,"properties":{"address":{"description":"Wallet address","type":"string"},"chain":{"description":"Chain name like ethereum, arbitrum_one","type":"string"}},"required":["address","chain"],"type":"object"},"WalletSearchItem":{"additionalProperties":false,"properties":{"address":{"description":"Primary wallet address for this entity","type":"string"},"addresses":{"description":"Known wallet addresses for this entity (max 10, use num_addresses for the total count)","items":{"$ref":"#/components/schemas/WalletSearchAddress"},"type":["array","null"]},"chain":{"description":"Chain of the primary address","type":"string"},"entity_name":{"description":"Name of the associated entity like `Binance` or `Aave`","type":"string"},"entity_type":{"description":"Type of entity like `exchange`, `fund`, or `whale`","type":"string"},"label":{"description":"Human-readable label for the wallet entity","type":"string"},"num_addresses":{"description":"Total number of wallet addresses associated with this entity","format":"int64","type":"integer"},"twitter":{"description":"Associated X (Twitter) handle","type":"string"}},"type":"object"},"WalletTransferItem":{"additionalProperties":false,"properties":{"activity_type":{"description":"Transfer activity type (Solana only, e.g. ACTIVITY_SPL_TRANSFER)","type":"string"},"amount":{"description":"Decimal-adjusted transfer amount as a string","type":"string"},"amount_usd":{"description":"Transfer value in USD at the time of the transaction","format":"double","type":"number"},"flow":{"description":"Transfer direction relative to the queried wallet: `in` or `out`","type":"string"},"from_address":{"description":"Sender wallet address","type":"string"},"from_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for from_address. Only present when the request sets `include=labels`."},"timestamp":{"description":"Unix timestamp in seconds when the transfer occurred","format":"int64","type":"integer"},"to_address":{"description":"Recipient wallet address","type":"string"},"to_label":{"$ref":"#/components/schemas/WalletLabelItem","description":"Entity labels for to_address. Only present when the request sets `include=labels`."},"token_address":{"description":"Token contract address (EVM) or SPL mint address (Solana)","type":"string"},"token_symbol":{"description":"Token ticker symbol (available for EVM chains from on-chain data)","type":"string"},"tx_hash":{"description":"Transaction hash (EVM) or transaction signature (Solana)","type":"string"}},"required":["tx_hash","from_address","to_address","amount","timestamp"],"type":"object"},"WebFetchResultItem":{"additionalProperties":false,"properties":{"content":{"description":"Full page content converted to clean markdown text","type":"string"},"title":{"description":"Page title extracted from the HTML","type":"string"},"url":{"description":"The URL that was fetched","type":"string"}},"required":["url","content"],"type":"object"},"WebSearchResultItem":{"additionalProperties":false,"properties":{"content":{"description":"Relevant content snippet from the page","type":"string"},"description":{"description":"Short description or meta description of the page","type":"string"},"title":{"description":"Page title from the search result","type":"string"},"url":{"description":"Full URL of the search result page","type":"string"}},"required":["title","url","description","content"],"type":"object"},"XAuthor":{"additionalProperties":false,"properties":{"avatar":{"description":"Profile picture URL","type":"string"},"handle":{"description":"X/Twitter handle without the @ prefix (e.g. 'cz_binance')","type":"string"},"name":{"description":"Display name on X/Twitter","type":"string"},"user_id":{"description":"Numeric X/Twitter user ID as a string","type":"string"}},"required":["user_id","handle","name"],"type":"object"},"XMedia":{"additionalProperties":false,"properties":{"type":{"description":"Media type: photo, video, or animated_gif","type":"string"},"url":{"description":"Direct URL to the media asset","type":"string"}},"required":["type","url"],"type":"object"},"XStats":{"additionalProperties":false,"properties":{"likes":{"description":"Number of likes (hearts)","format":"int64","type":"integer"},"replies":{"description":"Number of replies","format":"int64","type":"integer"},"reposts":{"description":"Number of retweets/reposts","format":"int64","type":"integer"},"views":{"description":"Total view count","format":"int64","type":"integer"}},"required":["views","likes","reposts","replies"],"type":"object"},"XTweet":{"additionalProperties":false,"properties":{"author":{"$ref":"#/components/schemas/XAuthor","description":"Author of the tweet"},"cover_image_url":{"description":"Article cover image URL; present only when type is 'article'","type":"string"},"created_at":{"description":"Unix timestamp (seconds) when the tweet was posted","format":"int64","type":"integer"},"lang":{"description":"Tweet language code when available","type":"string"},"media":{"description":"Attached media items (photos, videos, GIFs)","items":{"$ref":"#/components/schemas/XMedia"},"type":["array","null"]},"stats":{"$ref":"#/components/schemas/XStats","description":"Engagement statistics (likes, reposts, replies, views)"},"text":{"description":"Full text content of the tweet","type":"string"},"title":{"description":"Article title; present only when type is 'article'","type":"string"},"tweet_id":{"description":"Numeric tweet ID as a string (e.g. '1234567890123456789')","type":"string"},"type":{"description":"Tweet type when available (e.g. 'article' for long-form posts)","type":"string"},"url":{"description":"Permanent link to the tweet on X/Twitter","type":"string"}},"required":["tweet_id","text","url","created_at","author","stats"],"type":"object"},"YieldRankingItem":{"additionalProperties":false,"properties":{"apy":{"description":"Total APY (base + reward)","format":"double","type":"number"},"apy_base":{"description":"Base APY from pool fees or interest","format":"double","type":"number"},"apy_reward":{"description":"Reward token APY","format":"double","type":"number"},"pool_address":{"description":"Pool or vault contract address","type":"string"},"project":{"description":"Protocol name","type":"string"},"symbol":{"description":"Token symbol","type":"string"},"token_address":{"description":"Underlying token address","type":"string"},"tvl_usd":{"description":"Pool TVL in USD","format":"double","type":"number"},"version":{"description":"Protocol version","type":"string"}},"required":["project","version","symbol","pool_address","token_address","apy","apy_base","apy_reward","tvl_usd"],"type":"object"}},"securitySchemes":{"AccessToken":{"bearerFormat":"JWT","scheme":"bearer","type":"http","description":"AskSurf API key. Send as Authorization: Bearer <API_KEY>. Keys are read-scoped by product area.","x-available-scopes":{"data:read":"Read crypto market, wallet, token, project, and on-chain data","prediction-markets:read":"Read prediction-market data and analytics","account:read":"Read the authenticated account and credit balance"}},"AdminToken":{"in":"header","name":"X-Admin-Token","type":"apiKey"},"InternalKey":{"in":"header","name":"X-Internal-Key","type":"apiKey"}}},"info":{"contact":{"email":"backend@cybertinolab.com","name":"Cyber team"},"description":"AskSurf (Surf AI) public REST API for crypto intelligence. Authenticate with a scoped API key using the Authorization Bearer header. The canonical API docs and machine-readable schema are published at agents.asksurf.ai/openapi.json.","title":"AskSurf Public REST API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/gateway/v1/dex/token/price":{"get":{"description":"Returns DEX-pool-weighted OHLCV bars (timestamp, open, high, low, close, volume_usd) for a single token identified by `chain` + `address`. USD only. Bars are sorted ascending by `timestamp`.\n\n**Use for** meme coins, newly-launched tokens, and any DEX-native asset where `/v1/market/price` returns nothing. Prefer the standard `/v1/market/price` for major listed tokens (BTC, ETH, etc.).\n\n**Time window:** `time_range` (default `24h`) sets the window; `from`+`to` (Unix seconds or `YYYY-MM-DD`) override it. Bars use closed-interval semantics, so `24h × 1h` returns 25 bars. Maximum 1500 bars per call — combinations exceeding the cap (e.g. `30d × 5m`) return 422. `time_range=max` returns the largest allowed 1500-bar window for the selected interval.\n\n**Identity:** `chain` (enum) + `address` (EVM hex or Solana base58). No symbol input.","operationId":"dex-token-price","parameters":[{"description":"Chain the token lives on. Can be `ethereum`, `base`, `bsc`, `arbitrum`, `optimism`, `polygon`, `avalanche`, or `solana`.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain the token lives on. Can be `ethereum`, `base`, `bsc`, `arbitrum`, `optimism`, `polygon`, `avalanche`, or `solana`.","enum":["ethereum","base","bsc","arbitrum","optimism","polygon","avalanche","solana"],"examples":["ethereum"],"type":"string"}},{"description":"Token contract address — 0x-prefixed hex (42 chars) for EVM chains, base58 for Solana. NOT a ticker symbol.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token contract address — 0x-prefixed hex (42 chars) for EVM chains, base58 for Solana. NOT a ticker symbol.","examples":["0x6982508145454ce325ddbe47a25d4ec3d2311933"],"type":"string"}},{"description":"Candle bucket size. Sub-day intervals (`1m`-`4h`) are the typical choice for active DEX analysis.","explode":false,"in":"query","name":"interval","schema":{"default":"1h","description":"Candle bucket size. Sub-day intervals (`1m`-`4h`) are the typical choice for active DEX analysis.","enum":["1m","5m","15m","30m","1h","4h","12h","1d","7d"],"examples":["1h"],"type":"string"}},{"description":"Window of historical data to return. `max` returns the largest allowed 1500-bar window for the selected interval. Ignored when both `from` and `to` are set.","explode":false,"in":"query","name":"time_range","schema":{"default":"24h","description":"Window of historical data to return. `max` returns the largest allowed 1500-bar window for the selected interval. Ignored when both `from` and `to` are set.","enum":["1h","6h","12h","24h","7d","30d","90d","180d","365d","max"],"examples":["24h"],"type":"string"}},{"description":"Start of custom date range (Unix seconds or YYYY-MM-DD). Must be set together with `to`. Overrides `time_range` when set.","explode":false,"in":"query","name":"from","schema":{"description":"Start of custom date range (Unix seconds or YYYY-MM-DD). Must be set together with `to`. Overrides `time_range` when set.","examples":["2026-01-01"],"type":"string"}},{"description":"End of custom date range (Unix seconds or YYYY-MM-DD). Must be set together with `from`. Overrides `time_range` when set.","explode":false,"in":"query","name":"to","schema":{"description":"End of custom date range (Unix seconds or YYYY-MM-DD). Must be set together with `from`. Overrides `time_range` when set.","examples":["2026-01-02"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseDexTokenPriceBar"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"DEX Token OHLCV Price","tags":["DEX"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/balance-sheet":{"get":{"description":"Returns paginated standardized balance-sheet periods for a US-listed equity. Each metric includes an availability status, and unavailable values are returned as null.","operationId":"equity-balance-sheet","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Financial period","explode":false,"in":"query","name":"period","schema":{"default":"annual","description":"Financial period","enum":["quarterly","annual"],"type":"string"}},{"description":"Inclusive latest period end date in YYYY-MM-DD format","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive latest period end date in YYYY-MM-DD format","examples":["2024-12-31"],"type":"string"}},{"description":"Maximum financial periods to return","explode":false,"in":"query","name":"limit","schema":{"default":5,"description":"Maximum financial periods to return","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityBalanceSheetItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Balance Sheet","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/candles":{"get":{"description":"Returns historical OHLCV candles and the latest traded price for a US-listed equity. Candles are ordered by timestamp ascending; historical data and the latest price use independent freshness windows.","operationId":"equity-candles","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"maxLength":20,"minLength":1,"type":"string"}},{"description":"Candle interval","explode":false,"in":"query","name":"interval","schema":{"default":"day","description":"Candle interval","enum":["day","week","month","year"],"type":"string"}},{"description":"Number of intervals represented by each candle","explode":false,"in":"query","name":"interval_multiplier","schema":{"default":1,"description":"Number of intervals represented by each candle","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Inclusive start date in YYYY-MM-DD format; defaults to one year before end_date","explode":false,"in":"query","name":"start_date","schema":{"description":"Inclusive start date in YYYY-MM-DD format; defaults to one year before end_date","examples":["2025-01-01"],"type":"string"}},{"description":"Inclusive end date in YYYY-MM-DD format; defaults to the current date in US Eastern time","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive end date in YYYY-MM-DD format; defaults to the current date in US Eastern time","examples":["2025-12-31"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseEquityCandlesResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Price Candles","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/cash-flow":{"get":{"description":"Returns paginated standardized cash-flow periods for a US-listed equity. The response preserves serving-layer values, status, origin, and period metadata.","operationId":"equity-cash-flow","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Financial period","explode":false,"in":"query","name":"period","schema":{"default":"annual","description":"Financial period","enum":["quarterly","ytd","annual","ttm"],"type":"string"}},{"description":"Inclusive latest period end date in YYYY-MM-DD format","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive latest period end date in YYYY-MM-DD format","examples":["2024-12-31"],"type":"string"}},{"description":"Maximum financial periods to return","explode":false,"in":"query","name":"limit","schema":{"default":5,"description":"Maximum financial periods to return","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityCashFlowItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Cash Flow","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/etf/holdings":{"get":{"description":"Returns a stored ETF or index-fund portfolio snapshot plus its independently resolved immediately previous snapshot, ordered newest to oldest. Available quarterly periods describe the stored holdings history. The latest pair is cached for 6 hours; an explicit historical as_of pair is cached until the next calendar quarter.","operationId":"equity-etf-holdings","parameters":[{"description":"US-listed ETF or index-fund ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US-listed ETF or index-fund ticker symbol","examples":["SPY"],"maxLength":20,"minLength":1,"type":"string"}},{"description":"Select the composition effective on or before this YYYY-MM-DD date; the response also includes its immediately previous snapshot","explode":false,"in":"query","name":"as_of","schema":{"description":"Select the composition effective on or before this YYYY-MM-DD date; the response also includes its immediately previous snapshot","examples":["2026-03-31"],"type":"string"}},{"description":"Filter holdings by instrument type","explode":false,"in":"query","name":"asset_class","schema":{"description":"Filter holdings by instrument type","enum":["equity","bond"],"type":"string"}},{"description":"Maximum holdings to return","explode":false,"in":"query","name":"limit","schema":{"default":50,"description":"Maximum holdings to return","format":"int64","maximum":1000,"minimum":1,"type":"integer"}},{"description":"Number of holdings to skip","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Number of holdings to skip","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseEquityETFHoldingsResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"ETF Holdings","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/filings":{"get":{"description":"Returns filing accession and statement provenance available from the current stable equity serving publication. Form type, filing timestamps, and document URLs are not part of this contract.","operationId":"equity-filings","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityFiling"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Filing Provenance","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/income-statement":{"get":{"description":"Returns paginated standardized income-statement periods for a US-listed equity. The API passes through available periods and does not synthesize missing periods or financial values.","operationId":"equity-income-statement","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Financial period","explode":false,"in":"query","name":"period","schema":{"default":"annual","description":"Financial period","enum":["quarterly","ytd","annual","ttm"],"type":"string"}},{"description":"Inclusive latest period end date in YYYY-MM-DD format","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive latest period end date in YYYY-MM-DD format","examples":["2024-12-31"],"type":"string"}},{"description":"Maximum financial periods to return","explode":false,"in":"query","name":"limit","schema":{"default":5,"description":"Maximum financial periods to return","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityIncomeStatementItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Income Statement","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/latest-filings":{"get":{"description":"Returns the most recently accepted periodic SEC filings across US equities. Includes 10-K, 10-Q, 20-F, 40-F and amendments. Excludes 8-K. One filing per reporting series.","operationId":"equity-latest-filings","parameters":[{"description":"Maximum filings to return","explode":false,"in":"query","name":"limit","schema":{"default":4,"description":"Maximum filings to return","format":"int64","maximum":20,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityLatestFilingItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Latest Equity Filings","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/latest-financials":{"get":{"description":"Returns the most recently published current-serving TTM financials across US equities. Use market_cap_min to include only companies above an explicit current-serving market capitalization threshold in USD. One company per reporting series, ranked by the current publication's SEC accepted_at then filed_on.","operationId":"equity-latest-financials","parameters":[{"description":"Maximum companies to return","explode":false,"in":"query","name":"limit","schema":{"default":4,"description":"Maximum companies to return","format":"int64","maximum":20,"minimum":1,"type":"integer"}},{"description":"Optional minimum current market capitalization in USD; omit to disable this filter","explode":false,"in":"query","name":"market_cap_min","schema":{"description":"Optional minimum current market capitalization in USD; omit to disable this filter","format":"double","minimum":0,"type":["number","null"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityLatestFinancialsItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Latest Equity Financials","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/listings":{"get":{"description":"Returns all current verified active stock listings for the issuer resolved from the requested ticker. Ticker alone is not treated as a durable listing identity.","operationId":"equity-listings","parameters":[{"description":"Ticker used to resolve the issuer whose current verified stock listings are returned","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Ticker used to resolve the issuer whose current verified stock listings are returned","examples":["AAPL"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityListing"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Listings","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/meta":{"get":{"description":"Returns lightweight identity, logo, and latest USD price metadata for one or more US-listed stocks or ETFs. Symbols are returned in request order. Company and fund identity is cached for 24 hours; prices are cached independently for 1 minute.","operationId":"equity-meta","parameters":[{"description":"One or more comma-separated US stock or ETF ticker symbols; at most 20 unique symbols","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"One or more comma-separated US stock or ETF ticker symbols; at most 20 unique symbols","examples":["AAPL,NVDA,SPY"],"maxLength":419,"minLength":1,"type":"string"}},{"description":"Include tokenized counterparts of each stock — issuer-minted crypto tokens tracking the equity, with their chains and contract addresses. Off by default: most symbols have none, and the payload grows with a 20-symbol request.","explode":false,"in":"query","name":"include_tokenized","schema":{"description":"Include tokenized counterparts of each stock — issuer-minted crypto tokens tracking the equity, with their chains and contract addresses. Off by default: most symbols have none, and the payload grows with a 20-symbol request.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseEquityMeta"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Metadata","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/metrics":{"get":{"description":"Returns paginated standardized financial ratios, growth measures, per-share values, and valuation metrics for a US-listed equity.","operationId":"equity-financial-metrics","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Financial metric period","explode":false,"in":"query","name":"period","schema":{"default":"ttm","description":"Financial metric period","enum":["quarterly","annual","ttm"],"type":"string"}},{"description":"Inclusive latest period end date in YYYY-MM-DD format","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive latest period end date in YYYY-MM-DD format","examples":["2024-12-31"],"type":"string"}},{"description":"Maximum financial periods to return","explode":false,"in":"query","name":"limit","schema":{"default":5,"description":"Maximum financial periods to return","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityFinancialMetricsItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Financial Metrics","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/overview":{"get":{"description":"Returns a paginated financial overview for a US-listed equity. Values are served as reported or derived by the financial-data serving layer; missing values remain explicit nulls and are not recalculated by this API.","operationId":"equity-overview","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}},{"description":"Financial period","explode":false,"in":"query","name":"period","schema":{"default":"ttm","description":"Financial period","enum":["quarterly","ytd","annual","ttm"],"type":"string"}},{"description":"Inclusive latest period end date in YYYY-MM-DD format","explode":false,"in":"query","name":"end_date","schema":{"description":"Inclusive latest period end date in YYYY-MM-DD format","examples":["2024-12-31"],"type":"string"}},{"description":"Maximum financial periods to return","explode":false,"in":"query","name":"limit","schema":{"default":5,"description":"Maximum financial periods to return","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseEquityOverviewItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Financial Overview","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/equity/profile":{"get":{"description":"Returns a standardized stock company profile or ETF product profile, including its business description and source-update metadata.","operationId":"equity-company-profile","parameters":[{"description":"US equity ticker symbol","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"US equity ticker symbol","examples":["AAPL"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseEquityCompanyProfile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Equity Profile","tags":["Equity"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/candles":{"get":{"description":"Returns persisted OHLCV candles for a covered Bithumb, Upbit, HashKey, bitFlyer, Coinone, or Korbit spot market.\n\n**Intervals:** `5m`, `4h`, and `1w`. bitFlyer is currently reliable for weekly (`1w`) OHLCV only.\n\n**Pagination:** use `from`/`to` to bound the time range and `limit` to cap returned candles. Results are ordered newest first.\n\n**Synthetic candles:** `include_synthetic=true` by default, so carry-forward candles for no-trade intervals are included for continuous charts. Set `include_synthetic=false` for raw exchange-only candles. Sparse Korbit markets may rely on synthetic rows to keep charts continuous.","operationId":"exchange-candles","parameters":[{"description":"Exchange identifier","explode":false,"in":"query","name":"exchange","required":true,"schema":{"description":"Exchange identifier","enum":["bithumb","upbit","hashkey","bitflyer","coinone","korbit"],"examples":["bithumb"],"type":"string"}},{"description":"Trading pair in base/quote form, e.g. BTC/KRW","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair in base/quote form, e.g. BTC/KRW","examples":["BTC/KRW"],"type":"string"}},{"description":"Candle interval","explode":false,"in":"query","name":"interval","schema":{"default":"5m","description":"Candle interval","enum":["5m","4h","1w"],"examples":["5m"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string","examples":["2026-06-24T09:00:00Z"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds or date string","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds or date string","examples":["2026-06-24T10:00:00Z"],"type":"string"}},{"description":"Whether to include carry-forward candles for no-trade intervals. Defaults to true for continuous charts; set false for raw exchange-only candles.","explode":false,"in":"query","name":"include_synthetic","schema":{"default":true,"description":"Whether to include carry-forward candles for no-trade intervals. Defaults to true for continuous charts; set false for raw exchange-only candles.","examples":[true],"type":"boolean"}},{"description":"Max number of candles to return. Weekly candles allow up to 300 rows for a 5-year chart; intraday intervals are capped at 100.","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Max number of candles to return. Weekly candles allow up to 300 rows for a 5-year chart; intraday intervals are capped at 100.","examples":[100],"format":"int64","maximum":300,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseExchangeCandleItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Historical Candles","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/coverage":{"get":{"description":"Returns covered spot markets on Bithumb, Upbit, HashKey, bitFlyer, Coinone, and Korbit with latest ticker metrics, candle availability, technical score, and data status.\n\n**Ticker fields:** latest price, 24h open/high/low, previous close, signed 24h price and percent change, and 24h base/quote volume when the exchange provides them.\n\nUse the returned `pair` values with `/exchange/candles` for historical OHLCV.\n\n**Coverage notes:** bitFlyer coverage is currently strongest for weekly (`1w`) OHLCV. Korbit markets can have sparse intraday rows during no-trade periods; inspect `data_status` and `data_actionability` before using a market.","operationId":"exchange-coverage","parameters":[{"description":"Exchange identifier. When omitted, returns all supported exchanges.","explode":false,"in":"query","name":"exchange","schema":{"description":"Exchange identifier. When omitted, returns all supported exchanges.","enum":["bithumb","upbit","hashkey","bitflyer","coinone","korbit"],"examples":["bithumb"],"type":"string"}},{"description":"Free-text search over pair, base currency, or quote currency","explode":false,"in":"query","name":"q","schema":{"description":"Free-text search over pair, base currency, or quote currency","examples":["BTC"],"type":"string"}},{"description":"Quote currency filter","explode":false,"in":"query","name":"quote","schema":{"description":"Quote currency filter","examples":["KRW"],"type":"string"}},{"description":"Market type","explode":false,"in":"query","name":"type","schema":{"default":"spot","description":"Market type","enum":["spot"],"examples":["spot"],"type":"string"}},{"description":"Market status filter","explode":false,"in":"query","name":"status","schema":{"description":"Market status filter","enum":["active","inactive"],"examples":["active"],"type":"string"}},{"description":"Market data coverage status filter","explode":false,"in":"query","name":"data_status","schema":{"description":"Market data coverage status filter","enum":["covered","official_empty_all","official_empty_ticker","official_empty_5m","official_empty_weekly","stale_gt_7d","stale_30m_to_7d","recent_but_lt_min_ta_candles","missing_4h","missing_latest_ta"],"examples":["covered"],"type":"string"}},{"description":"Sort field","explode":false,"in":"query","name":"sort_by","schema":{"default":"pair","description":"Sort field","enum":["pair","price","change_24h","volume_24h","technical_score","latest_candle_at","status"],"examples":["pair"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"asc","description":"Sort order","enum":["asc","desc"],"examples":["asc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseExchangeCoverageItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Market Coverage","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/depth":{"get":{"description":"Returns order book bid/ask levels with computed stats.\n\n**Included fields:** spread, spread percentage, mid-price, and total bid/ask depth.\n\nUse `limit` to control the number of price levels (1–100, default 20). Set `type=swap` to query perpetual contract order books instead of spot.","operationId":"exchange-depth","parameters":[{"description":"Trading pair (e.g. BTC/USDT)","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT)","examples":["BTC/USDT"],"type":"string"}},{"description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","explode":false,"in":"query","name":"type","schema":{"default":"spot","description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","enum":["spot","swap","perpetual","perp"],"examples":["spot"],"type":"string"}},{"description":"Number of price levels (1-100)","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Number of price levels (1-100)","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","enum":["binance","okx","bybit","bitget","coinbase","kraken","gate","mexc","upbit","bitstamp","deribit","bitmex","bithumb","hyperliquid"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangeDepthItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Order Book Depth","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/funding-history":{"get":{"description":"Returns historical funding rate records for a perpetual contract.\n\n**Pagination:** use `from` to set the start time and `limit` to control result count. For longer history, pass the last returned timestamp as the next `from` value.\n\n**Note:** not all exchanges support historical queries via `from`; some only return recent data regardless.\n\nFor the latest funding rate snapshot, see `/exchange/perp?fields=funding`.","operationId":"exchange-funding-history","parameters":[{"description":"Trading pair (e.g. BTC/USDT)","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT)","examples":["BTC/USDT"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Not all exchanges support historical queries; some only return recent data regardless of this value.","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Not all exchanges support historical queries; some only return recent data regardless of this value.","examples":["2026-03-01"],"type":"string"}},{"description":"Max number of records. For longer history, paginate using the last returned timestamp as the next from value.","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Max number of records. For longer history, paginate using the last returned timestamp as the next from value.","examples":[100],"format":"int64","maximum":500,"minimum":1,"type":"integer"}},{"description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","enum":["binance","okx","bybit","bitget","gate","htx","mexc","bitfinex","bitmex","hyperliquid"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangeFundingHistoryItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Funding Rate History","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/klines":{"get":{"description":"Returns OHLCV candlestick data with period summary stats (high, low, total volume).\n\n**Intervals:** 15 options from `1m` to `1M`.\n\n**Pagination:** use `from` to set the start time and `limit` to control candle count. For longer ranges, pass the last returned candle's timestamp as the next `from` value. Exchange-side limits vary (200–1000 per request).\n\nSet `type=swap` to query perpetual contract candles instead of spot.","operationId":"exchange-klines","parameters":[{"description":"Trading pair (e.g. BTC/USDT)","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT)","examples":["BTC/USDT"],"type":"string"}},{"description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","explode":false,"in":"query","name":"type","schema":{"default":"spot","description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","enum":["spot","swap","perpetual","perp"],"examples":["spot"],"type":"string"}},{"description":"Candle size — bucket duration for each returned OHLCV row. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from` + `limit` to control the window.","explode":false,"in":"query","name":"interval","schema":{"default":"1h","description":"Candle size — bucket duration for each returned OHLCV row. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from` + `limit` to control the window.","enum":["1m","3m","5m","15m","30m","1h","2h","4h","6h","8h","12h","1d","3d","1w","1M"],"examples":["1h"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601)","examples":["2026-03-01"],"type":"string"}},{"description":"Max number of candles to return. Exchange may cap lower (e.g. 200-1000). For longer ranges, paginate using the last returned timestamp as the next from value.","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Max number of candles to return. Exchange may cap lower (e.g. 200-1000). For longer ranges, paginate using the last returned timestamp as the next from value.","examples":[100],"format":"int64","maximum":1000,"minimum":1,"type":"integer"}},{"description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","enum":["binance","okx","bybit","bitget","coinbase","kraken","gate","htx","kucoin","mexc","upbit","bitfinex","bitstamp","deribit","bitmex","bithumb","hyperliquid"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangeKlineResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange OHLCV Candlesticks","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/long-short-ratio":{"get":{"description":"Returns historical long/short ratio for a perpetual contract.\n\n**Included fields:** ratio value, long account percentage, short account percentage.\n\n**Granularity:** `interval` supports `1h`, `4h`, `1d`.\n\n**Pagination:** use `from` for start time and `limit` for result count. For longer history, pass the last returned timestamp as the next `from` value.\n\n**Note:** not all exchanges support historical queries via `from`; some only return recent data regardless.\n\nJust pass the base pair (e.g. `pair=BTC/USDT`). For aggregated cross-exchange long/short ratio, see `/market/futures`.","operationId":"exchange-long-short-ratio","parameters":[{"description":"Trading pair (e.g. BTC/USDT)","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT)","examples":["BTC/USDT"],"type":"string"}},{"description":"Bucket size for each point in the series: `1h`, `4h`, or `1d`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from` + `limit` to control the window.","explode":false,"in":"query","name":"interval","schema":{"default":"1h","description":"Bucket size for each point in the series: `1h`, `4h`, or `1d`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from` + `limit` to control the window.","enum":["1h","4h","1d"],"examples":["1h"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Binance only retains the last 30 days of data; other exchanges may have different limits.","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Binance only retains the last 30 days of data; other exchanges may have different limits.","examples":["2026-03-01"],"type":"string"}},{"description":"Max number of records. For longer history, paginate using the last returned timestamp as the next from value.","explode":false,"in":"query","name":"limit","schema":{"default":50,"description":"Max number of records. For longer history, paginate using the last returned timestamp as the next from value.","examples":[50],"format":"int64","maximum":500,"minimum":1,"type":"integer"}},{"description":"Exchange identifier","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier","enum":["binance","okx","bybit","bitget"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangeLongShortRatioItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Long/Short Ratio History","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/markets":{"get":{"description":"Returns trading pairs available on an exchange.\n\n**Filters:** `type` (`spot`, `swap`, `future`, `option`) or free-text `search`.\n\n**Included fields:** pair name, base/quote currencies, market type, active status, and default fee rates.\n\nUse the returned `pair` values as the `pair` parameter in other exchange endpoints.","operationId":"exchange-markets","parameters":[{"description":"Exchange identifier. When omitted, searches across all supported exchanges.","explode":false,"in":"query","name":"exchange","schema":{"description":"Exchange identifier. When omitted, searches across all supported exchanges.","enum":["binance","okx","bybit","bitget","coinbase","kraken","gate","htx","kucoin","mexc","upbit","bitfinex","bitstamp","deribit","bitmex","bithumb","hyperliquid"],"examples":["binance"],"type":"string"}},{"description":"Market type filter. Use perpetual or perp for perpetual contracts (alias for swap).","explode":false,"in":"query","name":"type","schema":{"description":"Market type filter. Use perpetual or perp for perpetual contracts (alias for swap).","enum":["spot","swap","future","option","perpetual","perp"],"examples":["spot"],"type":"string"}},{"description":"Filter by base currency","explode":false,"in":"query","name":"base","schema":{"description":"Filter by base currency","examples":["ETH"],"type":"string"}},{"description":"Filter by quote currency","explode":false,"in":"query","name":"quote","schema":{"description":"Filter by quote currency","examples":["USDT"],"type":"string"}},{"description":"Fuzzy search in pair/base/quote","explode":false,"in":"query","name":"search","schema":{"description":"Fuzzy search in pair/base/quote","examples":["ETH"],"type":"string"}},{"description":"Max results","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Max results","examples":[100],"format":"int64","maximum":5000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangeMarketItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Trading Pairs","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/perp":{"get":{"description":"Returns a perpetual futures snapshot for a trading pair: funding rate, open interest, mark/index price.\n\n**Available fields** (via `fields`):\n- `funding` — current funding rate, next settlement, mark/index price\n- `oi` — open interest in contracts and USD\n\nJust pass the base pair (e.g. `pair=BTC/USDT`). The swap settle suffix is added automatically from the quote currency, e.g. `BTC/USDT:USDT` or `BTC/USDC:USDC`.","operationId":"exchange-perp","parameters":[{"description":"Trading pair (e.g. BTC/USDT). The swap settle suffix is added automatically from the quote currency, e.g. BTC/USDT:USDT or BTC/USDC:USDC.","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT). The swap settle suffix is added automatically from the quote currency, e.g. BTC/USDT:USDT or BTC/USDC:USDC.","examples":["BTC/USDT"],"type":"string"}},{"description":"Comma-separated fields to include: 'funding' (current funding rate), 'oi' (open interest). Defaults to all fields.","explode":false,"in":"query","name":"fields","schema":{"default":"funding,oi","description":"Comma-separated fields to include: 'funding' (current funding rate), 'oi' (open interest). Defaults to all fields.","examples":["funding,oi"],"type":"string"}},{"description":"Exchange identifier. Hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC).","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier. Hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC).","enum":["binance","okx","bybit","bitget","htx","bitfinex","bitmex","hyperliquid"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseExchangePerpResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Perpetual Contract Snapshot","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/exchange/price":{"get":{"description":"Returns the real-time ticker for a trading pair.\n\n**Included fields:** last price, bid/ask, 24h high/low, 24h volume, 24h price change.\n\nSet `type=swap` to query perpetual contract prices instead of spot. For historical price trends, use `/market/price`.","operationId":"exchange-price","parameters":[{"description":"Trading pair (e.g. BTC/USDT)","explode":false,"in":"query","name":"pair","required":true,"schema":{"description":"Trading pair (e.g. BTC/USDT)","examples":["BTC/USDT"],"type":"string"}},{"description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","explode":false,"in":"query","name":"type","schema":{"default":"spot","description":"Market type: spot for spot trading, swap/perpetual/perp for perpetual contracts","enum":["spot","swap","perpetual","perp"],"examples":["spot"],"type":"string"}},{"description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange identifier. Note: hyperliquid uses USDC-settled perps (e.g. BTC/USDC:USDC); pass USDC-quoted pairs when querying hyperliquid.","enum":["binance","okx","bybit","bitget","coinbase","kraken","gate","htx","kucoin","mexc","upbit","bitfinex","bitstamp","deribit","bitmex","bithumb","hyperliquid"],"examples":["binance"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseExchangePriceItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Ticker Price","tags":["Exchange"],"x-required-scopes":["data:read"]}},"/gateway/v1/fund/detail":{"get":{"description":"Returns a crypto VC fund's full profile: description, jurisdiction, portfolio count, social links, and team members with roles.\n\n**Included fields:** X accounts, team members, recent research, invested project count.\n\nThis does NOT return the list of investments — use `/fund/portfolio` for that.\n\n**Lookup:** by UUID (`id`) or name (`q`). Returns 404 if not found.","operationId":"fund-detail","parameters":[{"description":"Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q.","examples":["ef3b6da9-283d-4080-b3c7-87b1b45924dc"],"type":"string"}},{"description":"Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["a16z"],"maxLength":100,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseFundDetailItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fund Profile Detail","tags":["Fund"],"x-required-scopes":["data:read"]}},"/gateway/v1/fund/portfolio":{"get":{"description":"Returns investment rounds for a fund's portfolio, sorted by date (newest first).\n\nA project may appear multiple times if the fund participated in multiple rounds.\n\n**Included fields:** project name, logo, date, raise amount, lead investor status.\n\n**Lookup:** by UUID (`id`) or name (`q`).","operationId":"fund-portfolio","parameters":[{"description":"Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q.","examples":["ef3b6da9-283d-4080-b3c7-87b1b45924dc"],"type":"string"}},{"description":"Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["a16z"],"maxLength":100,"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter by lead investor status. Omit or leave empty for all investments.","explode":false,"in":"query","name":"is_lead","schema":{"description":"Filter by lead investor status. Omit or leave empty for all investments.","enum":["true","false",""],"examples":["true"],"type":"string"}},{"description":"Only include investments at or after this Unix timestamp (seconds)","explode":false,"in":"query","name":"invested_after","schema":{"description":"Only include investments at or after this Unix timestamp (seconds)","examples":[1704067200],"format":"int64","type":"integer"}},{"description":"Only include investments before this Unix timestamp (seconds)","explode":false,"in":"query","name":"invested_before","schema":{"description":"Only include investments before this Unix timestamp (seconds)","examples":[1735689600],"format":"int64","type":"integer"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"invested_at","description":"Field to sort results by","enum":["invested_at","recent_raise","total_raise"],"examples":["recent_raise"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseFundPortfolioItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fund Portfolio","tags":["Fund"],"x-required-scopes":["data:read"]}},"/gateway/v1/fund/ranking":{"get":{"description":"Returns top crypto VC funds ranked by tier or portfolio count.\n\n**Available metrics:** `tier` (lower is better), `portfolio_count` (number of invested projects).","operationId":"fund-ranking","parameters":[{"description":"Ranking metric. Can be `tier` (lower is better) or `portfolio_count` (number of invested projects).","explode":false,"in":"query","name":"metric","required":true,"schema":{"description":"Ranking metric. Can be `tier` (lower is better) or `portfolio_count` (number of invested projects).","enum":["tier","portfolio_count"],"examples":["tier"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseFundSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fund Ranking","tags":["Fund"],"x-required-scopes":["data:read"]}},"/gateway/v1/heatscore/detail":{"get":{"description":"Returns one project signal card.\n\n**Lookup:** pass exactly one of `id` (Surf token UUID) or `project_slug`. Use `time_range` (`24h` or `7d`) to select the score window.","operationId":"signal-detail","parameters":[{"description":"Surf token UUID. Pass exactly one of id or project_slug.","explode":false,"in":"query","name":"id","schema":{"description":"Surf token UUID. Pass exactly one of id or project_slug.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Project slug. Pass exactly one of id or project_slug.","explode":false,"in":"query","name":"project_slug","schema":{"description":"Project slug. Pass exactly one of id or project_slug.","examples":["synapse"],"type":"string"}},{"description":"Window to compute signal score over: 24h or 7d.","explode":false,"in":"query","name":"time_range","schema":{"default":"24h","description":"Window to compute signal score over: 24h or 7d.","enum":["24h","7d"],"examples":["24h"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseSignalProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Signal Detail","tags":["Signal"],"x-required-scopes":["data:read"]}},"/gateway/v1/heatscore/projects":{"get":{"description":"Returns a paginated ranked snapshot of project signal cards.\n\n**Included fields:** project identity, score, latest price, price-change percentages, core state, dimension scores, compact token signals, AI summaries, and supporting market metrics.\n\n**Filters:** `time_range` (`24h` or `7d`). Supports `limit`/`offset` pagination.","operationId":"signal-projects","parameters":[{"description":"Window to compute signal scores over: 24h or 7d. Returns a ranked snapshot, not a time-series.","explode":false,"in":"query","name":"time_range","schema":{"default":"24h","description":"Window to compute signal scores over: 24h or 7d. Returns a ranked snapshot, not a time-series.","enum":["24h","7d"],"examples":["24h"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseSignalProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Signal Projects","tags":["Signal"],"x-required-scopes":["data:read"]}},"/gateway/v1/heatscore/token-of-the-day":{"get":{"description":"Returns the token-of-the-day project signal cards with latest price, price-change percentages, dimension scores, compact signals, and AI summaries. Supports `limit`/`offset` pagination.","operationId":"signal-token-of-the-day","parameters":[{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseSignalProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Signal Token Of The Day","tags":["Signal"],"x-required-scopes":["data:read"]}},"/gateway/v1/heatscore/token-of-week":{"get":{"description":"Returns the token-of-week project signal cards with latest price, price-change percentages, dimension scores, compact signals, and AI summaries. Supports `limit`/`offset` pagination.","operationId":"signal-token-of-week","parameters":[{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseSignalProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Signal Token Of The Week","tags":["Signal"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/account":{"get":{"description":"Returns a wallet's full portfolio across perps, spot, vaults, and staking in one call, with a perp+vault equity roll-up (`total_value_usd` is the total-equity figure a dashboard header should show, vs the perp-only equity on `/performance` and `/positions`). This is the source for spot balances.\n\nThis is a point-in-time snapshot, not a time series; its perp block duplicates the margin summary from `/hyperliquid/positions` (this endpoint adds spot/vault/staking so it stands alone as a full-portfolio call). Sections are fetched independently: if one fails, that section is omitted (not null) and the failure is named in `errors[]`. The call returns 200 when at least one section succeeds, and 502 only if all four fail. Spot balances are token-denominated and staking is in HYPE.","operationId":"hyperliquid-account","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHyperliquidAccount"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Account Portfolio","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/candles":{"get":{"description":"Returns market OHLCV candles for charting and trade-review overlays, ordered by open_time ascending. Each row also carries trades, closed, and nullable quote volume (null before quote-volume coverage). symbol, from, and to are required; from/to accept Unix seconds, ISO datetimes, or UTC dates, and candle open_time is bounded to the half-open [from,to) window. The requested window may contain at most 5000 candles, so use a larger interval for long histories. The response is market data and does not require a wallet address.","operationId":"hyperliquid-candles","parameters":[{"description":"Hyperliquid market id (for example BTC, kPEPE, xyz:GOLD, the canonical PURR/USDC spot pair, or an @index spot market).","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Hyperliquid market id (for example BTC, kPEPE, xyz:GOLD, the canonical PURR/USDC spot pair, or an @index spot market).","examples":["SOL"],"type":"string"}},{"description":"Candle granularity.","explode":false,"in":"query","name":"interval","schema":{"default":"4h","description":"Candle granularity.","enum":["1m","3m","5m","15m","30m","1h","2h","4h","8h","12h","1d","3d","1w","1M"],"examples":["4h"],"type":"string"}},{"description":"Window start (Unix seconds, an ISO datetime, or a bare UTC date).","explode":false,"in":"query","name":"from","required":true,"schema":{"description":"Window start (Unix seconds, an ISO datetime, or a bare UTC date).","examples":["2026-05-16"],"type":"string"}},{"description":"Window end (Unix seconds, an ISO datetime, or a bare UTC date; a bare date means the end of that day).","explode":false,"in":"query","name":"to","required":true,"schema":{"description":"Window end (Unix seconds, an ISO datetime, or a bare UTC date; a bare date means the end of that day).","examples":["2026-05-19"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseHyperliquidCandle"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Market Candles","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/fills":{"get":{"description":"Returns a wallet's individual fills (fill-level executions), newest first by default, with realized PnL, fees, and direction (`crossed`=true marks a taker fill that took liquidity). For closed round-trip trades (one row per open→close position, with per-trade P&L incl. funding), use `/hyperliquid/trades` instead — funding is NOT attributable at fill level.\n\nDefault `order=desc` is a recent-capped window (no `offset`): up to `limit` of the most-recent fills; page back by setting `to` to the oldest `time` you received (or `to_ms`+`to_fill_id` for millisecond-exact paging). For COMPLETE history with no cap, use `order=asc` with `from` and follow `meta.next_cursor`. `symbol` filters to one market (applied client-side, so with `order=desc` it only filters the recent window — pair with `from`/`to` to reach older history).","operationId":"hyperliquid-fills","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"Window start (Unix seconds or a date). With the default order=desc, results cover the window forward from this point and are capped at ~2000 of the earliest fills in range (narrow the range to see the most-recent fills). With order=asc this is the start of a complete-history walk: follow meta.next_cursor to page through every fill in the window with no cap.","explode":false,"in":"query","name":"from","schema":{"description":"Window start (Unix seconds or a date). With the default order=desc, results cover the window forward from this point and are capped at ~2000 of the earliest fills in range (narrow the range to see the most-recent fills). With order=asc this is the start of a complete-history walk: follow meta.next_cursor to page through every fill in the window with no cap.","examples":["2026-03-01"],"type":"string"}},{"description":"Window end (Unix seconds or a date), inclusive. Defaults to now. With order=desc, page back within the most-recent results by setting this to the oldest time you received (prefer to_ms for millisecond precision); with order=asc it bounds the walk.","explode":false,"in":"query","name":"to","schema":{"description":"Window end (Unix seconds or a date), inclusive. Defaults to now. With order=desc, page back within the most-recent results by setting this to the oldest time you received (prefer to_ms for millisecond precision); with order=asc it bounds the walk.","examples":["2026-03-01"],"type":"string"}},{"description":"Window end in Unix milliseconds, for millisecond-precise desc paging: pass the time_ms of the oldest fill you received to fetch the next page. On its own the boundary is exclusive (fills AT to_ms are dropped), so when more than limit fills share one millisecond the remainder is skipped — pair it with to_fill_id to page losslessly through a boundary millisecond. Takes precedence over to (which is ignored when to_ms is set). Like to, it pages within the recent (~2000-fill) window. desc-only: rejected with order=asc (use cursor instead).","explode":false,"in":"query","name":"to_ms","schema":{"description":"Window end in Unix milliseconds, for millisecond-precise desc paging: pass the time_ms of the oldest fill you received to fetch the next page. On its own the boundary is exclusive (fills AT to_ms are dropped), so when more than limit fills share one millisecond the remainder is skipped — pair it with to_fill_id to page losslessly through a boundary millisecond. Takes precedence over to (which is ignored when to_ms is set). Like to, it pages within the recent (~2000-fill) window. desc-only: rejected with order=asc (use cursor instead).","format":"int64","minimum":0,"type":"integer"}},{"description":"Cursor tiebreak for to_ms: pass the fill_id of the oldest fill you received alongside its time_ms as to_ms. The next page then resumes strictly after that (time_ms, fill_id) pair — fills at the boundary millisecond with a lower fill_id are included instead of skipped, so paging never loses fills that share a millisecond. Requires to_ms; desc-only. Equivalent to following meta.next_cursor, which encodes the same position. An empty page can mean the window is exhausted (set from to reach older history), not that no older fills exist.","explode":false,"in":"query","name":"to_fill_id","schema":{"description":"Cursor tiebreak for to_ms: pass the fill_id of the oldest fill you received alongside its time_ms as to_ms. The next page then resumes strictly after that (time_ms, fill_id) pair — fills at the boundary millisecond with a lower fill_id are included instead of skipped, so paging never loses fills that share a millisecond. Requires to_ms; desc-only. Equivalent to following meta.next_cursor, which encodes the same position. An empty page can mean the window is exhausted (set from to reach older history), not that no older fills exist.","type":"string"}},{"description":"desc (default): newest first — the recent feed, or the earliest-anchored ~2000-fill slice when from is set. asc: oldest first, a complete-history walk from from (required) up to to — each page links the next via meta.next_cursor with no result cap, the reliable mode for full trade-history or PnL reconstruction.","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"desc (default): newest first — the recent feed, or the earliest-anchored ~2000-fill slice when from is set. asc: oldest first, a complete-history walk from from (required) up to to — each page links the next via meta.next_cursor with no result cap, the reliable mode for full trade-history or PnL reconstruction.","enum":["desc","asc"],"type":"string"}},{"description":"Opaque continuation token from a previous response's meta.next_cursor. It encodes the paging direction, position, and window, so pass it with only symbol and limit — combining it with from, to, to_ms, or to_fill_id is rejected with 400.","explode":false,"in":"query","name":"cursor","schema":{"description":"Opaque continuation token from a previous response's meta.next_cursor. It encodes the paging direction, position, and window, so pass it with only symbol and limit — combining it with from, to, to_ms, or to_fill_id is rejected with 400.","type":"string"}},{"description":"Filter to one market (exact match, e.g. xyz:GOLD). Applied client-side: with order=desc it filters after the recent cap (pair it with from/to so older fills are not missed); with order=asc the cursor walk scans past non-matching fills, so a page may return fewer than limit items (or none) while meta.next_cursor still advances.","explode":false,"in":"query","name":"symbol","schema":{"description":"Filter to one market (exact match, e.g. xyz:GOLD). Applied client-side: with order=desc it filters after the recent cap (pair it with from/to so older fills are not missed); with order=asc the cursor walk scans past non-matching fills, so a page may return fewer than limit items (or none) while meta.next_cursor still advances.","type":"string"}},{"description":"Page size (1-100).","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Page size (1-100).","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorDataResponseHyperliquidFill"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fills","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/leaderboard":{"get":{"description":"Returns traders ranked by a chosen performance metric (PnL by default), with quality filters to exclude bots and brand-new accounts. Each row carries `rank` (1-based, offset-adjusted position in this response's ordering).\n\n**Metric basis — does NOT reconcile with `/performance`:** the leaderboard is built on the upstream Hydromancer trade model, whose `total_pnl` is funding-INCLUSIVE over an all-markets trade universe, while `/hyperliquid/performance`/`/trades`/`/trades/aggregate` are funding-EXCLUDED over our episode warehouse. A leaderboard PnL and the same trader's `/performance` net can differ severalfold — do not display them side-by-side as the same number.\n\n**Ranking:** `sort_by` (`total_pnl`, `win_rate`, `volume_traded`) over a `time_range` window (`1d`, `7d`, `30d`, `90d`, `all`). Always sorted descending.\n\n**Filters:** `min_trades` (defaults to 5; pass `0` for the full population), `min_days_active`, `min_account_age_days`, `min_human_score`, and `dex` (`main_dex` or omit for the NATIVE market only — note `/trades/aggregate` omits to ALL markets — or a builder market: `xyz`, `flx`, `vntl`, `hyna`, `km`, `abcd`, `cash`, `para`, `mkts`).\n\nPaginated with `limit`/`offset`; `meta.total` is the exact count matching your filters.","operationId":"hyperliquid-leaderboard","parameters":[{"description":"Window to rank over. Default all (data starts 2025-08-01).","explode":false,"in":"query","name":"time_range","schema":{"default":"all","description":"Window to rank over. Default all (data starts 2025-08-01).","enum":["1d","7d","30d","90d","all"],"type":"string"}},{"description":"Rank by this metric. Always sorted descending.","explode":false,"in":"query","name":"sort_by","schema":{"default":"total_pnl","description":"Rank by this metric. Always sorted descending.","enum":["total_pnl","win_rate","volume_traded"],"type":"string"}},{"description":"Only traders with at least this many trades. Defaults to 5; pass 0 for the full population.","explode":false,"in":"query","name":"min_trades","schema":{"default":5,"description":"Only traders with at least this many trades. Defaults to 5; pass 0 for the full population.","format":"int64","minimum":0,"type":"integer"}},{"description":"Only traders active at least this many days (0 = no filter).","explode":false,"in":"query","name":"min_days_active","schema":{"default":0,"description":"Only traders active at least this many days (0 = no filter).","format":"int64","minimum":0,"type":"integer"}},{"description":"Only accounts at least this old, in days (0 = no filter).","explode":false,"in":"query","name":"min_account_age_days","schema":{"default":0,"description":"Only accounts at least this old, in days (0 = no filter).","format":"int64","minimum":0,"type":"integer"}},{"description":"Only traders scoring at least this, 0-100 (0 = no filter).","explode":false,"in":"query","name":"min_human_score","schema":{"default":0,"description":"Only traders scoring at least this, 0-100 (0 = no filter).","format":"int64","maximum":100,"minimum":0,"type":"integer"}},{"description":"Market to rank within: main_dex (or omit) for the native market ONLY, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts. NOTE: the omit default differs from /trades/aggregate, where omitting dex aggregates across ALL markets.","explode":false,"in":"query","name":"dex","schema":{"description":"Market to rank within: main_dex (or omit) for the native market ONLY, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts. NOTE: the omit default differs from /trades/aggregate, where omitting dex aggregates across ALL markets.","enum":["main_dex","xyz","flx","vntl","hyna","km","abcd","cash","para","mkts"],"type":"string"}},{"description":"Results per page (1-100).","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page (1-100).","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Results to skip.","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Results to skip.","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseHyperliquidTrader"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Trader Leaderboard","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/orders":{"get":{"description":"Returns a wallet's live resting orders (`open` — stops, take-profits, limits, with trigger type) plus its recent terminal orders (`historical` — filled / canceled / rejected). Use `open` for \"is a stop set right now?\" and `historical` for the set-then-cancelled timeline. Order `side` is in trade terms (`buy`/`sell`), not position terms — a sell stop protects a long; join to `/hyperliquid/positions` by `symbol`.\n\nSections are truncated to `open_limit` (default 500) / `historical_limit` (default 200) — `open_total`/`historical_total` carry the pre-truncation counts. Both sections mix PERP and SPOT orders — check `market_type`: spot orders carry raw spot-pair-index symbols (`@107`) that never join to `/positions`, `/trades`, or `/fills` (perp-only surfaces); filter `market_type=perp` for a perp working-orders panel.\n\n`historical` is **one row per order at its final status**, newest first: the upstream feed is a status-transition stream (an order appears as `open`, then `filled`/`canceled`), so we collapse it to the latest status per order id and drop still-`open` orders (those are in the `open` section) — a passthrough would double-count ids and mislabel status. Status values pass through Hyperliquid's raw camelCase vocabulary: `filled`, `canceled`, plus reject variants like `iocCancelRejected`, `badAloPxRejected`, `selfTradeCanceled`, `insufficientSpotBalanceRejected` — treat any status other than `filled`/`canceled` as a rejection bucket. Derived from the most-recent ~2000 status updates.\n\nThe two sections fetch independently: a failed section is named in `errors[]` and the call still returns 200 (502 only if both fail).","operationId":"hyperliquid-orders","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count).","explode":false,"in":"query","name":"open_limit","schema":{"default":500,"description":"Max open orders returned (market makers can hold 1500+; open_total reports the pre-truncation count).","format":"int64","maximum":2000,"minimum":1,"type":"integer"}},{"description":"Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count).","explode":false,"in":"query","name":"historical_limit","schema":{"default":200,"description":"Max terminal orders returned, newest first (the upstream feed holds ~1000 post-collapse; historical_total reports the pre-truncation count).","format":"int64","maximum":2000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHyperliquidOrders"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Open & Recent Orders","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/performance":{"get":{"description":"Returns the connected user's lifetime trading-performance summary — the dashboard header: re-rolled realized performance (win rate, profit factor, gross/net PnL — **funding-excluded**, net = gross − fees), the live position snapshot, and account value.\n\nThis is a lifetime, point-in-time summary: it takes NO `from`/`to` window (use `/hyperliquid/trades` for windowed, paginated closed trades) and carries NO trade list. `account_value` is the live **perp clearinghouse** equity only — NOT total portfolio; for total equity incl. spot/vault use `/hyperliquid/account` (`total_value_usd`). Sections degrade independently: a failed section is named in `errors[]` and the call still returns 200. A genuinely flat perp account returns `account_value` 0 with no `errors[]`; the field is omitted only when the snapshot section degraded (which also adds an `errors[]` entry) — so detect degradation via `errors[]`, not a 0 value.","operationId":"hyperliquid-performance","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"NOT SUPPORTED on /performance — returns 400 if set. The lifetime summary always spans ALL markets; market scoping lives on /trades/aggregate (dex=...).","explode":false,"in":"query","name":"dex","schema":{"description":"NOT SUPPORTED on /performance — returns 400 if set. The lifetime summary always spans ALL markets; market scoping lives on /trades/aggregate (dex=...).","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHyperliquidPerformanceView"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Trading Performance","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/positions":{"get":{"description":"Returns a wallet's open perpetual positions with its cross-margin summary and derived risk (leverage, unrealized PnL, ROE, liquidation price, margin ratio, distance-to-liquidation).\n\n`liquidation_price` (and `distance_to_liquidation`) can be null even on a leveraged position — Hyperliquid returns none for cross positions whose spot collateral backstops them; in that case use the account-level `margin_ratio` (the account liquidates as it approaches 1.0) for proximity. `account_value` here is perp clearinghouse equity, not total portfolio (see `/hyperliquid/account`). Positions are sorted by position value (largest first). `dex` scopes to a builder market; omit (or `main_dex`) for the native market.","operationId":"hyperliquid-positions","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"Market scope: omit (or main_dex) for the native market, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts.","explode":false,"in":"query","name":"dex","schema":{"description":"Market scope: omit (or main_dex) for the native market, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts.","enum":["main_dex","xyz","flx","vntl","hyna","km","abcd","cash","para","mkts"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHyperliquidPositions"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Open Positions","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/trades":{"get":{"description":"Returns a wallet's closed round-trip trades — one row per open→close position lifecycle, with realized per-trade P&L (gross, net = gross − fees, fees, and `funding_pnl` as a **separate** field that net EXCLUDES), entry/exit price, size, and hold time. Newest close first. This is the journal / calendar / attribution source; for fill-level executions use `/hyperliquid/fills` instead.\n\nReturns EVERY closed trade in the window — it does NOT filter by symbol or direction (a `symbol`/`direction` query param is ignored, not applied); for per-symbol / per-direction rollups use `/hyperliquid/trades/aggregate`, or `/hyperliquid/fills` for symbol-scoped fills. `funding_pnl` is 0 for warehouse rows and populated only on the live tail, so a funding-inclusive total is incomplete before the watermark.\n\nCursor-paged over the full history (warehouse + a live gap-fill for the most recent days): follow `meta.next_cursor` to page back. The cursor is a complete continuation token (it encodes the window + position), so pass it with only `address` and `limit` — combining it with `from`/`to` is rejected. `from`/`to` (Unix seconds or a date) bound the window on the first page. A wallet with an extremely large live (post-warehouse) trade history may require a `from`/`to` window.","operationId":"hyperliquid-trades","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"NOT SUPPORTED on /trades — returns 400 if set. Per-symbol slicing lives on /trades/aggregate (group_by=symbol) or client-side.","explode":false,"in":"query","name":"symbol","schema":{"description":"NOT SUPPORTED on /trades — returns 400 if set. Per-symbol slicing lives on /trades/aggregate (group_by=symbol) or client-side.","type":"string"}},{"description":"NOT SUPPORTED on /trades — returns 400 if set. Per-direction slicing lives on /trades/aggregate (group_by=direction) or client-side.","explode":false,"in":"query","name":"direction","schema":{"description":"NOT SUPPORTED on /trades — returns 400 if set. Per-direction slicing lives on /trades/aggregate (group_by=direction) or client-side.","enum":["long","short"],"type":"string"}},{"description":"NOT SUPPORTED on /trades — returns 400 if set. Market scoping lives on /trades/aggregate (dex=...).","explode":false,"in":"query","name":"dex","schema":{"description":"NOT SUPPORTED on /trades — returns 400 if set. Market scoping lives on /trades/aggregate (dex=...).","type":"string"}},{"description":"Window start: Unix seconds, an ISO datetime (2026-03-01T12:00:00Z), or a bare date (= midnight UTC). Omit for the full history.","explode":false,"in":"query","name":"from","schema":{"description":"Window start: Unix seconds, an ISO datetime (2026-03-01T12:00:00Z), or a bare date (= midnight UTC). Omit for the full history.","examples":["2026-03-01"],"type":"string"}},{"description":"Window end, inclusive: Unix seconds, an ISO datetime, or a bare date — a bare date means the END of that UTC day, so from=X&to=X covers the whole day X. Defaults to now.","explode":false,"in":"query","name":"to","schema":{"description":"Window end, inclusive: Unix seconds, an ISO datetime, or a bare date — a bare date means the END of that UTC day, so from=X&to=X covers the whole day X. Defaults to now.","examples":["2026-03-01"],"type":"string"}},{"description":"Opaque continuation token from a previous response's meta.next_cursor. It encodes the window, position, and address, so pass it with only address + limit — and only with the address it was issued for. Tokens are single-use opaque values: identical requests mint different tokens that decode to the same position.","explode":false,"in":"query","name":"cursor","schema":{"description":"Opaque continuation token from a previous response's meta.next_cursor. It encodes the window, position, and address, so pass it with only address + limit — and only with the address it was issued for. Tokens are single-use opaque values: identical requests mint different tokens that decode to the same position.","type":"string"}},{"description":"Page size (1-100).","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Page size (1-100).","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorDataResponseHyperliquidEpisode"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Closed Trades","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/trades/aggregate":{"get":{"description":"Returns a wallet's closed trades rolled up server-side into one row per group — so the P&L calendar, per-symbol / direction / size attribution, and the realized equity curve are one call each instead of paging the whole trade history.\n\n**`group_by`:** `day` (UTC calendar day — the calendar and equity-curve source), `symbol` (per market), `direction` (long vs short), `size_bucket` (notional-USD tiers: `<1k`, `1k-10k`, `10k-100k`, `100k-1m`, `1m+`), or `hold_bucket` (holding-time tiers: `<5m`, `5m-1h`, `1h-1d`, `1d-1w`, `1w+`). Tiers with no trades are omitted — render the full ladder client-side and zero-fill. One dimension per call.\n\n**Per group:** trade_count, gross_pnl, net_pnl (funding-excluded — gross − fees, matching `/trades` and `/performance`), fees, funding_pnl (live tail only), win_rate, volume_usd (notional), avg_win, avg_loss.\n\n`from`/`to` (Unix seconds or a date) bound close_time; omit for full history. Totals reconcile to `/trades` and `/performance` — all three read the same `episodes` universe (warehouse ≤ watermark plus the live gap-fill past it) through one shared watermark; only the live gap-fill contributes trades past the watermark, and `funding_pnl` is populated on that tail alone. `dex` scopes to one market (omit to aggregate across markets). For `group_by=day`, `fill_gaps=true` emits zero rows for no-trade days (a dense calendar; requires `from`). Not paginated — every group in the window is returned in one response.","operationId":"hyperliquid-trades-aggregate","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"Dimension to roll up by. day = UTC calendar day (the P&L calendar / equity-curve source); symbol = per market; direction = long vs short; size_bucket = notional-USD tiers; hold_bucket = holding-time tiers.","explode":false,"in":"query","name":"group_by","schema":{"default":"day","description":"Dimension to roll up by. day = UTC calendar day (the P&L calendar / equity-curve source); symbol = per market; direction = long vs short; size_bucket = notional-USD tiers; hold_bucket = holding-time tiers.","enum":["day","symbol","direction","size_bucket","hold_bucket"],"type":"string"}},{"description":"Window start, bounds close_time: Unix seconds, an ISO datetime (2026-03-01T12:00:00Z), or a bare date (= midnight UTC). Omit for full history.","explode":false,"in":"query","name":"from","schema":{"description":"Window start, bounds close_time: Unix seconds, an ISO datetime (2026-03-01T12:00:00Z), or a bare date (= midnight UTC). Omit for full history.","examples":["2026-03-01"],"type":"string"}},{"description":"Window end, inclusive, bounds close_time: Unix seconds, an ISO datetime, or a bare date — a bare date means the END of that UTC day, so from=X&to=X covers the whole day X. Defaults to now.","explode":false,"in":"query","name":"to","schema":{"description":"Window end, inclusive, bounds close_time: Unix seconds, an ISO datetime, or a bare date — a bare date means the END of that UTC day, so from=X&to=X covers the whole day X. Defaults to now.","examples":["2026-03-31"],"type":"string"}},{"description":"Market scope: main_dex for the native market only, omit to aggregate across ALL markets, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts. NOTE: the omit default differs from /leaderboard, where omitting dex means the native market only.","explode":false,"in":"query","name":"dex","schema":{"description":"Market scope: main_dex for the native market only, omit to aggregate across ALL markets, or a builder market — one of: xyz, flx, vntl, hyna, km, abcd, cash, para, mkts. NOTE: the omit default differs from /leaderboard, where omitting dex means the native market only.","enum":["main_dex","xyz","flx","vntl","hyna","km","abcd","cash","para","mkts"],"type":"string"}},{"description":"group_by=day only: emit a zero row for every no-trade UTC day in the window so the calendar is dense. Requires from (a bounded window); ignored for other group_by values.","explode":false,"in":"query","name":"fill_gaps","schema":{"default":false,"description":"group_by=day only: emit a zero row for every no-trade UTC day in the window so the calendar is dense. Requires from (a bounded window); ignored for other group_by values.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseHyperliquidTradeGroup"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Closed Trades Aggregate","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/hyperliquid/trades/context":{"get":{"description":"Returns immutable funding and leverage context for one closed trade identified by the composite key from `/hyperliquid/trades`. Use this for a selected trade detail instead of enriching every history row. `funding_status=complete` distinguishes a real zero from unavailable historical data; leverage fields are omitted when the completed-trade source has no value.","operationId":"hyperliquid-trade-context","parameters":[{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address: a 0x EVM address or an ENS name (e.g. vitalik.eth). Solana addresses are not supported.","type":"string"}},{"description":"Hyperliquid perpetual market id, including a builder prefix for HIP-3 markets (for example xyz:GOLD).","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Hyperliquid perpetual market id, including a builder prefix for HIP-3 markets (for example xyz:GOLD).","type":"string"}},{"description":"Opening direction of the episode.","explode":false,"in":"query","name":"direction","required":true,"schema":{"description":"Opening direction of the episode.","enum":["long","short"],"type":"string"}},{"description":"Episode open time, Unix seconds, copied from GET /hyperliquid/trades.","explode":false,"in":"query","name":"open_time","required":true,"schema":{"description":"Episode open time, Unix seconds, copied from GET /hyperliquid/trades.","format":"int64","minimum":1,"type":"integer"}},{"description":"Episode close time, Unix seconds, copied from GET /hyperliquid/trades.","explode":false,"in":"query","name":"close_time","required":true,"schema":{"description":"Episode close time, Unix seconds, copied from GET /hyperliquid/trades.","format":"int64","minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHyperliquidTradeContext"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Closed Trade Funding and Leverage","tags":["Hyperliquid"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/etf":{"get":{"description":"Returns daily spot ETF flow history.\n\n**Included fields:** net flow (USD), token price, per-ticker breakdown.\n\nSorted by date descending. `symbol`: `BTC`, `ETH`, `XRP`, `SOL`, or `HYPE`.","operationId":"market-etf","parameters":[{"description":"Token symbol. Can be `BTC`, `ETH`, `XRP`, `SOL`, or `HYPE`.","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Token symbol. Can be `BTC`, `ETH`, `XRP`, `SOL`, or `HYPE`.","enum":["BTC","ETH","XRP","SOL","HYPE"],"examples":["BTC"],"type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"timestamp","description":"Field to sort results by","enum":["flow_usd","timestamp"],"examples":["timestamp"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","examples":["2026-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","examples":["2026-03-01"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseMarketETFFlowItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"ETF Flow History","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/exchange-flow/exchanges":{"get":{"description":"Returns Hermod's curated exchange filters for exchange-flow metrics: upstream aggregate filters plus 20 high-coverage individual exchanges.\n\nUse the returned `symbol` values as the `exchange` query parameter on `/v1/market/onchain-indicator` when `metric` is one of `exchange-flows/inflow`, `exchange-flows/outflow`, `exchange-flows/netflow`, or `exchange-flows/reserve`.\n\nThe curated list intentionally excludes long-tail upstream exchange entities that return empty data or bad-request errors for flow metrics.","operationId":"market-exchange-flow-exchanges","parameters":[{"description":"Token ticker symbol. Can be `BTC` or `ETH`.","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Token ticker symbol. Can be `BTC` or `ETH`.","enum":["BTC","ETH"],"examples":["BTC"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Results per page","examples":[100],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMarketExchangeFlowExchangeItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Flow Exchanges","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/fear-greed":{"get":{"description":"Returns Bitcoin Fear & Greed Index history.\n\n**Included fields:** index value (0-100), classification label, BTC price at each data point.\n\nSorted newest-first. Use `from`/`to` to filter by date range.","operationId":"market-fear-greed","parameters":[{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","examples":["2026-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD)","examples":["2026-03-01"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseMarketFearGreedHistoryItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fear & Greed Index History","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/futures":{"get":{"description":"Returns futures market data across all tracked tokens in a single ranked snapshot.\n\n**Included fields:** open interest, funding rate, long/short ratio, 24h volume.\n\nSorted by `volume_24h` by default — use `sort_by` to change.\n\n**No pagination** — this endpoint returns the full list in one response. Does NOT accept `limit`, `offset`, or `symbol`; to filter to one token, look it up in the response locally.","operationId":"market-futures","parameters":[{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"volume_24h","description":"Field to sort results by","enum":["open_interest","funding_rate","volume_24h","long_short_ratio"],"examples":["volume_24h"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseMarketFuturesItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Futures Market Overview","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/liquidation/chart":{"get":{"description":"Returns OHLC-style aggregated liquidation data for a token on a specific exchange.\n\n**Filters:** `symbol`, `exchange`, `interval`.\n\nUseful for charting liquidation volume over time.","operationId":"market-liquidation-chart","parameters":[{"description":"Token ticker symbol like `BTC` or `ETH`","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Token ticker symbol like `BTC` or `ETH`","examples":["BTC"],"type":"string"}},{"description":"Candlestick interval — bucket size for each point in the liquidation chart series: `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `4h`, `6h`, `8h`, `12h`, `1d`, or `1w`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from`/`to` to bound the series.","explode":false,"in":"query","name":"interval","schema":{"default":"1h","description":"Candlestick interval — bucket size for each point in the liquidation chart series: `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `4h`, `6h`, `8h`, `12h`, `1d`, or `1w`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from`/`to` to bound the series.","enum":["1m","3m","5m","15m","30m","1h","4h","6h","8h","12h","1d","1w"],"examples":["1h"],"type":"string"}},{"description":"Exchange name. Can be `Binance`, `OKX`, `Bybit`, `Bitget`, `Hyperliquid`, `Gate`, `HTX`, `Bitmex`, `Bitfinex`, `CoinEx`, `Aster`, or `Lighter`.","explode":false,"in":"query","name":"exchange","schema":{"default":"Binance","description":"Exchange name. Can be `Binance`, `OKX`, `Bybit`, `Bitget`, `Hyperliquid`, `Gate`, `HTX`, `Bitmex`, `Bitfinex`, `CoinEx`, `Aster`, or `Lighter`.","enum":["Binance","OKX","Bybit","Bitget","Hyperliquid","Gate","HTX","Bitmex","Bitfinex","CoinEx","Aster","Lighter"],"examples":["Binance"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":500,"description":"Results per page","examples":[500],"format":"int64","maximum":4500,"minimum":1,"type":"integer"}},{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","examples":["2024-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","examples":["2024-02-01"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseLiquidationChartItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Liquidation Chart","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/liquidation/exchange-list":{"get":{"description":"Returns liquidation breakdown by exchange in a single ranked snapshot.\n\n**Included fields:** total, long, and short volumes in USD.\n\n**Filters:** `symbol` and `time_range` (`1h`, `4h`, `12h`, `24h`).\n\n**No pagination and no `interval`** — this endpoint does NOT accept `limit`, `offset`, or `interval`. Returns the full exchange list in one response.","operationId":"market-liquidation-exchange-list","parameters":[{"description":"Token ticker symbol like `BTC` or `ETH`","explode":false,"in":"query","name":"symbol","schema":{"default":"BTC","description":"Token ticker symbol like `BTC` or `ETH`","examples":["BTC"],"type":"string"}},{"description":"Window to aggregate over for the snapshot: `1h`, `4h`, `12h`, or `24h`. Returns a single snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"24h","description":"Window to aggregate over for the snapshot: `1h`, `4h`, `12h`, or `24h`. Returns a single snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`.","enum":["1h","4h","12h","24h"],"examples":["24h"],"type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"liquidation_usd","description":"Field to sort results by","enum":["liquidation_usd","long_liquidation_usd","short_liquidation_usd"],"examples":["liquidation_usd"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseLiquidationExchangeItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Liquidation by Exchange","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/liquidation/order":{"get":{"description":"Returns individual large liquidation orders above a USD threshold (`min_amount`, default 10000).\n\n**Filters:** `exchange` and `symbol`.\n\n**Pagination:** `limit`/`offset` page within a bounded, most-recent window. To page beyond that window, shift the time range: set `to` to `oldest_returned_timestamp + 1` (Unix seconds) and repeat, de-duplicating on `order_id`. `to` is **exclusive** (returns rows strictly older than `to`), so the `+1` re-includes the boundary second; using the oldest timestamp itself would skip any rows sharing that second. When `offset` exceeds the window the response returns an empty array with `meta.empty_reason` rather than falsely claiming exhaustion.\n\nFor aggregate totals and long/short breakdown by exchange, use `/market/liquidation/exchange-list`. For historical liquidation charts, use `/market/liquidation/chart`.","operationId":"market-liquidation-order","parameters":[{"description":"Exchange name. Can be `Binance`, `OKX`, `Bybit`, `Bitget`, `Hyperliquid`, `Gate`, `HTX`, `Bitmex`, `Bitfinex`, `CoinEx`, `Aster`, or `Lighter`.","explode":false,"in":"query","name":"exchange","schema":{"default":"Binance","description":"Exchange name. Can be `Binance`, `OKX`, `Bybit`, `Bitget`, `Hyperliquid`, `Gate`, `HTX`, `Bitmex`, `Bitfinex`, `CoinEx`, `Aster`, or `Lighter`.","enum":["Binance","OKX","Bybit","Bitget","Hyperliquid","Gate","HTX","Bitmex","Bitfinex","CoinEx","Aster","Lighter"],"examples":["Binance"],"type":"string"}},{"description":"Token ticker symbol like `BTC` or `ETH`","explode":false,"in":"query","name":"symbol","schema":{"default":"BTC","description":"Token ticker symbol like `BTC` or `ETH`","examples":["BTC"],"type":"string"}},{"description":"Minimum liquidation amount in USD","explode":false,"in":"query","name":"min_amount","schema":{"default":"10000","description":"Minimum liquidation amount in USD","examples":["10000"],"type":"string"}},{"description":"Filter by liquidation side. Omit to return both.","explode":false,"in":"query","name":"side","schema":{"description":"Filter by liquidation side. Omit to return both.","enum":["long","short"],"examples":["long"],"type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"timestamp","description":"Field to sort results by","enum":["usd_value","timestamp","price"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}},{"description":"Start of time range (inclusive). Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range (inclusive). Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","examples":["2024-01-01"],"type":"string"}},{"description":"End of time range, exclusive (returns rows strictly older than `to`). Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`). To page backward, set this to the oldest returned `timestamp` + 1 and de-duplicate on `order_id`.","explode":false,"in":"query","name":"to","schema":{"description":"End of time range, exclusive (returns rows strictly older than `to`). Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`). To page backward, set this to the oldest returned `timestamp` + 1 and de-duplicate on `order_id`.","examples":["2024-02-01"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseLiquidationOrderItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Large Liquidation Orders","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/listing":{"get":{"description":"Returns historical exchange listing and delisting events.\n\n**Filters:** date range, exchange, token symbol, product type, event type.","operationId":"listing","parameters":[{"description":"Start date (YYYY-MM-DD or ISO 8601)","explode":false,"in":"query","name":"from","required":true,"schema":{"description":"Start date (YYYY-MM-DD or ISO 8601)","examples":["2024-01-01"],"type":"string"}},{"description":"End date (defaults to now)","explode":false,"in":"query","name":"to","schema":{"description":"End date (defaults to now)","examples":["2024-03-01"],"type":"string"}},{"description":"Filter by token symbol","explode":false,"in":"query","name":"symbol","schema":{"description":"Filter by token symbol","examples":["BTC"],"type":"string"}},{"description":"Filter by exchange name","explode":false,"in":"query","name":"exchange","schema":{"description":"Filter by exchange name","examples":["binance"],"type":"string"}},{"description":"Filter by product type","explode":false,"in":"query","name":"product","schema":{"default":"all","description":"Filter by product type","enum":["spot","margin","perp","pre_market_perp","all"],"type":"string"}},{"description":"Event type filter","explode":false,"in":"query","name":"type","schema":{"default":"listing","description":"Event type filter","enum":["listing","delisting","cancelled","advanced","postponed"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseListingEventItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Exchange Listing Events","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/onchain-indicator":{"get":{"description":"Returns on-chain indicator time-series for BTC or ETH.\n\n**Available metrics:** `nupl`, `sopr`, `mvrv`, `puell-multiple`, `nvm`, `nvt`, `nvt-golden-cross`, `exchange-flows` (inflow/outflow/netflow/reserve).\n\n**Long ranges:** each response is capped at about 100 data points. When `meta.has_more=true`, split `from`/`to` into smaller windows (about 90 days for daily data) and merge by timestamp client-side. For exchange-flow metrics, `all_exchange`, `spot_exchange`, and `derivative_exchange` are aggregate filters, not sums over the curated individual exchange list.","operationId":"market-onchain-indicator","parameters":[{"description":"Token ticker symbol. Can be `BTC` or `ETH`.","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Token ticker symbol. Can be `BTC` or `ETH`.","enum":["BTC","ETH"],"examples":["BTC"],"type":"string"}},{"description":"On-chain metric name. Can be `nupl`, `sopr`, `mvrv`, `puell-multiple`, `nvm`, `nvt`, `nvt-golden-cross`, or `exchange-flows/{inflow,outflow,netflow,reserve}`.","explode":false,"in":"query","name":"metric","required":true,"schema":{"description":"On-chain metric name. Can be `nupl`, `sopr`, `mvrv`, `puell-multiple`, `nvm`, `nvt`, `nvt-golden-cross`, or `exchange-flows/{inflow,outflow,netflow,reserve}`.","enum":["nupl","sopr","mvrv","puell-multiple","nvm","nvt","nvt-golden-cross","exchange-flows/inflow","exchange-flows/outflow","exchange-flows/netflow","exchange-flows/reserve"],"examples":["nupl"],"type":"string"}},{"description":"Aggregation granularity.","explode":false,"in":"query","name":"granularity","schema":{"default":"day","description":"Aggregation granularity.","enum":["day"],"examples":["day"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to 90 days ago when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data).","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to 90 days ago when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data).","examples":["2026-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to today when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data).","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to today when omitted. Maximum range is 365 days. Responses are capped at about 100 data points; when meta.has_more is true, split from/to into smaller windows (about 90 days for daily data).","examples":["2026-03-01"],"type":"string"}},{"description":"Curated exchange filter for exchange-flow metrics. Use /v1/market/exchange-flow/exchanges to list labels.","explode":false,"in":"query","name":"exchange","schema":{"default":"all_exchange","description":"Curated exchange filter for exchange-flow metrics. Use /v1/market/exchange-flow/exchanges to list labels.","enum":["all_exchange","spot_exchange","derivative_exchange","coinbase_prime","binance","coinbase_advanced","okx","kraken","bybit","bitstamp","gemini","bitget","kucoin","bitfinex","gate_io","deribit","mexc","htx_global","bitflyer","coinone","bithumb","upbit","hashkey_exchange"],"examples":["all_exchange"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMarketMetricPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"On-Chain Indicator","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/options":{"get":{"description":"Returns options market data for a `symbol`.\n\n**Included fields:** open interest, volume, put/call ratio, max pain price.","operationId":"market-options","parameters":[{"description":"Token symbol. Can be `BTC`, `ETH`, `SOL`, `XRP`, `BNB`, `DOGE`, `ADA`, or `AVAX`.","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Token symbol. Can be `BTC`, `ETH`, `SOL`, `XRP`, `BNB`, `DOGE`, `ADA`, or `AVAX`.","enum":["BTC","ETH","SOL","XRP","BNB","DOGE","ADA","AVAX"],"examples":["BTC"],"type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"volume_24h","description":"Field to sort results by","enum":["open_interest","volume_24h"],"examples":["volume_24h"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleListResponseMarketOptionsItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Options Market Data","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/price":{"get":{"description":"Returns historical price data points for a token over a specified time range.\n\n**Time range options:**\n- Predefined: `1d`, `7d`, `14d`, `30d`, `90d`, `180d`, `365d`, `max`\n- Custom: use `from` / `to` (Unix seconds or `YYYY-MM-DD`)\n\n**Granularity** is automatic based on range:\n- `1d` → 5-minute intervals\n- `7d`–`90d` → hourly\n- `180d`+ → daily","operationId":"market-price","parameters":[{"description":"Single token ticker symbol like `BTC`, `ETH`, or `SOL` (multi-symbol not supported)","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Single token ticker symbol like `BTC`, `ETH`, or `SOL` (multi-symbol not supported)","examples":["BTC"],"type":"string"}},{"description":"Window of historical data to return: `1d`, `7d`, `14d`, `30d`, `90d`, `180d`, `365d`, or `max`. Ignored when `from`/`to` are set. This endpoint uses `time_range` only — it does NOT accept `interval`; bucket granularity is chosen server-side based on the window size.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of historical data to return: `1d`, `7d`, `14d`, `30d`, `90d`, `180d`, `365d`, or `max`. Ignored when `from`/`to` are set. This endpoint uses `time_range` only — it does NOT accept `interval`; bucket granularity is chosen server-side based on the window size.","enum":["1d","7d","14d","30d","90d","180d","365d","max"],"examples":["30d"],"type":"string"}},{"description":"Start of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with `to`. Overrides `time_range` when set.","explode":false,"in":"query","name":"from","schema":{"description":"Start of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with `to`. Overrides `time_range` when set.","examples":["2025-01-01"],"type":"string"}},{"description":"End of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with `from`. Overrides `time_range` when set.","explode":false,"in":"query","name":"to","schema":{"description":"End of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with `from`. Overrides `time_range` when set.","examples":["2025-03-01"],"type":"string"}},{"description":"Quote currency like `usd`, `eur`, or `btc`","explode":false,"in":"query","name":"currency","schema":{"default":"usd","description":"Quote currency like `usd`, `eur`, or `btc`","examples":["usd"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketPriceResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Price History","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/price-indicator":{"get":{"description":"Returns a technical indicator for a trading pair on a given exchange and interval.\n\n**Modes:**\n- Set `from`/`to` for time-series\n- Omit for latest value only\n\n**Indicator-specific tuning** via `options` (e.g. `period:7`, `fast_period:8,slow_period:21,signal_period:5`, `period:10,stddev:1.5`).\n\n**Available indicators:** `rsi`, `macd`, `ema`, `sma`, `bbands`, `stoch`, `adx`, `atr`, `cci`, `obv`, `vwap`, `dmi`, `ichimoku`, `supertrend`.","operationId":"market-price-indicator","parameters":[{"description":"Technical indicator name. Can be `rsi`, `macd`, `ema`, `sma`, `bbands`, `stoch`, `adx`, `atr`, `cci`, `obv`, `vwap`, `dmi`, `ichimoku`, or `supertrend`.","explode":false,"in":"query","name":"indicator","required":true,"schema":{"description":"Technical indicator name. Can be `rsi`, `macd`, `ema`, `sma`, `bbands`, `stoch`, `adx`, `atr`, `cci`, `obv`, `vwap`, `dmi`, `ichimoku`, or `supertrend`.","enum":["rsi","macd","ema","sma","bbands","stoch","adx","atr","cci","obv","vwap","dmi","ichimoku","supertrend"],"examples":["rsi"],"type":"string"}},{"description":"Trading pair as `BTC/USDT` or bare symbol like `BTC`","explode":false,"in":"query","name":"symbol","required":true,"schema":{"description":"Trading pair as `BTC/USDT` or bare symbol like `BTC`","examples":["BTC"],"type":"string"}},{"description":"Candlestick interval — bucket size for each point in the indicator series: `1m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `12h`, `1d`, or `1w`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from`/`to` to bound the series.","explode":false,"in":"query","name":"interval","schema":{"default":"1d","description":"Candlestick interval — bucket size for each point in the indicator series: `1m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `12h`, `1d`, or `1w`. This endpoint uses `interval` only; it does NOT accept `time_range`. Use `from`/`to` to bound the series.","enum":["1m","5m","15m","30m","1h","2h","4h","12h","1d","1w"],"examples":["1d"],"type":"string"}},{"description":"Exchange for price data. Can be `binance`, `bybit`, `coinbase`, or `kraken`.","explode":false,"in":"query","name":"exchange","schema":{"default":"binance","description":"Exchange for price data. Can be `binance`, `bybit`, `coinbase`, or `kraken`.","enum":["binance","bybit","coinbase","kraken"],"examples":["binance"],"type":"string"}},{"description":"Start of time range. When set, returns time-series instead of latest value. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. When set, returns time-series instead of latest value. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","examples":["2024-01-01"],"type":"string"}},{"description":"End of time range. Defaults to now when from is set. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Defaults to now when from is set. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","examples":["2024-02-01"],"type":"string"}},{"description":"Indicator-specific options as comma-separated key:value pairs. Available options by indicator: `period` — lookback period for rsi (default 14), sma (default 20), ema (default 20), bbands (default 20), adx (default 14), atr (default 14), cci (default 20), dmi (default 14), stoch (default 14), supertrend (default 10). `stddev` — standard deviation for bbands (default 2). `multiplier` — multiplier for supertrend (default 3). `fast_period` — MACD fast EMA (default 12). `slow_period` — MACD slow EMA (default 26). `signal_period` — MACD signal smoothing (default 9). Examples: `period:7`, `period:200`, `fast_period:8,slow_period:21,signal_period:5`, `period:10,stddev:1.5`.","explode":false,"in":"query","name":"options","schema":{"description":"Indicator-specific options as comma-separated key:value pairs. Available options by indicator: `period` — lookback period for rsi (default 14), sma (default 20), ema (default 20), bbands (default 20), adx (default 14), atr (default 14), cci (default 20), dmi (default 14), stoch (default 14), supertrend (default 10). `stddev` — standard deviation for bbands (default 2). `multiplier` — multiplier for supertrend (default 3). `fast_period` — MACD fast EMA (default 12). `slow_period` — MACD slow EMA (default 26). `signal_period` — MACD signal smoothing (default 9). Examples: `period:7`, `period:200`, `fast_period:8,slow_period:21,signal_period:5`, `period:10,stddev:1.5`.","examples":["period:7"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMarketIndicatorItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Technical Indicator","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/public-sale":{"get":{"description":"Returns public sale (IDO/ICO/IEO) information for a project.\n\nIncludes sale type, status, price, raise amount, and ROI data.","operationId":"market-public-sale","parameters":[{"description":"Surf project UUID","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Project name or symbol for entity resolution","explode":false,"in":"query","name":"q","schema":{"description":"Project name or symbol for entity resolution","examples":["bitcoin"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePublicSaleItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Public Sale / Crowdsale","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/ranking":{"get":{"description":"Returns a token leaderboard sorted by market cap, 24h change, or volume. Each entry includes price, market cap, FDV, supply, ATH/ATL, and 24h range. Supports category filtering (MEME, AI, L1, L2, DEFI, GAMING, etc.).\n\n**Available metrics:** `market_cap`, `top_gainers`, `top_losers`, `volume`.\n\n**Note:** `top_gainers` and `top_losers` rank by 24h price change within the top 250 coins by market cap.\n\nFor circulating supply, FDV, ATH/ATL, use `/project/detail?fields=token_info`.","operationId":"market-ranking","parameters":[{"description":"Field to sort by. `market_cap` sorts by total market capitalisation, `change_24h` sorts by 24-hour price change percentage (fetches top 250 by market cap then sorts client-side), `volume_24h` sorts by 24-hour trading volume.","explode":false,"in":"query","name":"sort_by","schema":{"default":"market_cap","description":"Field to sort by. `market_cap` sorts by total market capitalisation, `change_24h` sorts by 24-hour price change percentage (fetches top 250 by market cap then sorts client-side), `volume_24h` sorts by 24-hour trading volume.","enum":["market_cap","change_24h","volume_24h"],"examples":["market_cap"],"type":"string"}},{"description":"Sort order: `desc` (default, highest first) or `asc` (lowest first).","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order: `desc` (default, highest first) or `asc` (lowest first).","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Optional token category filter. When provided, results are limited to coins in that category. Supported values: MEME, AI, AI_AGENTS, L1, L2, DEFI, GAMING, STABLECOIN, RWA, DEPIN, SOL_ECO, BASE_ECO, LST.","explode":false,"in":"query","name":"category","schema":{"description":"Optional token category filter. When provided, results are limited to coins in that category. Supported values: MEME, AI, AI_AGENTS, L1, L2, DEFI, GAMING, STABLECOIN, RWA, DEPIN, SOL_ECO, BASE_ECO, LST.","enum":["MEME","AI","AI_AGENTS","L1","L2","DEFI","GAMING","STABLECOIN","RWA","DEPIN","SOL_ECO","BASE_ECO","LST"],"examples":["MEME"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMarketTopCoinItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Rankings","tags":["Market"],"x-required-scopes":["data:read"]}},"/gateway/v1/market/tge":{"get":{"description":"Returns Token Generation Event (TGE) status for a project.\n\nIncludes current status, last event time, and listing exchanges.","operationId":"market-tge","parameters":[{"description":"Surf project UUID","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Project name or symbol for entity resolution","explode":false,"in":"query","name":"q","schema":{"description":"Project name or symbol for entity resolution","examples":["bitcoin"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseTGEItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Generation Event","tags":["Market"],"x-agent-views":{"summary":{"command_example":"surf market-tge --q \"nubit\" --agent-view summary","description":"Compact TGE fields for agents. If the response data is an array, returns one compact summary per row; otherwise returns one compact summary object.","output":{"fields":{"amount":"number|string|null","circulating_supply":"number|string|null","date":"string|null","event_time":"string|null","exchanges":"array|null","fdv":"number|string|null","initial_circulating_supply":"number|string|null","last_event_time":"string|null","launch_date":"string|null","listing_date":"string|null","listing_exchanges":"array|null","listings":"array|null","name":"string|null","next_event_time":"string|null","price":"number|string|null","price_usd":"number|string|null","project":"object|string|null","project_name":"string|null","public_sale":"object|array|null","raise_amount":"number|string|null","stage":"string|null","status":"string|null","symbol":"string|null","tge_date":"string|null","tge_status":"string|null","token_price":"number|string|null","unlock_percentage":"number|string|null","valuation":"number|string|null"},"type":"object_or_array"}}},"x-required-scopes":["data:read"]}},"/gateway/v1/news/detail":{"get":{"description":"Returns the full content of a single news article by its ID (returned as `id` in feed and search results).","operationId":"news-detail","parameters":[{"description":"Article ID (returned as id in feed/search results)","explode":false,"in":"query","name":"id","required":true,"schema":{"description":"Article ID (returned as id in feed/search results)","examples":["e54e0ac4-1ef8-44d2-928e-52df465e2c81"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseNewsArticleDetailItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"News Article Detail","tags":["News"],"x-required-scopes":["data:read"]}},"/gateway/v1/news/feed":{"get":{"description":"Returns crypto news from major sources.\n\n**Filters:** `source` (enum), `project`, and time range (`from`/`to`).\n\n**Sort:** `recency` (default) or `trending`.\n\nUse the detail endpoint with article `id` for full content.","operationId":"news-feed","parameters":[{"description":"Filter by news source","explode":false,"in":"query","name":"source","schema":{"description":"Filter by news source","enum":["coindesk","cointelegraph","theblock","decrypt","dlnews","blockbeats","bitcoincom","coinpedia","ambcrypto","cryptodaily","cryptopotato","phemex","panews","odaily","tradingview","chaincatcher","techflow"],"examples":["coindesk"],"type":"string"}},{"description":"Comma-separated project names to filter by","explode":false,"in":"query","name":"project","schema":{"description":"Comma-separated project names to filter by","examples":["bitcoin,ethereum"],"type":"string"}},{"description":"Filter articles published on or after this time. Accepts Unix seconds or date string (2024-01-01)","explode":false,"in":"query","name":"from","schema":{"description":"Filter articles published on or after this time. Accepts Unix seconds or date string (2024-01-01)","examples":["2024-01-01"],"type":"string"}},{"description":"Filter articles published on or before this time. Accepts Unix seconds or date string (2024-02-01)","explode":false,"in":"query","name":"to","schema":{"description":"Filter articles published on or before this time. Accepts Unix seconds or date string (2024-02-01)","examples":["2024-02-01"],"type":"string"}},{"description":"Sort order: recency (newest first) or trending (deterministic newest-first alias until engagement ranking is available)","explode":false,"in":"query","name":"sort_by","schema":{"default":"recency","description":"Sort order: recency (newest first) or trending (deterministic newest-first alias until engagement ranking is available)","enum":["recency","trending"],"examples":["recency"],"type":"string"}},{"description":"Results per page (max 50)","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page (max 50)","examples":[20],"format":"int64","maximum":50,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseNewsArticleItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Crypto News Feed","tags":["News"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/bridge/ranking":{"get":{"description":"List bridge protocols ranked by USD volume over a time range. Example: use this when you need bridge leaderboard data instead of raw SQL.","operationId":"onchain-bridge-ranking","parameters":[{"description":"Window to aggregate bridge volume over: `7d`, `30d`, `90d`, `180d`, `1y`, or `all`. Returns a single ranked snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window to aggregate bridge volume over: `7d`, `30d`, `90d`, `180d`, `1y`, or `all`. Returns a single ranked snapshot (not a time-series). This endpoint uses `time_range` only — it does NOT accept `interval`.","enum":["7d","30d","90d","180d","1y","all"],"examples":["30d"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseBridgeRankingItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Bridge Protocol Ranking","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/dex/activity":{"get":{"description":"Active traders, trade count, and USD volume for a DEX **protocol** (or a specific router contract), as a single aggregate or a daily series (`group_by=day`).\n\n**Lookup:** `chain` + exactly one of `project` (e.g. `uniswap`, `pancakeswap`) or `address` (a router measured as `tx_to`).\n\n**Related:** per-swap rows for a single token → `/v1/token/dex-trades`.\n\n**Chains:** Ethereum, Base, BSC, Arbitrum, Tron · **Refresh:** ~24h · USD volume lags ~3 days (see `enriched_ratio`).","operationId":"onchain-dex-activity","parameters":[{"description":"Chain to query.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain to query.","enum":["ethereum","base","bsc","arbitrum","tron"],"examples":["ethereum"],"type":"string"}},{"description":"DEX project name (e.g. `uniswap`, `pancakeswap`, `aerodrome`). Exactly one of `project` / `address` is required.","explode":false,"in":"query","name":"project","schema":{"description":"DEX project name (e.g. `uniswap`, `pancakeswap`, `aerodrome`). Exactly one of `project` / `address` is required.","examples":["uniswap"],"type":"string"}},{"description":"A specific router/contract measured as `tx_to`. Exactly one of `project` / `address` is required.","explode":false,"in":"query","name":"address","schema":{"description":"A specific router/contract measured as `tx_to`. Exactly one of `project` / `address` is required.","examples":["0x1111111254eeb25477b68fb85ed929f73a960582"],"type":"string"}},{"description":"Look-back window (hard 90d cap). Overridden by `from`/`to` when set.","explode":false,"in":"query","name":"time_range","schema":{"default":"7d","description":"Look-back window (hard 90d cap). Overridden by `from`/`to` when set.","enum":["1d","7d","30d","90d"],"type":"string"}},{"description":"Start of range — Unix seconds or YYYY-MM-DD. With `to`, the range may span at most 90 days.","explode":false,"in":"query","name":"from","schema":{"description":"Start of range — Unix seconds or YYYY-MM-DD. With `to`, the range may span at most 90 days.","examples":["2025-01-01"],"type":"string"}},{"description":"End of range — Unix seconds or YYYY-MM-DD. Without `from`, the window is `time_range` ending at `to`.","explode":false,"in":"query","name":"to","schema":{"description":"End of range — Unix seconds or YYYY-MM-DD. Without `from`, the window is `time_range` ending at `to`.","examples":["2025-02-01"],"type":"string"}},{"description":"`total` = single aggregate; `day` = daily series (newest first).","explode":false,"in":"query","name":"group_by","schema":{"default":"total","description":"`total` = single aggregate; `day` = daily series (newest first).","enum":["total","day"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseDexActivityItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"DEX Protocol Activity","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/gas-price":{"get":{"description":"Look up the current gas price for one EVM chain. Example: `chain=ethereum`.\n\nThis endpoint uses `eth_gasPrice` JSON-RPC and returns gas price in both wei and Gwei.\n\nSupported chains: `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, `cyber`.","operationId":"onchain-gas-price","parameters":[{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`.","enum":["ethereum","polygon","bsc","arbitrum","optimism","base","avalanche","fantom","linea","cyber"],"examples":["ethereum"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseOnchainGasPriceItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Current Gas Price","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/query":{"post":{"description":"Send a JSON object describing the query. Example: `{\"source\":\"agent.ethereum_dex_trades\",\"fields\":[\"block_time\"],\"filters\":[{\"field\":\"block_date\",\"op\":\"gte\",\"value\":\"2025-03-01\"}],\"limit\":1}`.\n\nUse this endpoint when you want structured filtering without writing raw SQL. Discover tables and columns first with `GET /v1/onchain/schema`.\n\nKey rules:\n- Source format: `agent.<table_name>`\n- Max 10,000 rows (default 20), 30s timeout\n- Always filter on `block_date` for large tables\n- **Never filter by** `symbol` — it is unindexed (full scan). To resolve a ticker to a contract address, use `GET /v1/search/token?q={symbol}&chain={chain}` and filter by `contract_address` instead\n- For transfer tables, `amount` is decimal-adjusted display units; `amount_raw` is the original base-unit value\n\nData refresh: ~24 hours.\n\nExample\n\n```json\n{\n  \"source\": \"agent.ethereum_dex_trades\",\n  \"fields\": [\"block_time\", \"project\", \"token_pair\", \"amount_usd\", \"taker\"],\n  \"filters\": [\n    {\"field\": \"block_date\", \"op\": \"gte\", \"value\": \"2025-03-01\"},\n    {\"field\": \"project\", \"op\": \"eq\", \"value\": \"uniswap\"},\n    {\"field\": \"amount_usd\", \"op\": \"gte\", \"value\": 100000}\n  ],\n  \"sort\": [{\"field\": \"amount_usd\", \"order\": \"desc\"}],\n  \"limit\": 20\n}\n```","operationId":"onchain-structured-query","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredQuery"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseOnchainRow"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Blockchain Structured Query","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/schema":{"get":{"description":"Discover tables and columns before writing SQL or structured queries. Example: call this endpoint first, then use `agent.ethereum_dex_trades` in `/v1/onchain/query` or `/v1/onchain/sql`.\n\nThe response includes database name, table name, column names, types, and comments. Pass the optional `table` parameter to include bounded physical source metadata: engine, partition key, sorting key, primary key, row estimate, and compressed bytes.\n\nFor transfer tables, `amount` is decimal-adjusted display units and `amount_raw` is the original base-unit value.","operationId":"onchain-schema","parameters":[{"description":"Optional logical table name from the agent database. Use this to include bounded physical partition, ordering-key, and size metadata.","explode":false,"in":"query","name":"table","schema":{"description":"Optional logical table name from the agent database. Use this to include bounded physical partition, ordering-key, and size metadata.","examples":["polymarket_trades"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseOnchainSchemaTable"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"On-Chain Table Schema","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/sql":{"post":{"description":"Run a raw ClickHouse `SELECT` query against blockchain data.\n\nAll tables live in the **agent** database. Discover tables and columns first with `GET /v1/onchain/schema`.\n\nSend a JSON object, not raw SQL text. Example: `{\"sql\":\"SELECT ...\",\"max_rows\":1000}`.\n\nExecution modes\n- The default response is synchronous and has a 30s timeout.\n- For queries that may exceed that window, send `Prefer: respond-async`. The same request is accepted as a durable job with `202 Accepted` and `Preference-Applied: respond-async`.\n- Send a stable `Idempotency-Key` with `respond-async` so equivalent client retries reuse the retained job.\n- A synchronous timeout is non-retryable and returns `recommended_action: use_async_job` plus the async job URL. Do not resubmit the synchronous request automatically.\n- Synchronous and asynchronous ClickHouse executions share one cluster-wide per-owner concurrency budget. Accepted async jobs remain queued while that owner's execution slots are occupied.\n\nRules\n- Only SELECT/WITH statements allowed (read-only)\n- All table references must be database-qualified: `agent.<table_name>`\n- Max 10,000 rows (default 1,000), 30s timeout\n- **Always filter on block_date or block_number** — partition key, without it queries will timeout\n- Normalize address literals to lowercase and compare stored address columns directly. Wrapping address columns in `lower()` is rejected because it prevents key/index pruning.\n- On transfer tables, do not combine `from` and `to` address predicates with OR. Use separate `UNION ALL` branches so each branch can use its address-ordered projection, and account for self-transfers when preserving counts.\n- **Never resolve token symbols here** — `symbol` columns are unindexed (full scan) and symbol matches surface scam clones. Use `GET /v1/search/token?q={symbol}&chain={chain}` to get the contract address, then filter by `contract_address`\n- For transfer tables, `amount` is decimal-adjusted display units; `amount_raw` is the original base-unit value\n- Avoid `SELECT *` on large tables — specify only the columns you need\n- Use single quotes for ClickHouse strings. Example: `toDate('2026-04-07')`.\n\nData refresh: ~24 hours.\n\nExample\n\n```json\n{\n  \"sql\": \"SELECT block_time, token_pair, amount_usd, taker, tx_hash FROM agent.ethereum_dex_trades WHERE block_date >= today() - 7 AND project = 'uniswap' AND amount_usd > 100000 ORDER BY amount_usd DESC LIMIT 20\",\n  \"max_rows\": 1000\n}\n```","operationId":"onchain-sql","parameters":[{"description":"Optional RFC 7240 preference. Include respond-async to submit this request as a durable asynchronous job and receive 202 Accepted.","in":"header","name":"Prefer","schema":{"description":"Optional RFC 7240 preference. Include respond-async to submit this request as a durable asynchronous job and receive 202 Accepted.","type":"string"}},{"description":"Stable client-generated key used when Prefer includes respond-async. Reusing it returns the existing retained job.","in":"header","name":"Idempotency-Key","schema":{"description":"Stable client-generated key used when Prefer includes respond-async. Reusing it returns the existing retained job.","maxLength":200,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HumaOnchainSQLInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseOnchainRow"}}},"description":"Synchronous SQL result"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseAsyncSQLJobResponse"}}},"description":"Durable asynchronous SQL job accepted","headers":{"Preference-Applied":{"description":"Confirms that the respond-async preference was applied","schema":{"enum":["respond-async"],"type":"string"}}}},"408":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpstreamErrorResponse"}}},"description":"Synchronous query ended; use the structured action guidance"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Blockchain SQL Query","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/sql/jobs":{"post":{"description":"Accepts a read-only SQL query for durable background execution. Returns a stable job and ClickHouse query ID immediately. Reusing the same Idempotency-Key, or submitting SQL equivalent after whitespace and operator-spacing normalization with the same max_rows while its retained job exists, returns the existing job without starting another execution. Accepted jobs remain queued while the owner's cluster-wide ClickHouse execution budget is occupied by synchronous or asynchronous work.","operationId":"onchain-sql-job-create","parameters":[{"description":"Stable client-generated key. Reusing it returns the existing job without starting another query.","in":"header","name":"Idempotency-Key","schema":{"description":"Stable client-generated key. Reusing it returns the existing job without starting another query.","maxLength":200,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HumaOnchainSQLJobCreateInputBody"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseAsyncSQLJobResponse"}}},"description":"Accepted"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncSQLJobRejectedError"}}},"description":"Tenant queue capacity exceeded or the equivalent-query failure circuit is open","headers":{"Retry-After":{"description":"Seconds before a new submission should be attempted","schema":{"type":"integer"}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Submit Asynchronous Blockchain SQL Job","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/sql/jobs/{job_id}":{"delete":{"description":"Durably requests cancellation and returns the current job state. Queued jobs become canceled immediately. Task workers asynchronously stop and verify running ClickHouse queries; poll the job until it reaches canceled or failed.","operationId":"onchain-sql-job-cancel","parameters":[{"description":"Asynchronous SQL job identifier","in":"path","name":"job_id","required":true,"schema":{"description":"Asynchronous SQL job identifier","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseAsyncSQLJobResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Cancel Asynchronous Blockchain SQL Job","tags":["Onchain"],"x-required-scopes":["data:read"]},"get":{"description":"Returns durable job status, elapsed time, ClickHouse progress counters, retry semantics, and result links. Polling never starts another ClickHouse execution.","operationId":"onchain-sql-job-get","parameters":[{"description":"Asynchronous SQL job identifier","in":"path","name":"job_id","required":true,"schema":{"description":"Asynchronous SQL job identifier","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseAsyncSQLJobResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Get Asynchronous Blockchain SQL Job","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/sql/jobs/{job_id}/results":{"get":{"description":"Returns the retained complete result as the standard JSON data envelope or as a CSV attachment. Results are available for 24 hours and are isolated to the authenticated tenant or user.","operationId":"onchain-sql-job-results","parameters":[{"description":"Asynchronous SQL job identifier","in":"path","name":"job_id","required":true,"schema":{"description":"Asynchronous SQL job identifier","format":"uuid","type":"string"}},{"description":"Result representation","explode":false,"in":"query","name":"format","schema":{"default":"json","description":"Result representation","enum":["json","csv"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseOnchainRow"}},"text/csv":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}}},"description":"Completed SQL job result","headers":{"Content-Disposition":{"schema":{"type":"string"}},"Content-Type":{"schema":{"type":"string"}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Download Asynchronous Blockchain SQL Results","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/sql/preflight":{"post":{"description":"Validate and estimate a read-only ClickHouse query before executing it.\n\nThis endpoint runs `EXPLAIN ESTIMATE` and does not execute the submitted query. It returns:\n- Logical schema plus bounded physical source metadata\n- Partition, sorting, and primary-key expressions\n- Estimated parts, rows, marks, and bytes\n- The final server-bounded SQL and scan budgets\n- Machine-readable guardrail warnings with recommended actions\n\nUse `GET /v1/onchain/schema?table=<name>` for metadata-only discovery. Preflight accepts the same JSON shape and SQL safety rules as `POST /v1/onchain/sql`, but missing pruning filters are returned as structured rejection warnings rather than running the query.\n\nThe planner rejects address columns wrapped in `lower()` and transfer-table predicates that combine `from` and `to` with OR. Normalize address literals before submission, compare stored lowercase columns directly, and split incoming/outgoing transfer predicates into projection-friendly `UNION ALL` branches. It also warns when address-hash sharding cannot prune physical data, a leading time ordering key is unbounded, maker/taker UNION branches repeat scans, large joins lack early filters or aggregation, or `ANY JOIN` lacks independent uniqueness proof. The planner never changes JOIN semantics automatically.","operationId":"onchain-sql-preflight","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HumaOnchainSQLPreflightInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseOnchainSQLPreflight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Preflight Blockchain SQL Query","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/tx":{"get":{"description":"Look up one transaction by hash. Example: `chain=ethereum` with a 0x-prefixed 64-character hash.\n\nAll numeric fields are hex-encoded. Convert them with `parseInt(hex, 16)`.\n\nSupported chains: `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, `cyber`.","operationId":"onchain-tx","parameters":[{"description":"Transaction hash (0x-prefixed hex)","explode":false,"in":"query","name":"hash","required":true,"schema":{"description":"Transaction hash (0x-prefixed hex)","examples":["0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"],"type":"string"}},{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`.","enum":["ethereum","polygon","bsc","arbitrum","optimism","base","avalanche","fantom","linea","cyber"],"examples":["ethereum"],"type":"string"}},{"description":"Comma-separated enrichments to attach. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for the from/to addresses.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for the from/to addresses.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseOnchainTxItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Transaction Details by Hash","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/onchain/yield/ranking":{"get":{"description":"List individual DeFi yield pools ranked by APY or TVL. Example: filter by protocol like `lido` or `aave` for pool-level yield data.","operationId":"onchain-yield-ranking","parameters":[{"description":"Filter by protocol name like `lido`, `aave`, or `uniswap`","explode":false,"in":"query","name":"project","schema":{"description":"Filter by protocol name like `lido`, `aave`, or `uniswap`","examples":["aave"],"type":"string"}},{"description":"Ranking metric: `apy` or `tvl_usd`. When sorted by `apy`, only pools with TVL >= $100k are included","explode":false,"in":"query","name":"sort_by","schema":{"default":"apy","description":"Ranking metric: `apy` or `tvl_usd`. When sorted by `apy`, only pools with TVL >= $100k are included","enum":["apy","tvl_usd"],"examples":["apy"],"type":"string"}},{"description":"Sort direction","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort direction","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseYieldRankingItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Yield Pool Ranking","tags":["Onchain"],"x-required-scopes":["data:read"]}},"/gateway/v1/portfolio/wallets":{"get":{"description":"Returns every Hyperliquid wallet currently bound by the owner of the authenticated Task session. The operation accepts no user or session identifier: identity is derived from the session key. Use it only to resolve first-person requests such as 'my portfolio'; an explicit wallet address can be queried directly with the hyperliquid operations without being bound here.","operationId":"portfolio-wallets","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponsePortfolioWalletsBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Current User Portfolio Wallets","tags":["Portfolio"],"x-required-scopes":["data:read"]}},"/gateway/v1/prediction-market/analytics":{"get":{"description":"Trends, top markets, momentum distribution, and per-market momentum signals for prediction markets.\n\n**Platform-wide totals:** Omit `category` to get aggregated volume/OI/market-count across the entire prediction market (Polymarket + Kalshi combined). Use `platform` to filter to one exchange. This is the recommended way to answer questions like \"What is Polymarket's total volume this week?\" or \"How does Kalshi volume compare to Polymarket?\"\n\n**Category drill-down:** Provide `category` to scope all data to one category (e.g. crypto, politics).\n\nCombines volume/OI time series, top markets by open interest, momentum summary (price/volume signal distribution), and per-market momentum signals (price changes, volume direction, whale flows).\n\n**Note on top_markets:** When both `category` and `platform` are omitted, top markets are ranked globally by open interest. Because Polymarket OI is significantly larger than Kalshi OI, the list will skew heavily toward Polymarket. Use `platform` to get per-platform rankings.\n\n**Use `search` instead if** you want to browse/search individual markets.\n\n**Data refresh:** ~5 minutes.","operationId":"prediction-market-analytics","parameters":[{"description":"Category to analyze. Omit to get platform-wide totals across all categories.","explode":false,"in":"query","name":"category","schema":{"description":"Category to analyze. Omit to get platform-wide totals across all categories.","enum":["crypto","culture","economics","financials","politics","stem","sports"],"type":"string"}},{"description":"Filter to one platform","explode":false,"in":"query","name":"platform","schema":{"description":"Filter to one platform","enum":["polymarket","kalshi"],"type":"string"}},{"description":"Window for category trends: `7d`, `30d`, `90d`, `180d`, or `1y`. Bucket size is fixed at 1 day — this endpoint uses `time_range` only and does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window for category trends: `7d`, `30d`, `90d`, `180d`, or `1y`. Bucket size is fixed at 1 day — this endpoint uses `time_range` only and does NOT accept `interval`.","enum":["7d","30d","90d","180d","1y"],"type":"string"}},{"description":"Number of top markets to include","explode":false,"in":"query","name":"top_n","schema":{"default":10,"description":"Number of top markets to include","format":"int64","maximum":50,"minimum":1,"type":"integer"}},{"description":"Sort field for momentum markets","explode":false,"in":"query","name":"sort_by","schema":{"default":"volume_7d","description":"Sort field for momentum markets","enum":["volume_7d","whale_flow_net_7d","price_change_7d","oi_change_7d"],"type":"string"}},{"description":"Sort direction","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort direction","enum":["asc","desc"],"type":"string"}},{"description":"Limit for momentum markets list","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Limit for momentum markets list","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset for momentum markets","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset for momentum markets","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseAnalyticsBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Prediction Market Analytics","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/correlations":{"get":{"description":"Returns 30-day Pearson price correlation pairs between Polymarket markets within a category.\n\nCorrelation data covers the top 100 markets by 7-day volume globally; lower-volume markets may not have correlation data.\n\nFilter by `condition_id` to find all markets correlated with a specific market, or set `min_correlation` to control the threshold.\n\nThe `category` parameter is required.\n\n**Data refresh:** ~5 minutes.","operationId":"prediction-market-correlations","parameters":[{"description":"Category (correlations are within-category only)","explode":false,"in":"query","name":"category","required":true,"schema":{"description":"Category (correlations are within-category only)","enum":["crypto","culture","economics","financials","politics","stem","sports"],"type":"string"}},{"description":"Filter to pairs involving this market","explode":false,"in":"query","name":"condition_id","schema":{"description":"Filter to pairs involving this market","type":"string"}},{"description":"Minimum absolute correlation","explode":false,"in":"query","name":"min_correlation","schema":{"default":0.5,"description":"Minimum absolute correlation","format":"double","type":"number"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseCorrelationItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Market Correlations","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/events":{"get":{"description":"Returns Kalshi events with nested markets, optionally filtered by `event_ticker`.\n\nEach event includes market count and a list of markets.\n\n**Data refresh:** ~30 minutes","operationId":"kalshi-events","parameters":[{"description":"Event ticker identifier. When omitted, returns top active events by volume. Use GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"event_ticker","schema":{"description":"Event ticker identifier. When omitted, returns top active events by volume. Use GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiEvent"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Events","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/markets":{"get":{"description":"Returns Kalshi markets, optionally filtered by `market_ticker`.\n\nEach market includes price, volume, and status.\n\n**Data refresh:** ~30 minutes","operationId":"kalshi-markets","parameters":[{"description":"Market ticker identifier. When omitted, returns top active markets by volume. Use GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"market_ticker","schema":{"description":"Market ticker identifier. When omitted, returns top active markets by volume. Use GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiMarketItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Markets","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/open-interest":{"get":{"description":"Daily open interest time series for a Kalshi market.\n\n**Data refresh:** ~30 minutes","operationId":"kalshi-open-interest","parameters":[{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"ticker","required":true,"schema":{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiOIPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Open Interest History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/orderbooks":{"get":{"description":"Historical orderbook snapshots for a Kalshi market. Returns yes-side bid/ask levels. Timestamps in milliseconds, prices in cents.\n\nData refresh: ~5 minutes","operationId":"kalshi-orderbooks","parameters":[{"description":"Kalshi market ticker","explode":false,"in":"query","name":"ticker","required":true,"schema":{"description":"Kalshi market ticker","examples":["KXCITRINI-28JUL01"],"type":"string"}},{"description":"Start time in Unix milliseconds. 0 means 7 days ago.","explode":false,"in":"query","name":"start_time","schema":{"description":"Start time in Unix milliseconds. 0 means 7 days ago.","format":"int64","type":"integer"}},{"description":"End time in Unix milliseconds. 0 means current time.","explode":false,"in":"query","name":"end_time","schema":{"description":"End time in Unix milliseconds. 0 means current time.","format":"int64","type":"integer"}},{"description":"Maximum number of snapshots to return","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Maximum number of snapshots to return","format":"int64","maximum":200,"minimum":1,"type":"integer"}},{"description":"Base64 cursor for pagination","explode":false,"in":"query","name":"pagination_key","schema":{"description":"Base64 cursor for pagination","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2KalshiOrderbooksResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Orderbook History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/prices":{"get":{"description":"Price time series for a Kalshi market with daily or hourly OHLC data, or latest price from recent trades.\n\n**Data refresh:** ~30 minutes","operationId":"kalshi-prices","parameters":[{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"ticker","required":true,"schema":{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. Distinct from `interval` (which sets bucket size within the window).","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. Distinct from `interval` (which sets bucket size within the window).","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}},{"description":"Bucket size for each point in the series: `1h` (hourly OHLC), `1d` (daily OHLC), or `latest` (single most-recent trade price). Distinct from `time_range` (window size).","explode":false,"in":"query","name":"interval","schema":{"default":"1d","description":"Bucket size for each point in the series: `1h` (hourly OHLC), `1d` (daily OHLC), or `latest` (single most-recent trade price). Distinct from `time_range` (window size).","enum":["1h","1d","latest"],"examples":["1d"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiPricePoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Price History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/trades":{"get":{"description":"Returns individual trade records for a Kalshi market.\n\n**Filters:** `taker_side`, `min_contracts`, and date range.\n\n**Sort:** `timestamp` or `num_contracts`.\n\n**Data refresh:** real-time","operationId":"kalshi-trades","parameters":[{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"ticker","required":true,"schema":{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Filter by taker side: `yes` or `no`","explode":false,"in":"query","name":"taker_side","schema":{"description":"Filter by taker side: `yes` or `no`","enum":["yes","no"],"type":"string"}},{"description":"Minimum notional volume in USD (each contract = $1)","explode":false,"in":"query","name":"min_amount","schema":{"description":"Minimum notional volume in USD (each contract = $1)","format":"int64","minimum":0,"type":"integer"}},{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","type":"string"}},{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"timestamp","description":"Field to sort results by","enum":["timestamp","notional_volume_usd"],"examples":["timestamp"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":50,"description":"Results per page","examples":[50],"format":"int64","maximum":500,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiTrade"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Trades","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/kalshi/volumes":{"get":{"description":"Daily trading volume time series for a Kalshi market.\n\n**Data refresh:** ~30 minutes","operationId":"kalshi-volumes","parameters":[{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","explode":false,"in":"query","name":"ticker","required":true,"schema":{"description":"Market ticker identifier. Use GET /v1/prediction-market/kalshi/markets or GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseKalshiVolumePoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Kalshi Volume History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/matching/daily":{"get":{"description":"Returns daily volume and open interest comparison for a specific Polymarket <> Kalshi matched pair.\n\nBoth `polymarket_condition_id` and `kalshi_market_ticker` are required. Use `matching-market-pairs` to discover matched pairs first.\n\n**Volume units:** Polymarket = USD, Kalshi = contracts.","operationId":"matching-market-daily","parameters":[{"description":"Polymarket condition ID","explode":false,"in":"query","name":"polymarket_condition_id","required":true,"schema":{"description":"Polymarket condition ID","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Kalshi market ticker","explode":false,"in":"query","name":"kalshi_market_ticker","required":true,"schema":{"description":"Kalshi market ticker","examples":["KXBTC2026250-27JAN01-250000"],"type":"string"}},{"description":"Window of daily data to return: `1d`, `7d`, `30d`, `90d`, `180d`, `1y`, or `all`. Bucket size is fixed at 1 day — this endpoint uses `time_range` only and does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of daily data to return: `1d`, `7d`, `30d`, `90d`, `180d`, `1y`, or `all`. Bucket size is fixed at 1 day — this endpoint uses `time_range` only and does NOT accept `interval`.","enum":["1d","7d","30d","90d","180d","1y","all"],"examples":["30d"],"type":"string"}},{"description":"Maximum rows","explode":false,"in":"query","name":"limit","schema":{"default":200,"description":"Maximum rows","examples":[200],"format":"int64","maximum":10000,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMatchedMarketDailyItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Cross-Platform Daily Comparison (Polymarket <> Kalshi)","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/matching/pairs":{"get":{"description":"Cross-platform prediction market pair matcher — finds the same event listed on both Polymarket and Kalshi, with live price spread data. This is prediction-market only (Polymarket and Kalshi). For crypto exchange markets, use `exchange-markets`.\n\nFilter by category, match type, confidence score, or look up a specific market's cross-platform counterpart via `polymarket_condition_id` or `kalshi_market_ticker`.\n\nEach pair includes current prices and spread percentage for arbitrage analysis. Sort by `spread_pct` to find the widest spreads.\n\n**Data refresh:** ~5 minutes","operationId":"matching-market-pairs","parameters":[{"description":"Filter by category","explode":false,"in":"query","name":"category","schema":{"description":"Filter by category","enum":["crypto","culture","economics","financials","politics","stem","sports"],"examples":["politics"],"type":"string"}},{"description":"Filter by match type","explode":false,"in":"query","name":"match_type","schema":{"description":"Filter by match type","enum":["exact","related"],"examples":["exact"],"type":"string"}},{"description":"Only return pairs where both markets are currently active","explode":false,"in":"query","name":"active_only","schema":{"default":false,"description":"Only return pairs where both markets are currently active","type":"boolean"}},{"description":"Minimum confidence score (0-100)","explode":false,"in":"query","name":"min_confidence","schema":{"default":0,"description":"Minimum confidence score (0-100)","format":"int64","maximum":100,"minimum":0,"type":"integer"}},{"description":"Find match for this Polymarket market","explode":false,"in":"query","name":"polymarket_condition_id","schema":{"description":"Find match for this Polymarket market","type":"string"}},{"description":"Find match for this Kalshi market","explode":false,"in":"query","name":"kalshi_market_ticker","schema":{"description":"Find match for this Kalshi market","type":"string"}},{"description":"Sort field","explode":false,"in":"query","name":"sort_by","schema":{"default":"confidence","description":"Sort field","enum":["confidence","polymarket_volume","kalshi_volume","spread_pct"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"type":"string"}},{"description":"Maximum rows to return","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Maximum rows to return","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseMatchedMarketPair"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Cross-Platform Prediction Market Matcher (Polymarket <> Kalshi)","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/events":{"get":{"description":"Returns Polymarket events with nested markets, optionally filtered by `event_slug`.\n\nEach event includes aggregated status, volume, and a list of markets with `side_a`/`side_b` outcomes.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-events","parameters":[{"description":"Polymarket event slug (identifies a multi-outcome question with several nested markets). Known World Cup match sibling slugs are expanded to the canonical match group. Discover slugs via /v1/search/prediction-market?platform=polymarket&q={keyword}. For a single Yes/No market, use /polymarket/markets with market_slug instead — this endpoint only accepts event_slug, not market_slug.","explode":false,"in":"query","name":"event_slug","required":true,"schema":{"description":"Polymarket event slug (identifies a multi-outcome question with several nested markets). Known World Cup match sibling slugs are expanded to the canonical match group. Discover slugs via /v1/search/prediction-market?platform=polymarket&q={keyword}. For a single Yes/No market, use /polymarket/markets with market_slug instead — this endpoint only accepts event_slug, not market_slug.","examples":["what-price-will-bitcoin-hit-before-2027"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketEvent"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Events","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/leaderboard":{"get":{"description":"Returns a ranked leaderboard of Polymarket traders by realized PnL, volume, or trade count.\n\nSortable by `pnl`, `volume`, or `trade_count`. Each entry includes the wallet address and aggregate trading statistics.\n\n**Data refresh:** ~5 minutes.","operationId":"polymarket-leaderboard","parameters":[{"description":"Ranking metric","explode":false,"in":"query","name":"sort_by","schema":{"default":"pnl","description":"Ranking metric","enum":["pnl","volume","trade_count"],"type":"string"}},{"description":"Sort direction","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort direction","enum":["asc","desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseLeaderboardItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Leaderboard","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/markets":{"get":{"description":"Returns Polymarket markets, optionally filtered by `market_slug`.\n\nEach market includes `side_a` and `side_b` outcomes. Current prices are available via `/polymarket/prices` using the `condition_id`.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-markets","parameters":[{"description":"Polymarket market slug (identifies a single Yes/No outcome). Discover slugs via /v1/search/prediction-market?platform=polymarket&q={keyword}. For a multi-outcome question (e.g. 'who wins the 2024 election'), use the /polymarket/events endpoint with event_slug instead.","explode":false,"in":"query","name":"market_slug","required":true,"schema":{"description":"Polymarket market slug (identifies a single Yes/No outcome). Discover slugs via /v1/search/prediction-market?platform=polymarket&q={keyword}. For a multi-outcome question (e.g. 'who wins the 2024 election'), use the /polymarket/events endpoint with event_slug instead.","examples":["will-bitcoin-dip-to-45000-by-december-31-2026-674-923-755-971-998-525-926-245-316-517-544-589-965-923-986-841-815-224"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketMarketItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Markets","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/open-interest":{"get":{"description":"Daily open interest time series showing total value locked in a Polymarket market.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-open-interest","parameters":[{"description":"Market condition identifier","explode":false,"in":"query","name":"condition_id","required":true,"schema":{"description":"Market condition identifier","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return: `7d`, `30d`, `90d`, `180d`, or `1y`. This endpoint uses `time_range` only — it does NOT accept `interval`.","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketOIPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Open Interest History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/orderbooks":{"get":{"description":"Historical orderbook snapshots for a Polymarket token. Returns raw bid/ask depth levels. Timestamps in milliseconds.\n\nData refresh: ~5 minutes","operationId":"polymarket-orderbooks","parameters":[{"description":"Token identifier","explode":false,"in":"query","name":"token_id","required":true,"schema":{"description":"Token identifier","examples":["73662070458561467734997715458900555626841827840002814944742182699282770895284"],"type":"string"}},{"description":"Start time in Unix milliseconds. 0 means 7 days ago.","explode":false,"in":"query","name":"start_time","schema":{"description":"Start time in Unix milliseconds. 0 means 7 days ago.","format":"int64","type":"integer"}},{"description":"End time in Unix milliseconds. 0 means current time.","explode":false,"in":"query","name":"end_time","schema":{"description":"End time in Unix milliseconds. 0 means current time.","format":"int64","type":"integer"}},{"description":"Maximum number of snapshots to return","explode":false,"in":"query","name":"limit","schema":{"default":100,"description":"Maximum number of snapshots to return","format":"int64","maximum":200,"minimum":1,"type":"integer"}},{"description":"Base64 cursor for pagination","explode":false,"in":"query","name":"pagination_key","schema":{"description":"Base64 cursor for pagination","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2OrderbooksResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Orderbook History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/positions":{"get":{"description":"Given a specific wallet address, returns that wallet's open positions on Polymarket markets.\n\nThis is a single-wallet lookup — you must provide the wallet `address`.\n\n**Not what you need?**\n- To discover top/smart wallets across all of Polymarket, use `polymarket-smart-money` (view=positioning for aggregate signals, view=trades for individual whale trades).\n- To find top traders by PnL or volume, use `polymarket-leaderboard`.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-positions","parameters":[{"description":"Polymarket proxy wallet address","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Polymarket proxy wallet address","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":50,"description":"Results per page","examples":[50],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketPosition"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Wallet Positions","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/price-ohlcv/{condition_id}":{"get":{"description":"OHLCV candlestick data for charting a Polymarket market — open, high, low, close, volume per candle.\nUse this for rendering price charts with candlestick or bar visualizations.\nFor simple price time series (one price per interval), use `prices` instead.\n\nData refresh: ~30 minutes","operationId":"polymarket-price-ohlcv","parameters":[{"description":"Polymarket condition ID","in":"path","name":"condition_id","required":true,"schema":{"description":"Polymarket condition ID","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Start time (Unix seconds). 0 means no lower bound. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","explode":false,"in":"query","name":"start_time","schema":{"description":"Start time (Unix seconds). 0 means no lower bound. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","format":"int64","minimum":0,"type":"integer"}},{"description":"End time (Unix seconds). 0 means current time. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","explode":false,"in":"query","name":"end_time","schema":{"description":"End time (Unix seconds). 0 means current time. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","format":"int64","minimum":0,"type":"integer"}},{"description":"Candle interval in minutes: 1=1min, 60=1hour, 1440=1day","explode":false,"in":"query","name":"interval","schema":{"default":60,"description":"Candle interval in minutes: 1=1min, 60=1hour, 1440=1day","format":"int64","maximum":1440,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2CandlestickResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket OHLCV Candlesticks","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/prices":{"get":{"description":"Simple price time series for a Polymarket market — one price point per interval.\nUse this for tracking price trends over time.\nFor OHLCV candlestick data (open/high/low/close for charting libraries), use `price-ohlcv` instead.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-prices","parameters":[{"description":"Market condition identifier","explode":false,"in":"query","name":"condition_id","required":true,"schema":{"description":"Market condition identifier","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Window of history to return (how much data, from now backward): `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. Distinct from `interval` (which sets bucket size within this window).","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return (how much data, from now backward): `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. Distinct from `interval` (which sets bucket size within this window).","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}},{"description":"Bucket size for each point in the returned series: `1h` (hourly), `1d` (daily), or `latest` (single most-recent snapshot). Distinct from `time_range` (which sets the window size).","explode":false,"in":"query","name":"interval","schema":{"default":"1d","description":"Bucket size for each point in the returned series: `1h` (hourly), `1d` (daily), or `latest` (single most-recent snapshot). Distinct from `time_range` (which sets the window size).","enum":["1h","1d","latest"],"examples":["1d"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketPricePoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Price History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/smart-money":{"get":{"description":"Smart wallet analytics for Polymarket markets.\n\nview=positioning (default): Aggregate smart wallet direction per market — net bullish/bearish signal and conviction.\nview=trades: Individual $10K+ trades with wallet address, amount, outcome, price, and wallet age.\n\n**Data refresh:** ~5 minutes","operationId":"polymarket-smart-money","parameters":[{"description":"positioning = aggregate smart wallet direction per market; trades = individual $10K+ trades with wallet metadata","explode":false,"in":"query","name":"view","schema":{"default":"positioning","description":"positioning = aggregate smart wallet direction per market; trades = individual $10K+ trades with wallet metadata","enum":["positioning","trades"],"type":"string"}},{"description":"Filter to a specific market (omit to browse all)","explode":false,"in":"query","name":"condition_id","schema":{"description":"Filter to a specific market (omit to browse all)","type":"string"}},{"description":"Filter by category","explode":false,"in":"query","name":"category","schema":{"description":"Filter by category","enum":["crypto","culture","economics","financials","politics","stem","sports"],"type":"string"}},{"description":"Filter by net smart money direction (only for view=positioning)","explode":false,"in":"query","name":"direction","schema":{"description":"Filter by net smart money direction (only for view=positioning)","enum":["bullish","bearish","neutral"],"type":"string"}},{"description":"Trade size tier filter (only for view=trades)","explode":false,"in":"query","name":"whale_tier","schema":{"description":"Trade size tier filter (only for view=trades)","enum":["whale","large","mega"],"type":"string"}},{"description":"Start time as Unix seconds or date string (only for view=trades)","explode":false,"in":"query","name":"from","schema":{"description":"Start time as Unix seconds or date string (only for view=trades)","type":"string"}},{"description":"End time as Unix seconds or date string (only for view=trades)","explode":false,"in":"query","name":"to","schema":{"description":"End time as Unix seconds or date string (only for view=trades)","type":"string"}},{"description":"Sort field","explode":false,"in":"query","name":"sort_by","schema":{"default":"smart_wallets_involved","description":"Sort field","enum":["smart_wallets_involved","smart_buy_volume_usd","smart_sell_volume_usd","amount_usd","block_time"],"type":"string"}},{"description":"Sort direction","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort direction","enum":["asc","desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseInterface {}"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Smart Money","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/trades":{"get":{"description":"Trade and activity history for a Polymarket market or wallet.\n\nFilter by market (condition_id), wallet (address), outcome (Yes/No), minimum trade size, and time range. Use type=redemption for splits/merges/redemptions, type=all for everything.\n\n**Data refresh:** ~5 minutes","operationId":"polymarket-trades","parameters":[{"description":"Market condition identifier","explode":false,"in":"query","name":"condition_id","schema":{"description":"Market condition identifier","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Wallet address — returns trades where the address is maker or taker","explode":false,"in":"query","name":"address","schema":{"description":"Wallet address — returns trades where the address is maker or taker","type":"string"}},{"description":"Filter by activity type: `trade` (default, spot trades only), `redemption` (splits/merges/redemptions), or `all` (all activity). Use `redemption` or `all` to get non-trade wallet activity; `address` is required for these types.","explode":false,"in":"query","name":"type","schema":{"default":"trade","description":"Filter by activity type: `trade` (default, spot trades only), `redemption` (splits/merges/redemptions), or `all` (all activity). Use `redemption` or `all` to get non-trade wallet activity; `address` is required for these types.","enum":["trade","redemption","all"],"type":"string"}},{"description":"Filter by outcome label: `Yes` or `No`","explode":false,"in":"query","name":"outcome_label","schema":{"description":"Filter by outcome label: `Yes` or `No`","enum":["Yes","No"],"type":"string"}},{"description":"Minimum trade amount in USD","explode":false,"in":"query","name":"min_amount","schema":{"description":"Minimum trade amount in USD","format":"double","minimum":0,"type":"number"}},{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","type":"string"}},{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","type":"string"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"timestamp","description":"Field to sort results by","enum":["timestamp","notional_volume_usd"],"examples":["timestamp"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":50,"description":"Results per page","examples":[50],"format":"int64","maximum":500,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseInterface {}"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Trades","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/volume-split/{condition_id}":{"get":{"description":"Volume split by YES/NO outcome sides per interval (hour/day/week), plus total volume and trade count.\nUse this to see directional volume bias.\nFor aggregate volume without YES/NO breakdown, use `volumes` instead.\n\nData refresh: ~30 minutes","operationId":"polymarket-volume-split","parameters":[{"description":"Polymarket condition ID","in":"path","name":"condition_id","required":true,"schema":{"description":"Polymarket condition ID","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Time granularity for volume aggregation","explode":false,"in":"query","name":"granularity","schema":{"default":"hour","description":"Time granularity for volume aggregation","enum":["hour","day","week"],"type":"string"}},{"description":"Start time (Unix seconds). 0 means no lower bound. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","explode":false,"in":"query","name":"start_time","schema":{"description":"Start time (Unix seconds). 0 means no lower bound. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","format":"int64","minimum":0,"type":"integer"}},{"description":"End time (Unix seconds). 0 means current time. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","explode":false,"in":"query","name":"end_time","schema":{"description":"End time (Unix seconds). 0 means current time. Cache aligns to 5-minute buckets, so two requests within the same bucket return the same cached result.","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/V2VolumeChartResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Volume Split (YES/NO)","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/prediction-market/polymarket/volumes":{"get":{"description":"Aggregate trading volume (USD) and trade count as a time series.\nUse this for volume trend analysis.\nFor YES/NO volume breakdown by outcome side, use `volume-split` instead.\n\n**Data refresh:** ~30 minutes","operationId":"polymarket-volumes","parameters":[{"description":"Market condition identifier (required if token_id not provided)","explode":false,"in":"query","name":"condition_id","schema":{"description":"Market condition identifier (required if token_id not provided)","examples":["0x6fefc0438c7598b23531457c8c60541990d0786bd4bd9dfc3eabc8d95c291092"],"type":"string"}},{"description":"Token ID (alternative identifier, resolved to condition_id internally)","explode":false,"in":"query","name":"token_id","schema":{"description":"Token ID (alternative identifier, resolved to condition_id internally)","type":"string"}},{"description":"Window of history to return (how much data, from now backward): `7d`, `30d`, `90d`, `180d`, or `1y`. Distinct from `interval` (which sets bucket size within the window).","explode":false,"in":"query","name":"time_range","schema":{"default":"30d","description":"Window of history to return (how much data, from now backward): `7d`, `30d`, `90d`, `180d`, or `1y`. Distinct from `interval` (which sets bucket size within the window).","enum":["7d","30d","90d","180d","1y"],"examples":["30d"],"type":"string"}},{"description":"Bucket size for each point in the returned series: `1h` (hourly) or `1d` (daily). Distinct from `time_range` (which sets the window size).","explode":false,"in":"query","name":"interval","schema":{"default":"1d","description":"Bucket size for each point in the returned series: `1h` (hourly) or `1d` (daily). Distinct from `time_range` (which sets the window size).","enum":["1h","1d"],"examples":["1d"],"type":"string"}},{"description":"Aggregation granularity (alternative to interval). When provided, queries daily table with buy/sell volume breakdown.","explode":false,"in":"query","name":"granularity","schema":{"description":"Aggregation granularity (alternative to interval). When provided, queries daily table with buy/sell volume breakdown.","enum":["day","week","month","year","all"],"type":"string"}},{"description":"Start time as Unix seconds (alternative to time_range)","explode":false,"in":"query","name":"start_time","schema":{"description":"Start time as Unix seconds (alternative to time_range)","format":"int64","type":"integer"}},{"description":"End time as Unix seconds (alternative to time_range)","explode":false,"in":"query","name":"end_time","schema":{"description":"End time as Unix seconds (alternative to time_range)","format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponsePolymarketVolumePoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Polymarket Volume History","tags":["Prediction Market"],"x-required-scopes":["prediction-markets:read"]}},"/gateway/v1/project/ai-news":{"get":{"description":"AI-generated news and signal analysis for a project. Each item includes title, summary, TL;DR, signal type, and source URLs.\n\n**Signal types returned:** `price_analysis`, `funding`. Social/X-derived items (`mindshare`, `twitter`, `ai_twitter`, items with tweet payloads or X/Twitter source URLs) are filtered out and never returned.\n\n**Lookup:** by UUID (`id`) or name (`q`). Filter by `lang` (en/zh/ja/kr). Returns 404 if not found.","operationId":"project-ai-news","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":50,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Language for AI-generated content","explode":false,"in":"query","name":"lang","schema":{"default":"en","description":"Language for AI-generated content","enum":["en","zh","ja","kr"],"examples":["en"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectPulseItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Project AI News","tags":["Project"],"x-required-scopes":["data:read"]}},"/gateway/v1/project/defi/metrics":{"get":{"description":"Returns historical time-series for a single DeFi protocol metric (e.g. daily TVL). Each data point has a Unix timestamp and value.\n\n**Available metrics:** `volume`, `fee`, `fees`, `revenue`, `tvl`, `users`.\n\n**Lookup:** by UUID (`id`) or name (`q`). Filter by `chain` and date range (`from`/`to`). Returns 404 if the project is not found.\n\n**Pagination:** check `meta.has_more`; when true, increase `offset` or `limit` to fetch the remaining points.\n\n**Note:** this endpoint only returns data for DeFi protocol projects (e.g. `aave`, `uniswap`, `lido`, `makerdao`). Use `q` with a DeFi protocol name.","operationId":"project-defi-metrics","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["uniswap"],"type":"string"}},{"description":"Metric to query. Can be `volume`, `fees` (or `fee` alias), `revenue`, `tvl`, or `users`. Defaults to tvl.","explode":false,"in":"query","name":"metric","schema":{"default":"tvl","description":"Metric to query. Can be `volume`, `fees` (or `fee` alias), `revenue`, `tvl`, or `users`. Defaults to tvl.","enum":["volume","fee","fees","revenue","tvl","users"],"examples":["tvl"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","examples":["2024-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)","examples":["2024-02-01"],"type":"string"}},{"description":"Filter by chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, or `solana`.","explode":false,"in":"query","name":"chain","schema":{"description":"Filter by chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, or `solana`.","enum":["ethereum","polygon","bsc","arbitrum","optimism","base","avalanche","fantom","solana"],"examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectMetricPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Project DeFi Metrics","tags":["Project"],"x-required-scopes":["data:read"]}},"/gateway/v1/project/defi/ranking":{"get":{"description":"Returns a DeFi protocol leaderboard (e.g. Aave, Uniswap, Lido) ranked by TVL, fees, revenue, or users. For individual pool/vault yields, use `onchain-yield-ranking` instead.\n\n**Available metrics:** `tvl`, `revenue`, `fees`, `volume`, `users`.","operationId":"project-defi-ranking","parameters":[{"description":"Ranking metric. Can be `tvl`, `revenue`, `fees`, `volume`, or `users`.","explode":false,"in":"query","name":"metric","required":true,"schema":{"description":"Ranking metric. Can be `tvl`, `revenue`, `fees`, `volume`, or `users`.","enum":["tvl","revenue","fees","volume","users"],"examples":["tvl"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectTopRankItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"DeFi Protocol Ranking","tags":["Project"],"x-required-scopes":["data:read"]}},"/gateway/v1/project/detail":{"get":{"description":"Returns a crypto project's profile with selectable sub-resources: overview (description, chains, exchanges), token_info (price, market cap, supply, all-time high/low dates), tokenomics, funding, team, contracts, social, tge_status.\n\n**Available fields** (via `fields`): `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, `tge_status`.\n\n**Important:** `tokenomics` is a legacy supply/valuation group (`total_supply`, `circulating_supply`, `market_cap_usd`, `fdv`). It does not include token unlock schedule, allocation, or unlock percentage data. For unlock schedule and unlocked-supply percentage, use `/token/tokenomics`.\n\n**Lookup:** accepts project names directly via `q` (e.g. `?q=aave`) — no need to call `/search/project` first. Also accepts UUID via `id`. Returns 404 if not found.\n\nFor DeFi metrics (TVL, fees, revenue, volume, users) and per-chain breakdown, use `/project/defi/metrics`.","operationId":"project-detail","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Numeric X (Twitter) account ID. Resolves to the associated project.","explode":false,"in":"query","name":"x_id","schema":{"description":"Numeric X (Twitter) account ID. Resolves to the associated project.","examples":["984188226826010624"],"type":"string"}},{"description":"X (Twitter) handle without @. Resolves to the associated project via twitter account lookup.","explode":false,"in":"query","name":"handle","schema":{"description":"X (Twitter) handle without @. Resolves to the associated project via twitter account lookup.","examples":["uniswap"],"type":"string"}},{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["ethereum"],"type":"string"}},{"description":"Comma-separated sub-resources to include. Can be `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, or `tge_status`.","explode":false,"in":"query","name":"fields","schema":{"default":"overview,token_info,tokenomics,funding,team,contracts,social,tge_status","description":"Comma-separated sub-resources to include. Can be `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, or `tge_status`.","examples":["overview,token_info,funding"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseHumaProjectDetailBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Aggregated Project Detail","tags":["Project"],"x-agent-views":{"contracts":{"command_example":"surf project-detail --q \"aave\" --fields contracts --agent-view contracts","description":"Flattened contract rows for agents; normalizes nested contract shapes into chain, address, symbol, name, and optional decimals.","output":{"items":{"fields":{"address":"string|null","chain":"string|null","decimals":"number|string|null","name":"string|null","symbol":"string|null"},"type":"object"},"type":"array"}}},"x-required-scopes":["data:read"]}},"/gateway/v1/project/pulse":{"get":{"deprecated":true,"description":"**[DEPRECATED]** Use `GET /v1/project/ai-news` instead. This endpoint will continue to work but will not receive new features.\n\n---\n\nAI-generated news and signal analysis for a project. Each item includes title, summary, TL;DR, signal type, and source URLs.\n\n**Signal types returned:** `price_analysis`, `funding`. Social/X-derived items (`mindshare`, `twitter`, `ai_twitter`, items with tweet payloads or X/Twitter source URLs) are filtered out and never returned.\n\n**Lookup:** by UUID (`id`) or name (`q`). Filter by `lang` (en/zh/ja/kr). Returns 404 if not found.","operationId":"project-pulse","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":50,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Language for AI-generated content","explode":false,"in":"query","name":"lang","schema":{"default":"en","description":"Language for AI-generated content","enum":["en","zh","ja","kr"],"examples":["en"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectPulseItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Project Pulse [Deprecated]","tags":["Project"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/airdrop":{"get":{"description":"Searches and filters airdrop opportunities.\n\n**Filters:** keyword, status, reward type, task type.\n\nReturns paginated results with optional task details.","operationId":"search-airdrop","parameters":[{"description":"Search keyword for coin name","explode":false,"in":"query","name":"q","schema":{"description":"Search keyword for coin name","examples":["airdrop"],"maxLength":100,"type":"string"}},{"description":"Comma-separated lifecycle phases. `active` = tasks open, can participate (POTENTIAL + CONFIRMED). `claimable` = eligible, can claim (SNAPSHOT + VERIFICATION + REWARD_AVAILABLE). `completed` = done (DISTRIBUTED). Defaults to `active,claimable` to show actionable airdrops.","explode":false,"in":"query","name":"phase","schema":{"default":"active,claimable","description":"Comma-separated lifecycle phases. `active` = tasks open, can participate (POTENTIAL + CONFIRMED). `claimable` = eligible, can claim (SNAPSHOT + VERIFICATION + REWARD_AVAILABLE). `completed` = done (DISTRIBUTED). Defaults to `active,claimable` to show actionable airdrops.","examples":["active"],"type":"string"}},{"description":"Filter by reward type","explode":false,"in":"query","name":"reward_type","schema":{"description":"Filter by reward type","enum":["airdrop","points","whitelist","nft","role","ambassador"],"examples":["airdrop"],"type":"string"}},{"description":"Filter activities containing tasks of this type","explode":false,"in":"query","name":"task_type","schema":{"description":"Filter activities containing tasks of this type","enum":["social","bounty-platforms","testnet","mainnet","role","form","liquidity","mint-nft","game","trading","staking","depin","node","ambassador","hold","check-wallet","mint-domain","predictions","deploy"],"examples":["social"],"type":"string"}},{"description":"Only return activities with currently OPEN tasks","explode":false,"in":"query","name":"has_open","schema":{"default":false,"description":"Only return activities with currently OPEN tasks","examples":[true],"type":"boolean"}},{"description":"Field to sort results by","explode":false,"in":"query","name":"sort_by","schema":{"default":"last_status_update","description":"Field to sort results by","enum":["total_raise","xscore","last_status_update"],"examples":["last_status_update"],"type":"string"}},{"description":"Sort order","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Include full task list per activity","explode":false,"in":"query","name":"include_tasks","schema":{"default":false,"description":"Include full task list per activity","examples":[true],"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseAirdropSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Airdrop Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/airdrop/activities":{"get":{"description":"Lists airdrop activities with pagination.\n\nReturns activity metadata including reward type, status, and social metrics.","operationId":"search-airdrop-activities","parameters":[{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseAirdropActivityItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Airdrop Activities","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/events":{"get":{"description":"Searches project events by keyword, optionally filtered by `type`.\n\n**Valid types:** `launch`, `upgrade`, `partnership`, `news`, `airdrop`, `listing`, `twitter`.\n\n**Lookup:** by UUID (`id`) or name (`q`). Returns 404 if the project is not found.","operationId":"search-events","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","explode":false,"in":"query","name":"q","schema":{"description":"Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.","examples":["ethereum"],"type":"string"}},{"description":"Filter by event type. Can be `launch`, `upgrade`, `partnership`, `news`, `airdrop`, `listing`, or `twitter`.","explode":false,"in":"query","name":"type","schema":{"description":"Filter by event type. Can be `launch`, `upgrade`, `partnership`, `news`, `airdrop`, `listing`, or `twitter`.","enum":["launch","upgrade","partnership","news","airdrop","listing","twitter"],"examples":["launch"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectEventItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Project Event Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/fund":{"get":{"description":"Searches funds by keyword.\n\n**Included fields:** name, tier, type, logo, top invested projects.","operationId":"search-fund","parameters":[{"description":"Search keyword — fund name like `a16z`, `paradigm`, or `coinbase ventures`","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Search keyword — fund name like `a16z`, `paradigm`, or `coinbase ventures`","examples":["a16z"],"maxLength":100,"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseFundSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fund Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/fundraising":{"get":{"description":"Searches source-backed fundraising and token-sale events, or returns the latest fundraising timeline when `q` is omitted.\n\nSupports inclusive UTC time bounds, source and importance filters, localization, deterministic sorting, and offset pagination. Results intentionally omit project or fundraiser identity because source context is not guaranteed to identify the organization raising funds.","operationId":"search-fundraising","parameters":[{"description":"Optional project name, alias, symbol, title, or summary search query. When provided, the trimmed query must contain 2-100 Unicode characters.","explode":false,"in":"query","name":"q","schema":{"description":"Optional project name, alias, symbol, title, or summary search query. When provided, the trimmed query must contain 2-100 Unicode characters.","examples":["elliptic"],"maxLength":100,"minLength":2,"type":"string"}},{"description":"Inclusive event-time lower bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values start at 00:00:00 UTC.","explode":false,"in":"query","name":"from","schema":{"description":"Inclusive event-time lower bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values start at 00:00:00 UTC.","examples":["2026-07-01"],"type":"string"}},{"description":"Inclusive event-time upper bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values end at 23:59:59 UTC. Defaults to the current time.","explode":false,"in":"query","name":"to","schema":{"description":"Inclusive event-time upper bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values end at 23:59:59 UTC. Defaults to the current time.","examples":["2026-07-10"],"type":"string"}},{"description":"Filter by public source type: social or news.","explode":false,"in":"query","name":"source","schema":{"description":"Filter by public source type: social or news.","enum":["social","news"],"examples":["social"],"type":"string"}},{"description":"Display and search language. Missing translated fields fall back to English.","explode":false,"in":"query","name":"lang","schema":{"default":"en","description":"Display and search language. Missing translated fields fall back to English.","enum":["en","zh","ja","kr"],"examples":["en"],"type":"string"}},{"description":"Minimum importance score from 1 to 5. Omit to include unscored events.","explode":false,"in":"query","name":"min_importance","schema":{"description":"Minimum importance score from 1 to 5. Omit to include unscored events.","examples":[3],"format":"int64","maximum":5,"minimum":1,"type":"integer"}},{"description":"Sort by recency, query relevance, or importance. Relevance requires q.","explode":false,"in":"query","name":"sort_by","schema":{"default":"recency","description":"Sort by recency, query relevance, or importance. Relevance requires q.","enum":["recency","relevance","importance"],"examples":["recency"],"type":"string"}},{"description":"Sort order. Relevance only supports desc.","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order. Relevance only supports desc.","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Results per page.","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page.","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset. The offset plus limit cannot exceed 10000.","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset. The offset plus limit cannot exceed 10000.","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseFundraisingSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Fundraising Event Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/news":{"get":{"description":"Searches crypto news articles by keyword.\n\nReturns results ranked by relevance with highlighted matching fragments. Supports pagination via limit and offset.","operationId":"search-news","parameters":[{"description":"Search keyword or phrase","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Search keyword or phrase","examples":["bitcoin ETF"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":10,"description":"Results per page","examples":[10],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseNewsArticleItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"News Article Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/prediction-market":{"get":{"description":"Browse and search prediction markets across all supported platforms.\n\nFilter by platform, category, status, keyword search, and smart money direction. Each result includes volume, open interest, trade counts, and smart money signals.\n\nSupports single-market lookup via `condition_id` or `market_ticker`.\n\n**Data refresh:** ~5 minutes.","operationId":"search-prediction-market","parameters":[{"description":"Polymarket condition ID for single-market lookup","explode":false,"in":"query","name":"condition_id","schema":{"description":"Polymarket condition ID for single-market lookup","type":"string"}},{"description":"Kalshi market ticker for single-market lookup","explode":false,"in":"query","name":"market_ticker","schema":{"description":"Kalshi market ticker for single-market lookup","type":"string"}},{"description":"Filter by platform (omit for both)","explode":false,"in":"query","name":"platform","schema":{"description":"Filter by platform (omit for both)","enum":["polymarket","kalshi"],"type":"string"}},{"description":"Filter by Surf-curated category","explode":false,"in":"query","name":"category","schema":{"description":"Filter by Surf-curated category","enum":["crypto","culture","economics","financials","politics","stem","sports"],"type":"string"}},{"description":"Market status filter","explode":false,"in":"query","name":"status","schema":{"default":"active","description":"Market status filter","enum":["active","closed","finalized"],"type":"string"}},{"description":"Sort field","explode":false,"in":"query","name":"sort_by","schema":{"default":"volume_7d","description":"Sort field","enum":["volume_1d","volume_7d","volume_30d","open_interest","trade_count_7d","days_to_resolution"],"type":"string"}},{"description":"Sort direction","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort direction","enum":["asc","desc"],"type":"string"}},{"description":"Filter by smart money direction (Polymarket only)","explode":false,"in":"query","name":"smart_money","schema":{"description":"Filter by smart money direction (Polymarket only)","enum":["bullish","bearish"],"type":"string"}},{"description":"Search markets by keyword in question text or ticker. Results include slug and event fields when available, but machine slugs are not searched.","explode":false,"in":"query","name":"q","schema":{"description":"Search markets by keyword in question text or ticker. Results include slug and event fields when available, but machine slugs are not searched.","type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseDiscoverMarketItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Search Prediction Markets","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/project":{"get":{"description":"Searches crypto projects by keyword.\n\n**Included fields:** name, description, chains, logo.","operationId":"search-project","parameters":[{"description":"Search keyword — project name or ticker like `uniswap`, `bitcoin`, or `ETH`","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Search keyword — project name or ticker like `uniswap`, `bitcoin`, or `ETH`","examples":["bitcoin"],"maxLength":100,"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseProjectSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Project Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/token":{"get":{"description":"Resolves an exact token ticker symbol to likely contract address candidates on supported chains.\n\nUse this before calling token endpoints that require a contract address. Pass a returned `chain` + `address` only to endpoints that support that chain.\n\nResults are ranked by Surf registry, listing, and market signals. `volume_usd` is kept for response compatibility, always returns `0`, and must not be used as a candidate ordering signal.\n\n**Included fields:** symbol, chain, address, decimals, volume_usd.\n\n**Chains:** Ethereum, Base, BSC, Arbitrum, Solana, Polygon, Optimism, Avalanche, Fantom, Tron, Linea, Mantle, Blast, Gnosis, zkSync, Scroll.","operationId":"search-token","parameters":[{"description":"Exact token ticker symbol to resolve (case-insensitive), like `USDC` or `PEPE`. NOT a contract address, trading pair, or fuzzy token name.","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Exact token ticker symbol to resolve (case-insensitive), like `USDC` or `PEPE`. NOT a contract address, trading pair, or fuzzy token name.","examples":["USDC"],"maxLength":50,"type":"string"}},{"description":"Restrict resolution to one supported chain. Omit to search all supported chains.","explode":false,"in":"query","name":"chain","schema":{"description":"Restrict resolution to one supported chain. Omit to search all supported chains.","enum":["ethereum","base","bsc","arbitrum","solana","polygon","optimism","avalanche","fantom","tron","linea","mantle","blast","gnosis","zksync","scroll"],"examples":["solana"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseSearchTokenItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Symbol Resolution","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/wallet":{"get":{"description":"Searches wallets by ENS name, address label, or address prefix.\n\nReturns matching wallet addresses with entity labels.","operationId":"search-wallet","parameters":[{"description":"Search keyword like `binance`, `vitalik.eth`, or `0xd8dA...`","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Search keyword like `binance`, `vitalik.eth`, or `0xd8dA...`","examples":["vitalik.eth"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletSearchItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet Search","tags":["Search"],"x-required-scopes":["data:read"]}},"/gateway/v1/search/web":{"get":{"description":"Searches web pages, articles, and content by keyword.\n\n**Filters:** domain via `site` (e.g. `coindesk.com`).\n\n**Included fields:** titles, URLs, content snippets.","operationId":"search-web","parameters":[{"description":"Search query like `bitcoin price prediction 2026`","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"Search query like `bitcoin price prediction 2026`","examples":["bitcoin price prediction 2026"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated domain filter like `coindesk.com` or `cointelegraph.com`","explode":false,"in":"query","name":"site","schema":{"description":"Comma-separated domain filter like `coindesk.com` or `cointelegraph.com`","examples":["coindesk.com,cointelegraph.com"],"type":"string"}},{"description":"When false (default), search returns title/url/description only — fast (~2-3s) URL discovery. Set true to also include full markdown content for each result (~5-30KB per result, ~10-15s for limit=5). Use true only when the caller needs page content inline and won't follow up with `/web/fetch`.","explode":false,"in":"query","name":"include_content","schema":{"default":false,"description":"When false (default), search returns title/url/description only — fast (~2-3s) URL discovery. Set true to also include full markdown content for each result (~5-30KB per result, ~10-15s for limit=5). Use true only when the caller needs page content inline and won't follow up with `/web/fetch`.","examples":[false],"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWebSearchResultItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Web Search","tags":["Search"],"x-agent-views":{"results":{"command_example":"surf search-web --q \"bitcoin price prediction 2026\" --agent-view results","description":"Compact search results for agents; strips raw page content and returns title, description, and URL.","output":{"items":{"fields":{"description":"string|null","title":"string|null","url":"string|null"},"type":"object"},"type":"array"}}},"x-required-scopes":["data:read"]}},"/gateway/v1/token/dex-trades":{"get":{"description":"Returns recent DEX swap events for a token contract address.\n\n**Covered DEXes:** `uniswap`, `sushiswap`, `curve`, `balancer`, `pancakeswap` (and other major DEXes per chain).\n\n**Included fields:** trading pair, amounts, USD value, taker address.\n\n**Data refresh:** ~24 hours · **Chains:** Ethereum, Base, BSC, Arbitrum, Tron","operationId":"token-dex-trades","parameters":[{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex (EVM chains only; Tron also accepts base58 `T...`). This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex (EVM chains only; Tron also accepts base58 `T...`). This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","examples":["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"type":"string"}},{"description":"Chain. Can be `ethereum`, `base`, `bsc`, `arbitrum`, or `tron`.","explode":false,"in":"query","name":"chain","schema":{"default":"ethereum","description":"Chain. Can be `ethereum`, `base`, `bsc`, `arbitrum`, or `tron`.","enum":["ethereum","base","bsc","arbitrum","tron"],"examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated enrichments to attach to each trade. Currently valid: `labels` — adds a `taker_label` field with entity information for the taker address.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach to each trade. Currently valid: `labels` — adds a `taker_label` field with entity information for the taker address.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseDexTradeItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token DEX Trade History","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/token/holders":{"get":{"description":"Returns top token holders for a contract address.\n\n**Included fields:** wallet address, balance, and percentage.\n\n**Lookup:** by `address` and `chain`. Supports EVM chains and Solana.","operationId":"token-holders","parameters":[{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex for EVM chains, base58 for Solana. This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex for EVM chains, base58 for Solana. This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","examples":["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"type":"string"}},{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `solana`, `avalanche`, `arbitrum`, `optimism`, or `base`.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain. Can be `ethereum`, `polygon`, `bsc`, `solana`, `avalanche`, `arbitrum`, `optimism`, or `base`.","enum":["ethereum","polygon","bsc","solana","avalanche","arbitrum","optimism","base"],"examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated enrichments to attach to each holder. Currently valid: `labels` — adds a full `label` record alongside the flat `entity_name` / `entity_type` fields.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach to each holder. Currently valid: `labels` — adds a full `label` record alongside the flat `entity_name` / `entity_type` fields.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseTokenHolderItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Holders","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/token/tokenomics":{"get":{"description":"Returns token unlock time-series with cumulative amounts, allocation breakdowns, total supply denominator, and unlocked-supply percentage.\n\n**Lookup:** by project UUID (`id`) or token `symbol`. Filter by date range with `from`/`to` — defaults to the current calendar month when omitted.\n\n**Important:** `unlock_amount` is a legacy alias for `cumulative_unlocked_amount`; it is already cumulative at each timestamp and must not be summed across rows. Use `unlocked_percentage_of_total_supply` for the unlock ratio.\n\nReturns 404 if no token found.","operationId":"token-tokenomics","parameters":[{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response. Takes priority over symbol.","explode":false,"in":"query","name":"id","schema":{"description":"Surf project UUID. PREFERRED — always use this when available from a previous response. Takes priority over symbol.","examples":["25c6612a-395c-4974-94eb-3b5f9f4b2ed7"],"type":"string"}},{"description":"Token symbol like `ARB`, `OP`, or `APT`","explode":false,"in":"query","name":"symbol","schema":{"description":"Token symbol like `ARB`, `OP`, or `APT`","examples":["ARB"],"type":"string"}},{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","explode":false,"in":"query","name":"from","schema":{"description":"Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`)","examples":["2024-01-01"],"type":"string"}},{"description":"End of time range. Accepts Unix seconds (`1735689600`) or date string (`2025-01-01`)","explode":false,"in":"query","name":"to","schema":{"description":"End of time range. Accepts Unix seconds (`1735689600`) or date string (`2025-01-01`)","examples":["2025-01-01"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseTokenUnlockPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Unlock Schedule","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/token/transfer-counterparties":{"get":{"description":"Ranked top counterparties (receivers or senders) of a token over a window — answers \"who are the top receivers/senders?\".\n\n**Lookup:** `address` (token contract) + `chain` + `direction` (`to` = top receivers, `from` = top senders). Rank by `metric` (`count`, `amount`, `amount_usd`).\n\n**Related:** raw rows → `/v1/token/transfers`; aggregate summary → `/v1/token/transfer-stats`.\n\n**Chains:** Ethereum, Base, BSC, Arbitrum, Tron · **Refresh:** ~24h","operationId":"token-transfer-counterparties","parameters":[{"description":"Token CONTRACT ADDRESS (0x-hex for EVM; Tron accepts base58 `T...` or 0x-hex). Not a ticker — resolve a symbol via GET /v1/search/token?q={symbol}&chain={chain} and use a returned address whose chain is supported by this endpoint.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token CONTRACT ADDRESS (0x-hex for EVM; Tron accepts base58 `T...` or 0x-hex). Not a ticker — resolve a symbol via GET /v1/search/token?q={symbol}&chain={chain} and use a returned address whose chain is supported by this endpoint.","examples":["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"type":"string"}},{"description":"Chain the token contract is deployed on.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain the token contract is deployed on.","enum":["ethereum","base","bsc","arbitrum","tron"],"examples":["ethereum"],"type":"string"}},{"description":"Ranking direction: `to` = top receivers, `from` = top senders.","explode":false,"in":"query","name":"direction","required":true,"schema":{"description":"Ranking direction: `to` = top receivers, `from` = top senders.","enum":["to","from"],"examples":["to"],"type":"string"}},{"description":"Ranking key: `count` = transfer frequency, `amount` = decimal-adjusted token sum, `amount_usd` = USD value sum (USD lags ~3 days; unreliable for recent windows).","explode":false,"in":"query","name":"metric","schema":{"default":"count","description":"Ranking key: `count` = transfer frequency, `amount` = decimal-adjusted token sum, `amount_usd` = USD value sum (USD lags ~3 days; unreliable for recent windows).","enum":["count","amount","amount_usd"],"type":"string"}},{"description":"Look-back window (hard 90d cap).","explode":false,"in":"query","name":"time_range","schema":{"default":"7d","description":"Look-back window (hard 90d cap).","enum":["1d","7d","30d","90d"],"type":"string"}},{"description":"Results per page.","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page.","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset.","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset.","format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated enrichments. `labels` attaches an entity label per counterparty.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments. `labels` attaches an entity label per counterparty.","examples":["labels"],"type":"string"}},{"description":"Comma-separated entity categories to drop (best-effort): `cex`, `router`, `amm`, `bridge`. Results may be fewer than `limit` when top counterparties are infrastructure.","explode":false,"in":"query","name":"exclude_labels","schema":{"description":"Comma-separated entity categories to drop (best-effort): `cex`, `router`, `amm`, `bridge`. Results may be fewer than `limit` when top counterparties are infrastructure.","examples":["cex,router"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseTransferCounterpartyItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Top Transfer Counterparties","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/token/transfer-stats":{"get":{"description":"Aggregate transfer-activity summary for a token over a window — total transfers, unique senders/receivers, total amount, first/last activity, and an optional daily series (`include=series`).\n\n**Lookup:** `address` (token contract) + `chain`.\n\n**Related:** per-counterparty ranking → `/v1/token/transfer-counterparties`; raw rows → `/v1/token/transfers`.\n\n**Chains:** Ethereum, Base, BSC, Arbitrum, Tron · **Refresh:** ~24h · USD value lags ~3 days (see `enriched_ratio`).","operationId":"token-transfer-stats","parameters":[{"description":"Token CONTRACT ADDRESS (0x-hex for EVM; Tron accepts base58 `T...` or 0x-hex). Not a ticker — resolve a symbol via GET /v1/search/token?q={symbol}&chain={chain} and use a returned address whose chain is supported by this endpoint.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token CONTRACT ADDRESS (0x-hex for EVM; Tron accepts base58 `T...` or 0x-hex). Not a ticker — resolve a symbol via GET /v1/search/token?q={symbol}&chain={chain} and use a returned address whose chain is supported by this endpoint.","examples":["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"type":"string"}},{"description":"Chain the token contract is deployed on.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain the token contract is deployed on.","enum":["ethereum","base","bsc","arbitrum","tron"],"examples":["ethereum"],"type":"string"}},{"description":"Look-back window (hard 90d cap).","explode":false,"in":"query","name":"time_range","schema":{"default":"7d","description":"Look-back window (hard 90d cap).","enum":["1d","7d","30d","90d"],"type":"string"}},{"description":"Comma-separated extras. `series` adds a daily trend breakdown (volume only).","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated extras. `series` adds a daily trend breakdown (volume only).","examples":["series"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferStatsResponse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Transfer Activity Summary","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/token/transfers":{"get":{"description":"Returns recent transfer events **for a specific token** (ERC-20/TRC-20 contract).\n\nPass the **token contract address** in `address` — returns every on-chain transfer of that token regardless of sender/receiver.\n\n**Included fields:** sender, receiver, raw amount, block timestamp.\n\nUse this to analyze a token's on-chain activity (e.g. large movements, distribution patterns).\n\n**Lookup:** `address` (token contract) + `chain`. Sort by `asc` or `desc`.\n\n**Data refresh:** ~24 hours · **Chains:** Ethereum, Base, BSC, Arbitrum, Tron (Solana uses a different source with no delay)","operationId":"token-transfers","parameters":[{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex for EVM chains, base58 for Solana. This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Token CONTRACT ADDRESS — 0x-prefixed hex for EVM chains, base58 for Solana. This is NOT a ticker symbol (e.g. do NOT pass `USDC` or `BTC`). To resolve a ticker symbol to a contract address, call GET /v1/search/token?q={symbol}&chain={chain} and use the `address` whose `chain` is supported by this endpoint. This endpoint has no `symbol` parameter.","examples":["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],"type":"string"}},{"description":"Chain. Can be `ethereum`, `base`, `solana`, `tron`, `bsc`, or `arbitrum`.","explode":false,"in":"query","name":"chain","required":true,"schema":{"description":"Chain. Can be `ethereum`, `base`, `solana`, `tron`, `bsc`, or `arbitrum`.","enum":["ethereum","base","solana","tron","bsc","arbitrum"],"examples":["ethereum"],"type":"string"}},{"description":"Start of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to 30 days ago.","explode":false,"in":"query","name":"from","schema":{"description":"Start of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to 30 days ago.","examples":["2025-01-01"],"type":"string"}},{"description":"End of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to today.","explode":false,"in":"query","name":"to","schema":{"description":"End of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to today.","examples":["2025-03-01"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated enrichments to attach to each transfer. Currently valid: `labels` — adds `from_label` and `to_label` fields.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach to each transfer. Currently valid: `labels` — adds `from_label` and `to_label` fields.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseTokenTransferItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Token Transfer History","tags":["Token"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/detail":{"get":{"description":"Returns a wallet's cross-chain portfolio with selectable sub-resources (balance, tokens, labels, NFTs). Always includes per-chain USD breakdown across 15+ EVM chains.\n\n**Available fields** (via `fields`): `balance`, `tokens`, `labels`, `nft`.\n\n**Lookup:** by `address`. Partial failures return available fields with per-field error info. Returns 422 if `fields` is invalid.","operationId":"wallet-detail","parameters":[{"description":"Wallet address (0x hex for EVM, base58 for Solana)","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address (0x hex for EVM, base58 for Solana)","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}},{"description":"Chain filter for `tokens`, `nft`, and `approvals`. When omitted, inferred from address format: 0x addresses query all EVM chains, base58 addresses query Solana.","explode":false,"in":"query","name":"chain","schema":{"description":"Chain filter for `tokens`, `nft`, and `approvals`. When omitted, inferred from address format: 0x addresses query all EVM chains, base58 addresses query Solana.","enum":["ethereum","polygon","bsc","avalanche","arbitrum","optimism","fantom","base","solana"],"examples":["ethereum"],"type":"string"}},{"description":"Comma-separated sub-resources to include. Valid: `balance`, `tokens`, `labels`, `nft`, `approvals`. The `active_chains` field is always returned. `approvals` is opt-in (not in default) as it triggers additional upstream calls.","explode":false,"in":"query","name":"fields","schema":{"default":"balance,tokens,labels,nft","description":"Comma-separated sub-resources to include. Valid: `balance`, `tokens`, `labels`, `nft`, `approvals`. The `active_chains` field is always returned. `approvals` is opt-in (not in default) as it triggers additional upstream calls.","examples":["balance,labels,approvals"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseWalletDetailBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Aggregated Wallet Detail","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/history":{"get":{"description":"Returns all on-chain transactions for a wallet, classified by type (send, receive, swap, approve) with native token value. For ERC-20 token transfers with token identity and USD value, use `wallet-transfers` instead.\n\n**Lookup:** by `address`. Filter by `chain` — supports `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `avalanche`, `fantom`, `base`.","operationId":"wallet-history","parameters":[{"description":"Wallet address — must be a raw 0x-prefixed hex address, not an ENS name","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address — must be a raw 0x-prefixed hex address, not an ENS name","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}},{"description":"Chain filter. Can be `ethereum`, `polygon`, `bsc`, `avalanche`, `arbitrum`, `optimism`, `fantom`, or `base`.","explode":false,"in":"query","name":"chain","schema":{"default":"ethereum","description":"Chain filter. Can be `ethereum`, `polygon`, `bsc`, `avalanche`, `arbitrum`, `optimism`, `fantom`, or `base`.","enum":["ethereum","polygon","bsc","avalanche","arbitrum","optimism","fantom","base"],"examples":["ethereum"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset. This feed is cursor-paginated upstream and only the most recent ~1000 transactions are reachable; a larger offset returns an empty page with meta.empty_reason rather than an error. For deep history prefer the `before` cursor — its upstream cost is bounded by `limit` and independent of depth, whereas a large offset is emulated by walking the whole feed.","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset. This feed is cursor-paginated upstream and only the most recent ~1000 transactions are reachable; a larger offset returns an empty page with meta.empty_reason rather than an error. For deep history prefer the `before` cursor — its upstream cost is bounded by `limit` and independent of depth, whereas a large offset is emulated by walking the whole feed.","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Cursor for efficient deep pagination: return transactions strictly older than this Unix-seconds timestamp (exclusive). Pass the `timestamp` of the last item from the previous page; if items may share a second, pass that timestamp + 1 and de-duplicate on `tx_hash`. Unlike `offset` (which walks the feed), the number of upstream fetches is bounded by `limit` (DeBank returns up to 20 per page) and independent of how far back you page. Mutually exclusive with `offset`.","explode":false,"in":"query","name":"before","schema":{"description":"Cursor for efficient deep pagination: return transactions strictly older than this Unix-seconds timestamp (exclusive). Pass the `timestamp` of the last item from the previous page; if items may share a second, pass that timestamp + 1 and de-duplicate on `tx_hash`. Unlike `offset` (which walks the feed), the number of upstream fetches is bounded by `limit` (DeBank returns up to 20 per page) and independent of how far back you page. Mutually exclusive with `offset`.","examples":[1704067200],"format":"int64","minimum":0,"type":"integer"}},{"description":"Field to sort results by. The cursor-paginated upstream feed only supports `timestamp` correctly; unsupported values are rejected by the handler for correctness.","explode":false,"in":"query","name":"sort_by","schema":{"default":"timestamp","description":"Field to sort results by. The cursor-paginated upstream feed only supports `timestamp` correctly; unsupported values are rejected by the handler for correctness.","enum":["timestamp","value"],"examples":["timestamp"],"type":"string"}},{"description":"Sort order. The cursor-paginated upstream feed only supports `desc` correctly; unsupported values are rejected by the handler for correctness.","explode":false,"in":"query","name":"order","schema":{"default":"desc","description":"Sort order. The cursor-paginated upstream feed only supports `desc` correctly; unsupported values are rejected by the handler for correctness.","enum":["asc","desc"],"examples":["desc"],"type":"string"}},{"description":"Comma-separated enrichments to attach to each item. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach to each item. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletHistoryItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet Transaction History","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/labels/batch":{"get":{"description":"Returns entity labels for multiple wallet addresses.\n\nPass up to 100 comma-separated addresses via the `addresses` query parameter.\n\n**Included fields:** entity name, type, and labels per address.","operationId":"wallet-labels-batch","parameters":[{"description":"Comma-separated wallet addresses to look up, max 100","explode":false,"in":"query","name":"addresses","required":true,"schema":{"description":"Comma-separated wallet addresses to look up, max 100","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045,0xdead"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletLabelItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet Labels (Batch)","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/net-worth":{"get":{"description":"Returns a time-series of the wallet's total net worth in USD.\n\nReturns ~288 data points at 5-minute intervals covering the last 24 hours. Fixed window — no custom time range supported.\n\n**Lookup:** by `address` (EVM only — 0x-prefixed hex). Solana addresses are not supported.","operationId":"wallet-net-worth","parameters":[{"description":"Wallet address — must be a raw 0x-prefixed hex address (EVM only). Solana and ENS names are not supported.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address — must be a raw 0x-prefixed hex address (EVM only). Solana and ENS names are not supported.","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletNetWorthPoint"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet Net Worth History","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/protocols":{"get":{"description":"Returns all DeFi protocol positions for a wallet — lending, staking, LP, and farming with token breakdowns and USD values.\n\n**Lookup:** by `address` (EVM only — 0x-prefixed hex). Solana addresses are not supported.","operationId":"wallet-protocols","parameters":[{"description":"Wallet address — must be a raw 0x-prefixed hex address, not an ENS name","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address — must be a raw 0x-prefixed hex address, not an ENS name","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}},{"description":"Results per page","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset","examples":[0],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletProtocolItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet DeFi Protocol Positions","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/wallet/transfers":{"get":{"description":"Returns ERC-20/SPL token transfers with token identity, USD value, and flow direction (in/out). Unlike `wallet-history` which shows all tx types in native value, this focuses on token-level transfer activity.\n\nPass the **wallet address** in `address` — returns all ERC-20/SPL token transfers where this wallet is the sender or receiver.\n\n**Included fields:** token contract, token symbol, amount USD, counterparty, flow direction.\n\nFilter by specific token or flow direction (in/out).\n\n**Lookup:** `address` (wallet, raw 0x hex or base58 — ENS not supported). Filter by `chain` — supports `ethereum`, `base`, `bsc`, `arbitrum`, `tron`, `solana`.\n\n**Data refresh:** ~24 hours · **Chains:** Ethereum, Base, BSC, Arbitrum, Tron (Solana uses a different source with no delay)","operationId":"wallet-transfers","parameters":[{"description":"Wallet address — must be a raw address (0x-prefixed hex for EVM, base58 for Solana). ENS names like `vitalik.eth` are not supported; resolve to a 0x address first.","explode":false,"in":"query","name":"address","required":true,"schema":{"description":"Wallet address — must be a raw address (0x-prefixed hex for EVM, base58 for Solana). ENS names like `vitalik.eth` are not supported; resolve to a 0x address first.","examples":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],"type":"string"}},{"description":"Chain. Can be `ethereum`, `base`, `solana`, `tron`, `bsc`, or `arbitrum`.","explode":false,"in":"query","name":"chain","schema":{"default":"ethereum","description":"Chain. Can be `ethereum`, `base`, `solana`, `tron`, `bsc`, or `arbitrum`.","enum":["ethereum","base","solana","tron","bsc","arbitrum"],"examples":["ethereum"],"type":"string"}},{"description":"Filter by transfer direction relative to the queried wallet. `in` for incoming, `out` for outgoing. Omit for both directions.","explode":false,"in":"query","name":"flow","schema":{"description":"Filter by transfer direction relative to the queried wallet. `in` for incoming, `out` for outgoing. Omit for both directions.","enum":["in","out"],"examples":["in"],"type":"string"}},{"description":"Filter by token contract address. Use `0x0000000000000000000000000000000000000000` for native token transfers. Omit for all tokens.","explode":false,"in":"query","name":"token","schema":{"description":"Filter by token contract address. Use `0x0000000000000000000000000000000000000000` for native token transfers. Omit for all tokens.","examples":["0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"],"type":"string"}},{"description":"Results per page. Default 20, max 100. NOTE: Solana (`chain=solana`) is hard-capped at 40 per call by the upstream Solscan API — values above 40 return at most 40 items. Check `meta.has_more` and paginate with `offset` to fetch beyond the first page.","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"Results per page. Default 20, max 100. NOTE: Solana (`chain=solana`) is hard-capped at 40 per call by the upstream Solscan API — values above 40 return at most 40 items. Check `meta.has_more` and paginate with `offset` to fetch beyond the first page.","examples":[20],"format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Pagination offset. For Solana, this maps to Solscan's 1-indexed `page` parameter (page = offset/page_size + 1).","explode":false,"in":"query","name":"offset","schema":{"default":0,"description":"Pagination offset. For Solana, this maps to Solscan's 1-indexed `page` parameter (page = offset/page_size + 1).","examples":[0],"format":"int64","minimum":0,"type":"integer"}},{"description":"Comma-separated enrichments to attach to each transfer. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address.","explode":false,"in":"query","name":"include","schema":{"description":"Comma-separated enrichments to attach to each transfer. Currently valid: `labels` — adds `from_label` and `to_label` fields with entity information for each counterparty address.","examples":["labels"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseWalletTransferItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Wallet Transfer History","tags":["Wallet"],"x-required-scopes":["data:read"]}},"/gateway/v1/web/fetch":{"get":{"description":"Fetches a web page and converts it to clean, LLM-friendly markdown.\n\n**Options:**\n- `target_selector` — extract specific page sections\n- `remove_selector` — strip unwanted elements\n\nReturns 400 if the URL is invalid or unreachable.","operationId":"web-fetch","parameters":[{"description":"URL to fetch and parse","explode":false,"in":"query","name":"url","required":true,"schema":{"description":"URL to fetch and parse","examples":["https://ethereum.org"],"type":"string"}},{"description":"CSS selector to extract specific content","explode":false,"in":"query","name":"target_selector","schema":{"description":"CSS selector to extract specific content","examples":["article.main-content"],"type":"string"}},{"description":"CSS selector to remove unwanted elements","explode":false,"in":"query","name":"remove_selector","schema":{"description":"CSS selector to remove unwanted elements","examples":["nav,footer,.ads"],"type":"string"}},{"description":"CSS selector to wait for before extracting","explode":false,"in":"query","name":"wait_for_selector","schema":{"description":"CSS selector to wait for before extracting","examples":[".content-loaded"],"type":"string"}},{"description":"Request timeout in milliseconds","explode":false,"in":"query","name":"timeout","schema":{"default":30000,"description":"Request timeout in milliseconds","examples":[5000],"format":"int64","maximum":60000,"minimum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataObjectResponseWebFetchResultItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"Web Page Fetch","tags":["Web"],"x-required-scopes":["data:read"]}},"/gateway/v1/x/tweets":{"get":{"description":"Returns normalized X posts by numeric ID. Authentication is required. Each request costs at least 7 credits per unique requested ID; the actual cost reflects plan and tenant pricing. Repeated IDs are billed and looked up once. Unavailable IDs are billed and omitted from `data`; returned posts preserve first-input order.","operationId":"x-tweets","parameters":[{"description":"Comma-separated numeric tweet IDs, from 1 to 100 values; each ID must contain 1 to 19 digits without leading zeros","explode":false,"in":"query","name":"ids","required":true,"schema":{"description":"Comma-separated numeric tweet IDs, from 1 to 100 values; each ID must contain 1 to 19 digits without leading zeros","examples":["1228393702244134912"],"maxLength":1999,"minLength":1,"pattern":"^(0|[1-9][0-9]*)(,(0|[1-9][0-9]*))*$","patternDescription":"comma-separated canonical numeric tweet IDs","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResponseXTweet"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataAPIError"}}},"description":"Error"}},"security":[{"AccessToken":[]}],"summary":"X Tweets by IDs","tags":["X"],"x-required-scopes":["data:read"]}}},"servers":[{"url":"https://api.asksurf.ai","description":"AskSurf public API gateway"}],"tags":[{"description":"Access real-time trading data from major exchanges including Binance, OKX, Bybit, and more. Query live ticker prices, order book depth, OHLCV candlestick charts, and perpetual contract data such as funding rates, open interest, and long/short ratios.","name":"Exchange"},{"description":"Get a high-level view of the crypto market. Browse token rankings by market cap or volume, track derivatives across all exchanges, monitor spot ETF fund flows, view liquidation events, compute technical indicators (RSI, MACD, Bollinger Bands, and more), explore on-chain valuation metrics (NUPL, MVRV, SOPR), and check the Fear & Greed Index.","name":"Market"},{"description":"Analyze individual tokens on-chain. Look up top holders and their share of supply, track ERC-20/SPL token transfers, browse DEX swap history, and view upcoming token unlock schedules with allocation breakdowns.","name":"Token"},{"description":"Research crypto projects in depth. Retrieve aggregated project profiles covering overview, team, funding rounds, tokenomics, social links, and TGE status. Track DeFi protocol metrics like TVL, fees, revenue, trading volume, and active users over time.","name":"Project"},{"description":"Retrieve X posts and author details by numeric post ID.","name":"X"},{"description":"Stay up to date with crypto news. Browse the latest articles from major crypto media outlets, read full article content, and search across all sources by keyword.","name":"News"},{"description":"Inspect any wallet on Ethereum, Base, Solana, and other chains. View token balances, NFT holdings, entity labels, transfer history, full transaction logs, DeFi protocol positions (lending, staking, LP), and net worth trends over time.","name":"Wallet"},{"description":"Query blockchain data directly. Look up transaction details by hash, check gas prices, and run structured or raw SQL queries against indexed blockchain datasets spanning Ethereum, Base, Solana, and more.","name":"Onchain"},{"description":"Fetch and search web content. Retrieve any URL and convert it to clean, LLM-friendly markdown, or search the internet for crypto-related articles, reports, and resources.","name":"Web"},{"description":"Find anything across Surf's data universe. Search for crypto projects, news articles, wallet addresses, web pages, investment funds, airdrop opportunities, and prediction market events — all from a single unified search interface.","name":"Search"},{"description":"Explore crypto venture capital. Look up fund profiles with team info and social links, browse their full investment portfolio with round details, and rank funds by tier or portfolio size.","name":"Fund"},{"description":"Explore ranked project signal score snapshots, token-of-day/week highlights, and project-level signal cards with latest price, price-change, dimension scores, compact signals, and AI summaries.","name":"Signal"},{"description":"Track prediction markets on Polymarket and Kalshi. Browse events and markets, view live prices and odds, analyze trading volume and open interest history, inspect individual trades, and discover top-ranked markets by activity.","name":"Prediction Market"}],"x-equity-metric-definitions":{"accumulated_oci":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"累计其他综合收益","formula":"accumulated_other_comprehensive_income","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"accumulated_oci","name":"Accumulated Other Comprehensive Income","periods":["quarterly","annual"],"unit":"currency"},"asset_turnover":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"资产周转率","formula":"asset_turnover","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"asset_turnover","name":"Asset Turnover","periods":["quarterly","annual","ttm"],"unit":"ratio"},"beginning_cash":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"cash_flow","display_kind":"amount","display_name":"期初现金","formula":"prior_contiguous_ending_cash","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"beginning_cash","name":"Beginning Cash","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"book_value_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"账面价值增长率","formula":"book_value_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"book_value_growth","name":"Book Value Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"book_value_per_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"amount_per_share","display_name":"每股净资产","formula":"book_value_per_share","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"book_value_per_share","name":"Book Value per Share","periods":["quarterly","annual","ttm"],"unit":"currency_per_share"},"business_acquisitions_and_disposals":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"并购及业务处置","formula":"business_acquisitions_and_disposals","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"business_acquisitions_and_disposals","name":"Business Acquisitions and Disposals","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"capital_expenditure":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"资本开支","formula":"capital_expenditure","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"capital_expenditure","name":"Capital Expenditure","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"cash_and_equivalents":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"现金及现金等价物","formula":"cash_and_equivalents","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"cash_and_equivalents","name":"Cash and Equivalents","periods":["quarterly","annual"],"unit":"currency"},"cash_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"现金比率","formula":"cash_ratio","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"cash_ratio","name":"Cash Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"change_in_cash":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"现金净增加额","formula":"change_in_cash_and_equivalents","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"change_in_cash","name":"Change in Cash","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"change_in_cash_per_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"amount_per_share","display_name":"每股现金净增加额","formula":"safe_divide(change_in_cash, applicable_weighted_average_shares)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"change_in_cash_per_share","name":"Change in Cash per Share","periods":["quarterly","annual","ttm"],"unit":"currency_per_share"},"cost_of_revenue":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"营业成本","formula":"cost_of_revenue","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"cost_of_revenue","name":"Cost of Revenue","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"current_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"流动资产合计","formula":"current_assets","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"current_assets","name":"Current Assets","periods":["quarterly","annual"],"unit":"currency"},"current_debt":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"短期债务","formula":"current_debt","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"current_debt","name":"Current Debt","periods":["quarterly","annual"],"unit":"currency"},"current_investments":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"短期投资","formula":"current_investments","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"current_investments","name":"Current Investments","periods":["quarterly","annual"],"unit":"currency"},"current_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"流动负债合计","formula":"current_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"current_liabilities","name":"Current Liabilities","periods":["quarterly","annual"],"unit":"currency"},"current_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"流动比率","formula":"current_ratio","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"current_ratio","name":"Current Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"days_sales_outstanding":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"days","display_name":"DSO","formula":"days_sales_outstanding","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"days_sales_outstanding","name":"Days Sales Outstanding","periods":["quarterly","annual","ttm"],"unit":"days"},"debt_issuance_repayment":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"债务发行及偿还净额","formula":"issuance_or_repayment_of_debt_securities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"debt_issuance_repayment","name":"Debt Issuance and Repayment","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"debt_to_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"债务资产比","formula":"debt_to_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"debt_to_assets","name":"Debt to Assets","periods":["quarterly","annual","ttm"],"unit":"ratio"},"debt_to_equity":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"债务权益比","formula":"debt_to_equity","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"debt_to_equity","name":"Debt to Equity","periods":["quarterly","annual","ttm"],"unit":"ratio"},"deferred_revenue":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"递延收入","formula":"deferred_revenue","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"deferred_revenue","name":"Deferred Revenue","periods":["quarterly","annual"],"unit":"currency"},"deposit_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"存款负债","formula":"deposit_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"deposit_liabilities","name":"Deposit Liabilities","periods":["quarterly","annual"],"unit":"currency"},"depreciation_and_amortization":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"折旧与摊销","formula":"depreciation_and_amortization","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"depreciation_and_amortization","name":"Depreciation and Amortization","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"dividends_and_distributions":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"股息及其他分配","formula":"dividends_and_other_cash_distributions","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"dividends_and_distributions","name":"Dividends and Distributions","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"dividends_per_common_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount_per_share","display_name":"每股股息","formula":"dividends_per_common_share","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"dividends_per_common_share","name":"Dividends per Common Share","periods":["quarterly","ytd","annual","ttm"],"unit":"currency_per_share"},"earnings_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"净利润增长率","formula":"earnings_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"earnings_growth","name":"Earnings Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"earnings_per_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"amount_per_share","display_name":"EPS","formula":"earnings_per_share","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"earnings_per_share","name":"Earnings per Share","periods":["quarterly","annual","ttm"],"unit":"currency_per_share"},"earnings_per_share_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"EPS 增长率","formula":"earnings_per_share_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"earnings_per_share_growth","name":"EPS Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"ebit":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"息税前利润","formula":"ebit","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"ebit","name":"EBIT","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"ebit_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"EBIT 利润率","formula":"safe_divide(ebit, revenue)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"ebit_margin","name":"EBIT Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"ebitda":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"amount","display_name":"息税折旧摊销前利润","formula":"ebit + depreciation_and_amortization","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"ebitda","name":"EBITDA","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"ebitda_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"EBITDA 增长率","formula":"ebitda_growth","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"ebitda_growth","name":"EBITDA Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"ebitda_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"EBITDA 利润率","formula":"safe_divide(ebitda, revenue)","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"ebitda_margin","name":"EBITDA Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"ending_cash":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"期末现金","formula":"ending_cash_balance","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"ending_cash","name":"Ending Cash","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"enterprise_value":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"amount","display_name":"企业价值","formula":"enterprise_value","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"enterprise_value","name":"Enterprise Value","periods":["quarterly","annual","ttm"],"unit":"currency"},"enterprise_value_to_ebitda_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"EV/EBITDA","formula":"enterprise_value_to_ebitda_ratio","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"enterprise_value_to_ebitda_ratio","name":"EV to EBITDA","periods":["quarterly","annual","ttm"],"unit":"ratio"},"enterprise_value_to_revenue_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"EV/Revenue","formula":"enterprise_value_to_revenue_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"enterprise_value_to_revenue_ratio","name":"EV to Revenue","periods":["quarterly","annual","ttm"],"unit":"ratio"},"eps_basic":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"amount_per_share","display_name":"基本 EPS","formula":"reported EPS or net_income_common_stock / weighted_average_shares","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"eps_basic","name":"Basic EPS","periods":["quarterly","ytd","annual","ttm"],"unit":"currency_per_share"},"eps_diluted":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"amount_per_share","display_name":"稀释 EPS","formula":"reported diluted EPS or net_income_common_stock / weighted_average_shares_diluted","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"eps_diluted","name":"Diluted EPS","periods":["quarterly","ytd","annual","ttm"],"unit":"currency_per_share"},"equity_issuance_purchase":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"股票发行及回购净额","formula":"issuance_or_purchase_of_equity_shares","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"equity_issuance_purchase","name":"Equity Issuance and Purchase","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"financing_cash_flow":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"筹资活动现金流净额","formula":"net_cash_flow_from_financing","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"financing_cash_flow","name":"Financing Cash Flow","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"free_cash_flow":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"自由现金流","formula":"free_cash_flow","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"free_cash_flow","name":"Free Cash Flow","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"free_cash_flow_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"FCF 增长率","formula":"free_cash_flow_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"free_cash_flow_growth","name":"Free Cash Flow Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"free_cash_flow_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"自由现金流利润率","formula":"free_cash_flow / revenue","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"free_cash_flow_margin","name":"Free Cash Flow Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"free_cash_flow_per_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"amount_per_share","display_name":"每股自由现金流","formula":"free_cash_flow_per_share","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"free_cash_flow_per_share","name":"Free Cash Flow per Share","periods":["quarterly","annual","ttm"],"unit":"currency_per_share"},"free_cash_flow_yield":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"自由现金流收益率","formula":"free_cash_flow_yield","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"free_cash_flow_yield","name":"Free Cash Flow Yield","periods":["quarterly","annual","ttm"],"unit":"ratio"},"fx_effect":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"汇率变动影响","formula":"effect_of_exchange_rate_changes","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"fx_effect","name":"Foreign Exchange Effect","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"goodwill_and_intangible_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"商誉及无形资产","formula":"goodwill_and_intangible_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"goodwill_and_intangible_assets","name":"Goodwill and Intangible Assets","periods":["quarterly","annual"],"unit":"currency"},"gross_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"毛利率","formula":"gross_margin","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"gross_margin","name":"Gross Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"gross_profit":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"毛利润","formula":"gross_profit","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"gross_profit","name":"Gross Profit","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"income_tax_expense":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"所得税","formula":"income_tax_expense","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"income_tax_expense","name":"Income Tax Expense","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"interest_coverage":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"利息保障倍数","formula":"interest_coverage","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"interest_coverage","name":"Interest Coverage","periods":["quarterly","annual","ttm"],"unit":"ratio"},"interest_expense":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"利息支出","formula":"interest_expense","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"interest_expense","name":"Interest Expense","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"inventory":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"存货","formula":"inventory","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"inventory","name":"Inventory","periods":["quarterly","annual"],"unit":"currency"},"inventory_turnover":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"存货周转率","formula":"inventory_turnover","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"inventory_turnover","name":"Inventory Turnover","periods":["quarterly","annual","ttm"],"unit":"ratio"},"investing_cash_flow":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"投资活动现金流净额","formula":"net_cash_flow_from_investing","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"investing_cash_flow","name":"Investing Cash Flow","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"investment_acquisitions_and_disposals":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"投资取得及处置","formula":"investment_acquisitions_and_disposals","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"investment_acquisitions_and_disposals","name":"Investment Acquisitions and Disposals","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"liabilities_and_equity":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"负债及权益合计","formula":"total_liabilities + shareholders_equity","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"liabilities_and_equity","name":"Liabilities and Equity","periods":["quarterly","annual"],"unit":"currency"},"liabilities_to_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"资产负债率","formula":"safe_divide(total_liabilities, total_assets)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"liabilities_to_assets","name":"Liabilities to Assets","periods":["quarterly","annual","ttm"],"unit":"ratio"},"market_cap":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"amount","display_name":"总市值","formula":"market_cap","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"market_cap","name":"Market Capitalization","periods":["quarterly","annual","ttm"],"unit":"currency"},"net_debt":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"净债务","formula":"total_debt - cash_and_equivalents","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_debt","name":"Net Debt","periods":["quarterly","annual","ttm"],"unit":"currency"},"net_income":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"净利润","formula":"net_income","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_income","name":"Net Income","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"net_income_common_stock":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"归属普通股东净利润","formula":"net_income_common_stock","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_income_common_stock","name":"Net Income to Common Stock","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"net_income_discontinued_operations":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"终止经营净利润","formula":"net_income_discontinued_operations","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_income_discontinued_operations","name":"Net Income from Discontinued Operations","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"net_income_non_controlling_interests":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"归属非控股权益净利润","formula":"net_income_non_controlling_interests","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_income_non_controlling_interests","name":"Net Income Attributable to Non-controlling Interests","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"net_income_yoy":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"percentage","display_name":"净利润同比","formula":"yoy(net_income, prior_comparable_net_income)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_income_yoy","name":"Net Income YoY","periods":["quarterly","ytd","annual","ttm"],"unit":"ratio"},"net_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"净利率","formula":"net_margin","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"net_margin","name":"Net Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"non_current_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"非流动资产合计","formula":"non_current_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"non_current_assets","name":"Non-current Assets","periods":["quarterly","annual"],"unit":"currency"},"non_current_debt":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"长期债务","formula":"non_current_debt","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"non_current_debt","name":"Non-current Debt","periods":["quarterly","annual"],"unit":"currency"},"non_current_investments":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"长期投资","formula":"non_current_investments","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"non_current_investments","name":"Non-current Investments","periods":["quarterly","annual"],"unit":"currency"},"non_current_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"非流动负债合计","formula":"non_current_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"non_current_liabilities","name":"Non-current Liabilities","periods":["quarterly","annual"],"unit":"currency"},"operating_cash_flow":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"经营活动现金流净额","formula":"net_cash_flow_from_operations","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_cash_flow","name":"Operating Cash Flow","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"operating_cash_flow_per_share":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"financial_metrics","display_kind":"amount_per_share","display_name":"每股经营现金流","formula":"safe_divide(operating_cash_flow, applicable_weighted_average_shares)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_cash_flow_per_share","name":"Operating Cash Flow per Share","periods":["quarterly","annual","ttm"],"unit":"currency_per_share"},"operating_cash_flow_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"经营现金流比率","formula":"operating_cash_flow_ratio","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"operating_cash_flow_ratio","name":"Operating Cash Flow Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"operating_cycle":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"days","display_name":"经营周期","formula":"operating_cycle","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"operating_cycle","name":"Operating Cycle","periods":["quarterly","annual","ttm"],"unit":"days"},"operating_expense":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"营业费用","formula":"operating_expense","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_expense","name":"Operating Expense","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"operating_income":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"营业利润","formula":"operating_income","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_income","name":"Operating Income","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"operating_income_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"营业利润增长率","formula":"operating_income_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_income_growth","name":"Operating Income Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"operating_income_yoy":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"percentage","display_name":"营业利润同比","formula":"yoy(operating_income, prior_comparable_operating_income)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_income_yoy","name":"Operating Income YoY","periods":["quarterly","ytd","annual","ttm"],"unit":"ratio"},"operating_margin":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"营业利润率","formula":"operating_margin","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"operating_margin","name":"Operating Margin","periods":["quarterly","annual","ttm"],"unit":"ratio"},"other_current_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"其他流动负债","formula":"current_liabilities - current_debt - payables - deferred_revenue - deposit_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"other_current_liabilities","name":"Other Current Liabilities","periods":["quarterly","annual"],"unit":"currency"},"other_non_current_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"其他非流动资产","formula":"non_current_assets - property_plant_and_equipment - goodwill_and_intangible_assets - non_current_investments - tax_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"other_non_current_assets","name":"Other Non-current Assets","periods":["quarterly","annual"],"unit":"currency"},"other_non_current_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"其他非流动负债","formula":"non_current_liabilities - non_current_debt - tax_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"other_non_current_liabilities","name":"Other Non-current Liabilities","periods":["quarterly","annual"],"unit":"currency"},"outstanding_shares":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"shares","display_name":"流通股数","formula":"outstanding_shares","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"outstanding_shares","name":"Outstanding Shares","periods":["quarterly","annual"],"unit":"shares"},"payables":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"应付账款及其他应付款","formula":"trade_and_non_trade_payables","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"payables","name":"Payables","periods":["quarterly","annual"],"unit":"currency"},"payout_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"派息率","formula":"payout_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"payout_ratio","name":"Payout Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"pb_mrq":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市净率 MRQ","formula":"pb_mrq","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"pb_mrq","name":"Price to Book Most Recent Quarter","periods":["quarterly"],"unit":"ratio"},"pe_lyr":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市盈率 LYR","formula":"pe_lyr","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"pe_lyr","name":"Price to Earnings Last Year","periods":["annual"],"unit":"ratio"},"pe_ttm":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市盈率 TTM","formula":"pe_ttm","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"pe_ttm","name":"Price to Earnings TTM","periods":["ttm"],"unit":"ratio"},"peg_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"PEG","formula":"peg_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"peg_ratio","name":"PEG Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"price_to_book_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市净率","formula":"price_to_book_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"price_to_book_ratio","name":"Price to Book Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"price_to_earnings_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市盈率","formula":"price_to_earnings_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"price_to_earnings_ratio","name":"Price to Earnings Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"price_to_sales_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市销率","formula":"price_to_sales_ratio","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"price_to_sales_ratio","name":"Price to Sales Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"property_plant_and_equipment":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"固定资产净值","formula":"property_plant_and_equipment","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"property_plant_and_equipment","name":"Property Plant and Equipment","periods":["quarterly","annual"],"unit":"currency"},"ps_ttm":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"市销率 TTM","formula":"ps_ttm","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"ps_ttm","name":"Price to Sales TTM","periods":["ttm"],"unit":"ratio"},"quick_ratio":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"速动比率","formula":"quick_ratio","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"quick_ratio","name":"Quick Ratio","periods":["quarterly","annual","ttm"],"unit":"ratio"},"receivables":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"应收款项合计","formula":"trade_and_non_trade_receivables","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"receivables","name":"Receivables","periods":["quarterly","annual"],"unit":"currency"},"receivables_turnover":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"应收账款周转率","formula":"receivables_turnover","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"receivables_turnover","name":"Receivables Turnover","periods":["quarterly","annual","ttm"],"unit":"ratio"},"research_and_development":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"研发支出","formula":"research_and_development","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"research_and_development","name":"Research and Development","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"retained_earnings":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"留存收益","formula":"retained_earnings","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"retained_earnings","name":"Retained Earnings","periods":["quarterly","annual"],"unit":"currency"},"return_on_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"ROA","formula":"return_on_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"return_on_assets","name":"Return on Assets","periods":["quarterly","annual","ttm"],"unit":"ratio"},"return_on_equity":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"ROE","formula":"return_on_equity","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"return_on_equity","name":"Return on Equity","periods":["quarterly","annual","ttm"],"unit":"ratio"},"return_on_invested_capital":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"ROIC","formula":"return_on_invested_capital","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"return_on_invested_capital","name":"Return on Invested Capital","periods":["quarterly","annual","ttm"],"unit":"ratio"},"revenue":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"营业总收入","formula":"revenue","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"revenue","name":"Revenue","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"revenue_growth":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"percentage","display_name":"营收增长率","formula":"revenue_growth","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"revenue_growth","name":"Revenue Growth","periods":["quarterly","annual","ttm"],"unit":"ratio"},"revenue_yoy":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"percentage","display_name":"营收同比","formula":"yoy(revenue, prior_comparable_revenue)","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"revenue_yoy","name":"Revenue YoY","periods":["quarterly","ytd","annual","ttm"],"unit":"ratio"},"sga_expense":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"amount","display_name":"销售、一般及管理费用","formula":"selling_general_and_administrative_expenses","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"sga_expense","name":"Selling General and Administrative Expense","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"share_based_compensation":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"cash_flow","display_kind":"amount","display_name":"股权激励","formula":"share_based_compensation","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"share_based_compensation","name":"Share Based Compensation","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"shareholders_equity":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"股东权益","formula":"shareholders_equity","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"shareholders_equity","name":"Shareholders Equity","periods":["quarterly","annual"],"unit":"currency"},"tax_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"税项资产","formula":"tax_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"tax_assets","name":"Tax Assets","periods":["quarterly","annual"],"unit":"currency"},"tax_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"税项负债","formula":"tax_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"tax_liabilities","name":"Tax Liabilities","periods":["quarterly","annual"],"unit":"currency"},"total_assets":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"总资产","formula":"total_assets","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"total_assets","name":"Total Assets","periods":["quarterly","annual"],"unit":"currency"},"total_debt":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"总债务","formula":"total_debt","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"total_debt","name":"Total Debt","periods":["quarterly","annual"],"unit":"currency"},"total_liabilities":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"balance_sheet","display_kind":"amount","display_name":"总负债","formula":"total_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"total_liabilities","name":"Total Liabilities","periods":["quarterly","annual"],"unit":"currency"},"total_operating_costs":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"income_statement","display_kind":"amount","display_name":"营业总支出","formula":"cost_of_revenue + operating_expense","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"total_operating_costs","name":"Total Operating Costs","periods":["quarterly","ytd","annual","ttm"],"unit":"currency"},"weighted_average_shares":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"shares","display_name":"基本加权平均股数","formula":"weighted_average_shares","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"weighted_average_shares","name":"Weighted Average Shares","periods":["quarterly","ytd","annual","ttm"],"unit":"shares"},"weighted_average_shares_diluted":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"gaap","category":"income_statement","display_kind":"shares","display_name":"稀释加权平均股数","formula":"weighted_average_shares_diluted","formula_version":"equity-v1","is_meaningful_for_financials":true,"metric":"weighted_average_shares_diluted","name":"Diluted Weighted Average Shares","periods":["quarterly","ytd","annual","ttm"],"unit":"shares"},"working_capital":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"platform_calculated","category":"balance_sheet","display_kind":"amount","display_name":"营运资本","formula":"current_assets - current_liabilities","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"working_capital","name":"Working Capital","periods":["quarterly","annual"],"unit":"currency"},"working_capital_turnover":{"applicable_industries":["all"],"applicable_sectors":["all"],"calculation_type":"provider_calculated","category":"financial_metrics","display_kind":"multiple","display_name":"营运资本周转率","formula":"working_capital_turnover","formula_version":"equity-v1","is_meaningful_for_financials":false,"metric":"working_capital_turnover","name":"Working Capital Turnover","periods":["quarterly","annual","ttm"],"unit":"ratio"}}}