---
title: "Get Wallet Positions (Batch)"
method: POST
path: "/api/2/wallet/positions"
tags: ["V2 - Wallet"]
---

# Get Wallet Positions (Batch)

`POST /api/2/wallet/positions`

Batch endpoint to fetch all positions for multiple wallets in a single request. Each wallet can have its own pagination, sorting, and chain filtering. Max 10 wallets per request.

## Request body

- union
  - object[]
    - `wallet` string, required — Wallet address
    - `chainIds` string[] — Array of chain IDs (e.g., ["evm:1","evm:8453"]). If omitted, all chains.
    - `limit` number — Number of positions per page (1-500, default: 100)
    - `offset` number — Offset for pagination (default: 0)
    - `sortBy` 'lastActivity' | 'realizedPnl' — Sort field (default: lastActivity)
    - `order` 'asc' | 'desc' — Sort order (default: desc)
    - `useSwapRecipient` boolean — Use swap recipient mode
    - `includeAllBalances` boolean — Include all tokens the wallet holds
    - `onlyOpen` boolean — Return only positions still held on-chain (filters out fully closed positions)
    - `minPositionValueUSD` number — Drop positions worth less than this USD value (live RPC balance × live pool price)
    - `_backfillSwapsAndPositions` boolean
  - object
    - `items` object[], required
      - `wallet` string, required — Wallet address
      - `chainIds` string[] — Array of chain IDs (e.g., ["evm:1","evm:8453"]). If omitted, all chains.
      - `limit` number — Number of positions per page (1-500, default: 100)
      - `offset` number — Offset for pagination (default: 0)
      - `sortBy` 'lastActivity' | 'realizedPnl' — Sort field (default: lastActivity)
      - `order` 'asc' | 'desc' — Sort order (default: desc)
      - `useSwapRecipient` boolean — Use swap recipient mode
      - `includeAllBalances` boolean — Include all tokens the wallet holds
      - `onlyOpen` boolean — Return only positions still held on-chain (filters out fully closed positions)
      - `minPositionValueUSD` number — Drop positions worth less than this USD value (live RPC balance × live pool price)
      - `_backfillSwapsAndPositions` boolean

## Response `200`

Batch wallet positions response. Each item contains position data with pagination, or an error object if the wallet could not be fetched.

- object
  - `payload` union[], required
    - union
      - object
        - `wallet` string, required
        - `data` object[], required
          - `token` object, required
            - `address` string, required
            - `chainId` string, required
            - `symbol` string, nullable, required
            - `name` string, nullable, required
            - `decimals` number, nullable
            - `id` number, nullable
            - `priceUSD` number, nullable
            - `priceToken` number, nullable
            - `priceTokenString` string, required
            - `approximateReserveUSD` number, nullable
            - `approximateReserveTokenRaw` string, required
            - `approximateReserveToken` number, nullable
            - `totalSupply` number, nullable
            - `circulatingSupply` number, nullable
            - `marketCapUSD` number, nullable
            - `marketCapDilutedUSD` number, nullable
            - `logo` string, nullable, required
            - `originLogoUrl` string, nullable
            - `rank` number, nullable
            - `cexs` string[]
            - `exchange` object
              - …
            - `factory` string, nullable
            - `source` string, nullable
            - `sourceFactory` string, nullable
            - `sourceMetadata` object, nullable
              - …
            - `sourceFactoryMetadata` object, nullable
              - …
            - `liquidityUSD` number, nullable
            - `liquidityMaxUSD` number, nullable
            - `bonded` boolean
            - `bondingPercentage` number, nullable
            - `bondingCurveAddress` string, nullable
            - `preBondingFactory` string
            - `poolAddress` string
            - `blockchain` string
            - `type` string
            - `tokenType` '2020' | '2022', nullable
            - `deployer` string, nullable
            - `bondedAt` string, nullable, required
            - `athUSD` number, nullable
            - `atlUSD` number, nullable
            - `athDate` string, nullable
            - `atlDate` string, nullable
            - `priceChange1minPercentage` number, nullable
            - `priceChange5minPercentage` number, nullable
            - `priceChange1hPercentage` number, nullable
            - `priceChange4hPercentage` number, nullable
            - `priceChange6hPercentage` number, nullable
            - `priceChange12hPercentage` number, nullable
            - `priceChange24hPercentage` number, nullable
            - `poolPriceChange1minPercentage` number, nullable
            - `poolPriceChange5minPercentage` number, nullable
            - `poolPriceChange1hPercentage` number, nullable
            - `poolPriceChange4hPercentage` number, nullable
            - `poolPriceChange6hPercentage` number, nullable
            - `poolPriceChange12hPercentage` number, nullable
            - `poolPriceChange24hPercentage` number, nullable
            - `liquidityBurnPercentage` number, nullable
            - `volume1minUSD` number, nullable
            - `volume5minUSD` number, nullable
            - `volume15minUSD` number, nullable
            - `volume1hUSD` number, nullable
            - `volume4hUSD` number, nullable
            - `volume6hUSD` number, nullable
            - `volume12hUSD` number, nullable
            - `volume24hUSD` number, nullable
            - `volumeBuy1minUSD` number, nullable
            - `volumeBuy5minUSD` number, nullable
            - `volumeBuy15minUSD` number, nullable
            - `volumeBuy1hUSD` number, nullable
            - `volumeBuy4hUSD` number, nullable
            - `volumeBuy6hUSD` number, nullable
            - `volumeBuy12hUSD` number, nullable
            - `volumeBuy24hUSD` number, nullable
            - `volumeSell1minUSD` number, nullable
            - `volumeSell5minUSD` number, nullable
            - `volumeSell15minUSD` number, nullable
            - `volumeSell1hUSD` number, nullable
            - `volumeSell4hUSD` number, nullable
            - `volumeSell6hUSD` number, nullable
            - `volumeSell12hUSD` number, nullable
            - `volumeSell24hUSD` number, nullable
            - `trades1min` number, nullable
            - `trades5min` number, nullable
            - `trades15min` number, nullable
            - `trades1h` number, nullable
            - `trades4h` number, nullable
            - `trades6h` number, nullable
            - `trades12h` number, nullable
            - `trades24h` number, nullable
            - `buys1min` number, nullable
            - `buys5min` number, nullable
            - `buys15min` number, nullable
            - `buys1h` number, nullable
            - `buys4h` number, nullable
            - `buys6h` number, nullable
            - `buys12h` number, nullable
            - `buys24h` number, nullable
            - `sells1min` number, nullable
            - `sells5min` number, nullable
            - `sells15min` number, nullable
            - `sells1h` number, nullable
            - `sells4h` number, nullable
            - `sells6h` number, nullable
            - `sells12h` number, nullable
            - `sells24h` number, nullable
            - `buyers1min` number, nullable
            - `buyers5min` number, nullable
            - `buyers15min` number, nullable
            - `buyers1h` number, nullable
            - `buyers4h` number, nullable
            - `buyers6h` number, nullable
            - `buyers12h` number, nullable
            - `buyers24h` number, nullable
            - `sellers1min` number, nullable
            - `sellers5min` number, nullable
            - `sellers15min` number, nullable
            - `sellers1h` number, nullable
            - `sellers4h` number, nullable
            - `sellers6h` number, nullable
            - `sellers12h` number, nullable
            - `sellers24h` number, nullable
            - `traders1min` number, nullable
            - `traders5min` number, nullable
            - `traders15min` number, nullable
            - `traders1h` number, nullable
            - `traders4h` number, nullable
            - `traders6h` number, nullable
            - `traders12h` number, nullable
            - `traders24h` number, nullable
            - `feesPaid1minUSD` number, nullable
            - `feesPaid5minUSD` number, nullable
            - `feesPaid15minUSD` number, nullable
            - `feesPaid1hUSD` number, nullable
            - `feesPaid4hUSD` number, nullable
            - `feesPaid6hUSD` number, nullable
            - `feesPaid12hUSD` number, nullable
            - `feesPaid24hUSD` number, nullable
            - `totalFeesPaidUSD` number, nullable
            - `totalFeesPaidNativeRaw` string, nullable
            - `organicTrades1min` number, nullable
            - `organicTrades5min` number, nullable
            - `organicTrades15min` number, nullable
            - `organicTrades1h` number, nullable
            - `organicTrades4h` number, nullable
            - `organicTrades6h` number, nullable
            - `organicTrades12h` number, nullable
            - `organicTrades24h` number, nullable
            - `organicTraders1min` number, nullable
            - `organicTraders5min` number, nullable
            - `organicTraders15min` number, nullable
            - `organicTraders1h` number, nullable
            - `organicTraders4h` number, nullable
            - `organicTraders6h` number, nullable
            - `organicTraders12h` number, nullable
            - `organicTraders24h` number, nullable
            - `organicVolume1minUSD` number, nullable
            - `organicVolume5minUSD` number, nullable
            - `organicVolume15minUSD` number, nullable
            - `organicVolume1hUSD` number, nullable
            - `organicVolume4hUSD` number, nullable
            - `organicVolume6hUSD` number, nullable
            - `organicVolume12hUSD` number, nullable
            - `organicVolume24hUSD` number, nullable
            - `organicVolumeBuy1minUSD` number, nullable
            - `organicVolumeBuy5minUSD` number, nullable
            - `organicVolumeBuy15minUSD` number, nullable
            - `organicVolumeBuy1hUSD` number, nullable
            - `organicVolumeBuy4hUSD` number, nullable
            - `organicVolumeBuy6hUSD` number, nullable
            - `organicVolumeBuy12hUSD` number, nullable
            - `organicVolumeBuy24hUSD` number, nullable
            - `organicVolumeSell1minUSD` number, nullable
            - `organicVolumeSell5minUSD` number, nullable
            - `organicVolumeSell15minUSD` number, nullable
            - `organicVolumeSell1hUSD` number, nullable
            - `organicVolumeSell4hUSD` number, nullable
            - `organicVolumeSell6hUSD` number, nullable
            - `organicVolumeSell12hUSD` number, nullable
            - `organicVolumeSell24hUSD` number, nullable
            - `organicBuys1min` number, nullable
            - `organicBuys5min` number, nullable
            - `organicBuys15min` number, nullable
            - `organicBuys1h` number, nullable
            - `organicBuys4h` number, nullable
            - `organicBuys6h` number, nullable
            - `organicBuys12h` number, nullable
            - `organicBuys24h` number, nullable
            - `organicSells1min` number, nullable
            - `organicSells5min` number, nullable
            - `organicSells15min` number, nullable
            - `organicSells1h` number, nullable
            - `organicSells4h` number, nullable
            - `organicSells6h` number, nullable
            - `organicSells12h` number, nullable
            - `organicSells24h` number, nullable
            - `organicBuyers1min` number, nullable
            - `organicBuyers5min` number, nullable
            - `organicBuyers15min` number, nullable
            - `organicBuyers1h` number, nullable
            - `organicBuyers4h` number, nullable
            - `organicBuyers6h` number, nullable
            - `organicBuyers12h` number, nullable
            - `organicBuyers24h` number, nullable
            - `organicSellers1min` number, nullable
            - `organicSellers5min` number, nullable
            - `organicSellers15min` number, nullable
            - `organicSellers1h` number, nullable
            - `organicSellers4h` number, nullable
            - `organicSellers6h` number, nullable
            - `organicSellers12h` number, nullable
            - `organicSellers24h` number, nullable
            - `createdAt` string, nullable, required
            - `latestTradeDate` string, nullable, required
            - `holdersCount` number, nullable
            - `description` string, nullable, required
            - `socials` object, required
              - …
            - `security` object, nullable, required
              - …
            - `twitterReusesCount` number, nullable
            - `twitterRenameCount` number, nullable
            - `twitterRenameHistory` object[]
              - …
            - `deployerMigrationsCount` number, nullable
            - `deployerTokensCount` number, nullable
            - `securityScore` number, nullable
            - `securityScoreUpdatedAt` string, nullable
            - `dexscreenerListed` boolean, nullable
            - `dexscreenerHeader` string, nullable
            - `dexscreenerAdPaid` boolean, nullable
            - `dexscreenerAdPaidDate` string, nullable
            - `dexscreenerPendingAt` string, nullable
            - `dexscreenerSocialPaid` boolean, nullable
            - `dexscreenerSocialPaidDate` string, nullable
            - `liveStatus` string, nullable, required
            - `liveThumbnail` string, nullable, required
            - `livestreamTitle` string, nullable, required
            - `liveReplyCount` number, nullable, required
            - `dexscreenerBoosted` boolean, nullable
            - `dexscreenerBoostedDate` string, nullable
            - `dexscreenerBoostedAmount` number, nullable
            - `isMayhemMode` boolean, nullable
            - `isCashbackCoin` boolean, nullable
            - `isAgentMode` boolean, nullable
            - `isOGCoin` boolean, nullable
            - `top10HoldingsPercentage` number, nullable
            - `top50HoldingsPercentage` number, nullable
            - `top100HoldingsPercentage` number, nullable
            - `top200HoldingsPercentage` number, nullable
            - `devHoldingsPercentage` number, nullable
            - `insidersHoldingsPercentage` number, nullable
            - `bundlersHoldingsPercentage` number, nullable
            - `snipersHoldingsPercentage` number, nullable
            - `proTradersHoldingsPercentage` number, nullable
            - `freshTradersHoldingsPercentage` number, nullable
            - `smartTradersHoldingsPercentage` number, nullable
            - `insidersCount` number, nullable
            - `bundlersCount` number, nullable
            - `snipersCount` number, nullable
            - `freshTradersCount` number, nullable
            - `proTradersCount` number, nullable
            - `smartTradersCount` number, nullable
            - `freshTradersBuys` number, nullable
            - `proTradersBuys` number, nullable
            - `smartTradersBuys` number, nullable
          - `balance` number, required
          - `rawBalance` string, required
          - `amountUSD` number, required
          - `buys` number, required
          - `sells` number, required
          - `volumeBuyToken` number, required
          - `volumeSellToken` number, required
          - `volumeBuy` number, required
          - `volumeSell` number, required
          - `avgBuyPriceUSD` number, required
          - `avgSellPriceUSD` number, required
          - `realizedPnlUSD` number, required
          - `unrealizedPnlUSD` number, required
          - `totalPnlUSD` number, required
          - `totalFeesPaidUSD` number
          - `buyFeesPaidUSD` number
          - `sellFeesPaidUSD` number
          - `firstDate` string, nullable, required
          - `lastDate` string, nullable, required
          - `labels` string[], nullable
        - `walletMetadata` object
          - `fundingInfo` object, nullable
            - `from` string, nullable, required
            - `date` string, nullable, required
            - `chainId` string, nullable, required
            - `txHash` string, nullable, required
            - `amount` string, nullable, required
            - `formattedAmount` number, nullable, required
            - `currency` object, nullable, required
              - …
            - `fromWalletLogo` string, nullable, required
            - `fromWalletTag` string, nullable, required
            - `fromWalletMetadata` object, nullable
              - …
          - `entity` string, nullable
          - `labels` string[]
        - `pagination` object
          - `page` number, required
          - `offset` number, required
          - `limit` number, required
          - `pageEntries` number, required
      - object
        - `wallet` string, required
        - `error` string, required
      - unknown
  - `hostname` string

## Other responses

- `402` — Payment Required

---

[API](https://skmtc.net/mobula/apis/mobula-api.md) · [All operations](https://skmtc.net/mobula/apis/mobula-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mobula/mobula-api/versions/32f95d9e8ff2/schema)
