NFTs API

Who holds an NFT collection

The wallets holding one NFT collection — each token id and units held, ordered by wallet — and how many distinct owners it has, with a cursor for the next page.

GET/api/external/nft-analysis/nft-collection-holders/{chain}/{address}

What it returns

The wallets holding one collection, 100 holdings per page — one per wallet and token id, with the units held — ordered by wallet, plus the number of distinct owners on the first page. Keep passing nextCursor back as cursor until it is null.

Chains

  • BNB Chain BNB
  • Ethereum ETH
  • Base BASE

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/nft-analysis/nft-collection-holders/BNB/<address>"
Parameters
ParameterDescription
cursor

query · string · optional

An opaque cursor from a previous response's nextCursor, for the next page. It only pages the chain and collection it was issued for; an empty one, or one over 2048 characters, is a 400 (enforced after the API-key gate).
chain

path · string · required

ETH, BNB or BASE. SOL, STABLE, RHC and ARC return 400: no wired source lists a collection's holders there. CELO, ARB, OP and SCROLL return 400 here.
address

path · string · required

The NFT collection's contract address.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Who holds an NFT collection
FieldTypeDescription
contractstringThe collection contract, lowercase.
ownerCountinteger | nullHow many distinct wallets hold the collection now. Given on the first page only: null on every later page, and on a first page whose count could not be read. 0 for an address no wallet holds an NFT of — a fungible token included.
holdingsobject[]This page's holdings, ordered by wallet: a wallet holding several token ids appears once per id, and an id spread over many wallets once per wallet. An empty first page means no holder is known — a fungible token answers the same.
holdings[].ownerstringThe holding wallet, lowercase.
holdings[].tokenIdstringThe token id, in decimal.
holdings[].amountstringUnits of this token id the wallet holds, in decimal: "1" for an ERC-721.
nextCursorstring | nullPass back as cursor for the next page. null on the last page.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key