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.
/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>"
| Parameter | Description |
|---|---|
cursorquery · 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). |
chainpath · 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. |
addresspath · 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.
| Field | Type | Description |
|---|---|---|
contract | string | The collection contract, lowercase. |
ownerCount | integer | null | How 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. |
holdings | object[] | 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[].owner | string | The holding wallet, lowercase. |
holdings[].tokenId | string | The token id, in decimal. |
holdings[].amount | string | Units of this token id the wallet holds, in decimal: "1" for an ERC-721. |
nextCursor | string | null | Pass 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