{
  "openapi": "3.0.1",
  "info": {
    "title": "Crypto Wallet Analytics API - Nansen Smart Money, Token Flows",
    "description": "Pull Nansen on-chain data into a dataset: Smart Money net flows, holdings and DEX trades, token screener, holders, flows, buyers and sellers, DEX trades, transfers and OHLCV, plus wallet balances, transactions, counterparties, related wallets, PnL and labels. Bring your own API key.",
    "version": "0.1",
    "x-build-id": "dky3D4gLhRg4d8SQI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~crypto-wallet-smart-money-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-crypto-wallet-smart-money-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~crypto-wallet-smart-money-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-crypto-wallet-smart-money-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~crypto-wallet-smart-money-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-crypto-wallet-smart-money-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to read",
            "enum": [
              "tokenScreener",
              "tokenInformation",
              "tokenFlowIntelligence",
              "tokenFlows",
              "tokenWhoBoughtSold",
              "tokenDexTrades",
              "tokenTransfers",
              "tokenHolders",
              "tokenOhlcv",
              "walletBalances",
              "walletHistoricalBalances",
              "walletTransactions",
              "walletCounterparties",
              "walletRelatedWallets",
              "walletPnlSummary",
              "walletPnl",
              "walletLabels",
              "smartMoneyNetflow",
              "smartMoneyHoldings",
              "smartMoneyDexTrades"
            ],
            "type": "string",
            "description": "Token modes read one token at a time from Token addresses. Wallet modes read one wallet at a time from Wallet addresses (several also take Nansen entity names such as Binance). The token screener and the three Smart Money modes read one market-wide list. Each request spends Nansen credits on your key: 1 for most token and wallet endpoints, 5 for holders, counterparties and Smart Money, 100 for wallet labels.",
            "default": "tokenScreener"
          },
          "tokenAddresses": {
            "title": "Token addresses",
            "type": "array",
            "description": "Token modes. Contract addresses on the chosen chain, one per line, for example 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 (USDC on Ethereum) or a Solana mint address. Each address is one request.",
            "items": {
              "type": "string"
            }
          },
          "walletAddresses": {
            "title": "Wallet addresses",
            "type": "array",
            "description": "Wallet modes. Wallet addresses, one per line, as the chain writes them (EVM 0x addresses, Solana, Bitcoin, TRON and so on). Each address is one request.",
            "items": {
              "type": "string"
            }
          },
          "entityNames": {
            "title": "Entity names",
            "type": "array",
            "description": "Wallet balances, historical balances, counterparties, PnL summary and PnL by token. Nansen entity names such as Binance or Wintermute, one per line, to read every wallet Nansen attributes to that entity at once.",
            "items": {
              "type": "string"
            }
          },
          "chain": {
            "title": "Chain",
            "enum": [
              "ethereum",
              "solana",
              "base",
              "bnb",
              "arbitrum",
              "all",
              "algorand",
              "aptos",
              "arc",
              "avalanche",
              "bitcoin",
              "bitlayer",
              "chiliz",
              "gravity",
              "hyperevm",
              "hyperliquid",
              "injective",
              "iotaevm",
              "linea",
              "mantle",
              "mantra",
              "monad",
              "near",
              "optimism",
              "plasma",
              "polygon",
              "robinhood",
              "sei",
              "sonic",
              "stacks",
              "starknet",
              "stellar",
              "sui",
              "ton",
              "tron",
              "viction"
            ],
            "type": "string",
            "description": "Token and wallet modes. The chain the token or wallet lives on. All chains works for wallet balances, transactions, counterparties, PnL and labels. Each endpoint supports its own list; an unsupported pick ends the run with the list it takes.",
            "default": "ethereum"
          },
          "chains": {
            "title": "Chains",
            "type": "array",
            "description": "Token screener and Smart Money modes. One or more chains to cover (the screener takes up to 5 per request). All chains is accepted by the Smart Money modes.",
            "items": {
              "type": "string",
              "enum": [
                "ethereum",
                "solana",
                "base",
                "bnb",
                "arbitrum",
                "all",
                "arc",
                "avalanche",
                "bitcoin",
                "citrea",
                "hyperevm",
                "injective",
                "iotaevm",
                "linea",
                "mantle",
                "mantra",
                "monad",
                "near",
                "optimism",
                "plasma",
                "polygon",
                "robinhood",
                "sei",
                "sonic",
                "starknet",
                "sui",
                "ton",
                "tron"
              ],
              "enumTitles": [
                "Ethereum",
                "Solana",
                "Base",
                "BNB Chain",
                "Arbitrum",
                "All chains",
                "Arc",
                "Avalanche",
                "Bitcoin",
                "Citrea",
                "HyperEVM",
                "Injective",
                "IOTA EVM",
                "Linea",
                "Mantle",
                "Mantra",
                "Monad",
                "NEAR",
                "Optimism",
                "Plasma",
                "Polygon",
                "Robinhood",
                "Sei",
                "Sonic",
                "Starknet",
                "Sui",
                "TON",
                "TRON"
              ]
            },
            "default": [
              "ethereum"
            ]
          },
          "screenerTimeframe": {
            "title": "Screener timeframe",
            "enum": [
              "5m",
              "10m",
              "1h",
              "6h",
              "24h",
              "7d",
              "30d"
            ],
            "type": "string",
            "description": "Token screener. The window the volume, flow and trader counts cover. The screener is live only; it has no historical snapshots.",
            "default": "24h"
          },
          "tokenTimeframe": {
            "title": "Token timeframe",
            "enum": [
              "5m",
              "1h",
              "6h",
              "12h",
              "1d",
              "7d"
            ],
            "type": "string",
            "description": "Token information and token flow intelligence. The window the spot metrics and cohort flows cover.",
            "default": "1d"
          },
          "candleInterval": {
            "title": "Candle interval",
            "enum": [
              "1m",
              "5m",
              "15m",
              "30m",
              "1h",
              "4h",
              "1d",
              "1w",
              "1M"
            ],
            "type": "string",
            "description": "Token price candles. The OHLCV resolution.",
            "default": "1d"
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Token flows, who bought or sold, DEX trades, transfers, candles and the wallet history, transaction, counterparty and PnL modes. Start of the window: a date such as 2026-09-01 or a UTC time such as 2026-09-01T00:00:00Z. Leave empty to read the last lookback days. The window may span one year at most."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "End of the window, in the same forms as Date from. Leave empty for now."
          },
          "lookbackDays": {
            "title": "Lookback days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "How many days back to read when Date from is empty.",
            "default": 7
          },
          "flowLabel": {
            "title": "Flow cohort",
            "enum": [
              "whale",
              "public_figure",
              "smart_money",
              "top_100_holders",
              "exchange"
            ],
            "type": "string",
            "description": "Token flows. Which wallet cohort the inflow and outflow buckets track.",
            "default": "smart_money"
          },
          "holderType": {
            "title": "Holder type",
            "enum": [
              "whale",
              "public_figure",
              "smart_money",
              "all_holders",
              "exchange"
            ],
            "type": "string",
            "description": "Token holders. Which holders to list.",
            "default": "all_holders"
          },
          "aggregateByEntity": {
            "title": "Group holders by entity",
            "type": "boolean",
            "description": "Token holders. Sum the wallets Nansen attributes to one entity (an exchange, a fund) into one row.",
            "default": false
          },
          "tradeSide": {
            "title": "Buyers or sellers",
            "enum": [
              "BUY",
              "SELL"
            ],
            "type": "string",
            "description": "Who bought or sold a token. Whether to list the top buyers or the top sellers.",
            "default": "BUY"
          },
          "counterpartySource": {
            "title": "Counterparty source",
            "enum": [
              "Combined",
              "Tokens",
              "ETH"
            ],
            "type": "string",
            "description": "Wallet counterparties. Which transfers count as interactions.",
            "default": "Combined"
          },
          "counterpartyGroupBy": {
            "title": "Group counterparties by",
            "enum": [
              "wallet",
              "entity"
            ],
            "type": "string",
            "description": "Wallet counterparties. One row per counterparty wallet or per counterparty entity.",
            "default": "wallet"
          },
          "onlySmartMoney": {
            "title": "Smart Money only",
            "type": "boolean",
            "description": "Token DEX trades and token transfers. Keep only trades or transfers made by Smart Money wallets.",
            "default": false
          },
          "hideSpamTokens": {
            "title": "Hide spam tokens",
            "type": "boolean",
            "description": "Wallet balances, historical balances and transactions. Leave out tokens Nansen flags as suspicious.",
            "default": true
          },
          "smartMoneyLabels": {
            "title": "Smart Money labels",
            "type": "array",
            "description": "Token screener, holders, who bought or sold, DEX trades, counterparties and the Smart Money modes. Keep only wallets with these labels. The screener and Smart Money modes take Fund, Smart Trader, 30D, 90D and 180D Smart Trader and Smart HL Perps Trader; other labels are left off there with a note.",
            "items": {
              "type": "string",
              "enum": [
                "30D Smart Trader",
                "90D Smart Trader",
                "180D Smart Trader",
                "Fund",
                "Smart Trader",
                "Public Figure",
                "Exchange",
                "Whale",
                "BananaGun Bot User",
                "Top Maestro Bot User",
                "Top BananaGun Bot User",
                "Maestro Bot User",
                "Early MAGIC Miner",
                "First Mover LP",
                "First Mover Staking",
                "Profitable LP",
                "Smart HL Perps Trader"
              ]
            }
          },
          "includeStablecoins": {
            "title": "Include stablecoins",
            "type": "boolean",
            "description": "Token screener, Smart Money net flows and holdings. Leave unticked to keep the endpoint default (the screener includes stablecoins, the Smart Money modes leave them out)."
          },
          "includeNativeTokens": {
            "title": "Include native tokens",
            "type": "boolean",
            "description": "Token screener, Smart Money net flows and holdings. Include ETH, SOL and other native, wrapped-native and staking tokens."
          },
          "sortField": {
            "title": "Sort by",
            "type": "string",
            "description": "Optional. A column of the chosen endpoint to sort by, such as value_usd, volume, netflow, net_flow_24h_usd, block_timestamp or trade_value_usd. A field the endpoint does not sort by ends the run with the list it takes."
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "DESC",
              "ASC"
            ],
            "type": "string",
            "description": "Used with Sort by.",
            "default": "DESC"
          },
          "extraFilters": {
            "title": "Extra filters",
            "type": "object",
            "description": "Advanced. Nansen filters passed through verbatim, for example {\"value_usd\": {\"min\": 10000}}, {\"market_cap_usd\": {\"min\": 1000000}} or {\"trader_address_label\": \"Wintermute\"}. Range filters take min and max. Only the filter names the chosen endpoint documents are sent; any other is left off with a warning, because an unknown filter returns nothing rather than an error."
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "The most rows this run returns and charges for, across all targets and pages. It also sets the page size, so a small value keeps credit use low.",
            "default": 200
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 1500,
            "type": "integer",
            "description": "Pacing. Nansen allows 300 requests a minute on the Free plan and 1,500 on Pro, and answers 429 above it, which the actor waits out and retries.",
            "default": 60
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own Nansen API key, from app.nansen.ai/api. Stored as a secret and sent only in the apikey header; it is never logged. You can instead set the DATA_API_KEY environment secret."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}