curl --request GET \
--url https://api.zerion.io/v1/wallets/{address}/nft-positions/ \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.zerion.io/v1/wallets/{address}/nft-positions/"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.zerion.io/v1/wallets/{address}/nft-positions/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zerion.io/v1/wallets/{address}/nft-positions/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"links": {
"self": "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/nft-positions/"
},
"data": [
{
"type": "nft_positions",
"id": "0x42b9df65b219b3dd36ff330a4dd8f327a6ada990:ethereum:22:0x909899c5dbb5002610dd8543b6f638be56e3b17e:57896044618658097711785492504343953928676686534345912800509039648547174119787",
"attributes": {
"changed_at": "2023-02-28T19:24:39Z",
"amount": "1",
"price": 0.043615722,
"value": 123,
"nft_info": {
"contract_address": "0x74ee68a33f6c9f113e22b3b77418b75f85d07d22",
"token_id": "10",
"name": "#10 De·genesis",
"interface": "erc1155",
"flags": {
"is_spam": true
},
"content": {
"preview": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"detail": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"audio": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"video": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
}
},
"collection_info": {
"name": "<string>",
"description": "<string>",
"content": {
"icon": {
"url": "https://token-icons.s3.amazonaws.com/0x0391d2021f89dc339f60fff84546ea23e337750f.png"
},
"banner": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
}
}
},
"relationships": {
"chain": {
"links": {
"related": "https://api.zerion.io/v1/chains/polygon"
},
"data": {
"type": "chains",
"id": "polygon"
}
},
"nft_collection": {
"data": {
"type": "nft_collections",
"id": 14
}
},
"nft": {
"data": {
"type": "nfts",
"id": "<string>"
}
}
},
"included": [
{
"type": "nfts",
"id": "<string>",
"attributes": {
"contract_address": "0x74ee68a33f6c9f113e22b3b77418b75f85d07d22",
"token_id": "10",
"interface": "erc1155",
"metadata": {
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"content": {
"preview": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"detail": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"audio": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"video": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
},
"attributes": [
{
"key": "Rarity",
"value": "common"
}
]
},
"market_data": {
"prices": {
"floor": 123
},
"last_sale": {
"price": 31,
"quantity": {
"int": "12345678",
"decimals": 5,
"float": 123.45678,
"numeric": "123.45678"
}
}
},
"external_links": [
{
"url": "https://www.indexcoop.com",
"type": "website",
"name": "Website"
}
],
"flags": {
"is_spam": true
}
},
"relationships": {
"chain": {
"links": {
"related": "https://api.zerion.io/v1/chains/polygon"
},
"data": {
"type": "chains",
"id": "polygon"
}
},
"nft_collection": {
"data": {
"type": "nft_collections",
"id": 14
}
}
}
}
]
}
]
}{
"links": {
"self": "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/nft-positions/"
},
"data": []
}{
"errors": [
{
"title": "Parameter is malformed",
"detail": "Some validation errors will be described here"
}
]
}{
"errors": [
{
"title": "Unauthorized Error",
"detail": "The API key is invalid, please, make sure that you are using a valid key"
}
]
}{
"errors": [
{
"title": "Too many requests",
"detail": "Your request had been throttled"
}
]
}Get wallet NFT positions
Every NFT a wallet holds, with media, traits, collection and floor price.
curl --request GET \
--url https://api.zerion.io/v1/wallets/{address}/nft-positions/ \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.zerion.io/v1/wallets/{address}/nft-positions/"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.zerion.io/v1/wallets/{address}/nft-positions/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zerion.io/v1/wallets/{address}/nft-positions/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"links": {
"self": "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/nft-positions/"
},
"data": [
{
"type": "nft_positions",
"id": "0x42b9df65b219b3dd36ff330a4dd8f327a6ada990:ethereum:22:0x909899c5dbb5002610dd8543b6f638be56e3b17e:57896044618658097711785492504343953928676686534345912800509039648547174119787",
"attributes": {
"changed_at": "2023-02-28T19:24:39Z",
"amount": "1",
"price": 0.043615722,
"value": 123,
"nft_info": {
"contract_address": "0x74ee68a33f6c9f113e22b3b77418b75f85d07d22",
"token_id": "10",
"name": "#10 De·genesis",
"interface": "erc1155",
"flags": {
"is_spam": true
},
"content": {
"preview": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"detail": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"audio": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"video": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
}
},
"collection_info": {
"name": "<string>",
"description": "<string>",
"content": {
"icon": {
"url": "https://token-icons.s3.amazonaws.com/0x0391d2021f89dc339f60fff84546ea23e337750f.png"
},
"banner": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
}
}
},
"relationships": {
"chain": {
"links": {
"related": "https://api.zerion.io/v1/chains/polygon"
},
"data": {
"type": "chains",
"id": "polygon"
}
},
"nft_collection": {
"data": {
"type": "nft_collections",
"id": 14
}
},
"nft": {
"data": {
"type": "nfts",
"id": "<string>"
}
}
},
"included": [
{
"type": "nfts",
"id": "<string>",
"attributes": {
"contract_address": "0x74ee68a33f6c9f113e22b3b77418b75f85d07d22",
"token_id": "10",
"interface": "erc1155",
"metadata": {
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"content": {
"preview": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"detail": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"audio": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
},
"video": {
"url": "https://token-icons.s3.amazonaws.com/0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b.png",
"content_type": "image/png"
}
},
"attributes": [
{
"key": "Rarity",
"value": "common"
}
]
},
"market_data": {
"prices": {
"floor": 123
},
"last_sale": {
"price": 31,
"quantity": {
"int": "12345678",
"decimals": 5,
"float": 123.45678,
"numeric": "123.45678"
}
}
},
"external_links": [
{
"url": "https://www.indexcoop.com",
"type": "website",
"name": "Website"
}
],
"flags": {
"is_spam": true
}
},
"relationships": {
"chain": {
"links": {
"related": "https://api.zerion.io/v1/chains/polygon"
},
"data": {
"type": "chains",
"id": "polygon"
}
},
"nft_collection": {
"data": {
"type": "nft_collections",
"id": 14
}
}
}
}
]
}
]
}{
"links": {
"self": "https://api.zerion.io/v1/wallets/0x42b9df65b219b3dd36ff330a4dd8f327a6ada990/nft-positions/"
},
"data": []
}{
"errors": [
{
"title": "Parameter is malformed",
"detail": "Some validation errors will be described here"
}
]
}{
"errors": [
{
"title": "Unauthorized Error",
"detail": "The API key is invalid, please, make sure that you are using a valid key"
}
]
}{
"errors": [
{
"title": "Too many requests",
"detail": "Your request had been throttled"
}
]
}Authorizations
Headers
Set to testnet to return testnet data instead of mainnet.
testnet Path Parameters
The web3 wallet address. Must be a valid EVM address. Returns 400 if the address is not one Zerion tracks, such as a token contract, router or exchange hot wallet. Smart-contract wallets like Safe and ERC-4337 accounts are tracked as normal. Ethereum-compatible address (EVM).
^0x[a-fA-F0-9]{40}$"0x42b9df65b219b3dd36ff330a4dd8f327a6ada990"
Query Parameters
Keep only positions from the specified chains (comma-separated list). Only chains reporting supports_nft_positions in the flags of GET /v1/chains/ are accepted here. Naming a chain that fails that gate returns 400 rather than an empty result, with detail reading chain <id> does not support NFT positions (for example chain bob does not support NFT positions). When the filter is omitted, chains that fail the gate are left out of data silently, with no error and no meta signal.
25["ethereum", "polygon"]
Keep only positions from these collection IDs (comma-separated list). The IDs are returned in the collection field of each NFT.
Sort order for the results.
created_at, -created_at, floor_price, -floor_price "-floor_price"
Related resources to include in the response (comma-separated list), following the JSON:API include convention.
nfts, nft_collections, wallet_nft_collections Denominated currency value of returned prices
eth, btc, usd, eur, krw, rub, gbp, aud, cad, inr, jpy, nzd, try, zar, cny, chf Pagination parameters
Show child attributes
Show child attributes
Was this page helpful?