Get NFT owners by token ID
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"result": [
{
"token_address": "0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB",
"token_id": "15",
"contract_type": "ERC721",
"owner_of": "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
"block_number": "88256",
"block_number_minted": "88256",
"name": "CryptoKitties",
"symbol": "RARI",
"token_hash": "502cee781b0fb40ea02508b21d319ced",
"last_token_uri_sync": "2021-02-24T00:47:26.647Z",
"last_metadata_sync": "2021-02-24T00:47:26.647Z",
"possible_spam": "false",
"token_uri": "<string>",
"metadata": "<string>",
"normalized_metadata": {
"name": "Moralis Mug",
"description": "Moralis Coffee nug 3D Asset that can be used in 3D worldspaces. This NFT is presented as a flat PNG, a Unity3D Prefab and a standard fbx.",
"image": "https://arw2wxg84h6b.moralishost.com:2053/server/files/tNJatzsHirx4V2VAep6sc923OYGxvkpBeJttR7Ks/de504bbadadcbe30c86278342fcf2560_moralismug.png",
"external_link": "https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI",
"external_url": "https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI",
"animation_url": "https://giphy.com/gifs/food-design-donuts-o9ngTPVYW4qo8",
"attributes": [
{
"trait_type": "Eye Color",
"value": "hazel",
"display_type": "string",
"max_value": 100,
"trait_count": 7,
"order": 1
}
]
},
"media": {
"mimetype": "<string>",
"original_media_url": "<string>",
"updatedAt": "<string>",
"parent_hash": "<string>",
"media_collection": {
"low": {
"width": 123,
"height": 123,
"url": "<string>"
},
"medium": {
"width": 123,
"height": 123,
"url": "<string>"
},
"high": {
"width": 123,
"height": 123,
"url": "<string>"
}
}
},
"amount": "1",
"rarity_rank": 21669,
"rarity_percentage": 98,
"rarity_label": "Top 98%",
"verified_collection": "false",
"floor_price": "12345",
"floor_price_usd": "12345.4899",
"floor_price_currency": "eth",
"last_sale": {
"transaction_hash": "0x19e14f34b8f120c980f7ba05338d64c00384857fb9c561e2c56d0f575424a95c",
"block_timestamp": "2023-04-04T15:59:11.000Z",
"buyer_address": "0xcb1c1fde09f811b294172696404e88e658659905",
"seller_address": "0x497a7dee2f13db161eb2fec060fa783cb041419f",
"price": "7300000000000000",
"price_formatted": "0.0073",
"payment_token": {
"token_name": "Ether",
"token_symbol": "ETH",
"token_logo": "https://cdn.moralis.io/eth/0x.png",
"token_decimals": "18",
"token_address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"usd_price_at_sale": "13.61",
"current_usd_value": "15.53",
"token_address": "0xe8778996e096b39705c6a0a937eb587a1ebbda17",
"token_id": "170"
}
}
],
"status": "SYNCING",
"page": "2",
"page_size": "100",
"cursor": "<string>"
}Ownership
Owners by Token ID
List wallets owning a specific NFT, defined by its contract and token ID.
GET
/
nft
/
{address}
/
{token_id}
/
owners
Get NFT owners by token ID
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/nft/{address}/{token_id}/owners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"result": [
{
"token_address": "0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB",
"token_id": "15",
"contract_type": "ERC721",
"owner_of": "0x057Ec652A4F150f7FF94f089A38008f49a0DF88e",
"block_number": "88256",
"block_number_minted": "88256",
"name": "CryptoKitties",
"symbol": "RARI",
"token_hash": "502cee781b0fb40ea02508b21d319ced",
"last_token_uri_sync": "2021-02-24T00:47:26.647Z",
"last_metadata_sync": "2021-02-24T00:47:26.647Z",
"possible_spam": "false",
"token_uri": "<string>",
"metadata": "<string>",
"normalized_metadata": {
"name": "Moralis Mug",
"description": "Moralis Coffee nug 3D Asset that can be used in 3D worldspaces. This NFT is presented as a flat PNG, a Unity3D Prefab and a standard fbx.",
"image": "https://arw2wxg84h6b.moralishost.com:2053/server/files/tNJatzsHirx4V2VAep6sc923OYGxvkpBeJttR7Ks/de504bbadadcbe30c86278342fcf2560_moralismug.png",
"external_link": "https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI",
"external_url": "https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI",
"animation_url": "https://giphy.com/gifs/food-design-donuts-o9ngTPVYW4qo8",
"attributes": [
{
"trait_type": "Eye Color",
"value": "hazel",
"display_type": "string",
"max_value": 100,
"trait_count": 7,
"order": 1
}
]
},
"media": {
"mimetype": "<string>",
"original_media_url": "<string>",
"updatedAt": "<string>",
"parent_hash": "<string>",
"media_collection": {
"low": {
"width": 123,
"height": 123,
"url": "<string>"
},
"medium": {
"width": 123,
"height": 123,
"url": "<string>"
},
"high": {
"width": 123,
"height": 123,
"url": "<string>"
}
}
},
"amount": "1",
"rarity_rank": 21669,
"rarity_percentage": 98,
"rarity_label": "Top 98%",
"verified_collection": "false",
"floor_price": "12345",
"floor_price_usd": "12345.4899",
"floor_price_currency": "eth",
"last_sale": {
"transaction_hash": "0x19e14f34b8f120c980f7ba05338d64c00384857fb9c561e2c56d0f575424a95c",
"block_timestamp": "2023-04-04T15:59:11.000Z",
"buyer_address": "0xcb1c1fde09f811b294172696404e88e658659905",
"seller_address": "0x497a7dee2f13db161eb2fec060fa783cb041419f",
"price": "7300000000000000",
"price_formatted": "0.0073",
"payment_token": {
"token_name": "Ether",
"token_symbol": "ETH",
"token_logo": "https://cdn.moralis.io/eth/0x.png",
"token_decimals": "18",
"token_address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
},
"usd_price_at_sale": "13.61",
"current_usd_value": "15.53",
"token_address": "0xe8778996e096b39705c6a0a937eb587a1ebbda17",
"token_id": "170"
}
}
],
"status": "SYNCING",
"page": "2",
"page_size": "100",
"cursor": "<string>"
}Authorizations
Path Parameters
The address of the NFT contract
Example:
"0x524cab2ec69124574082676e6f654a18df49a048"
The ID of the token
Example:
"1"
Query Parameters
The chain to query
Available options:
eth, 0x1, sepolia, 0xaa36a7, polygon, 0x89, bsc, 0x38, bsc testnet, 0x61, avalanche, 0xa86a, cronos, 0x19, arbitrum, 0xa4b1, chiliz, 0x15b38, gnosis, 0x64, base, 0x2105, base sepolia, 0x14a34, optimism, 0xa, polygon amoy, 0x13882, linea, 0xe708, moonbeam, 0x504, moonriver, 0x505, flow, 0x2eb, flow-testnet, 0x221, ronin, 0x7e4, ronin-testnet, 0x31769, lisk, 0x46f, pulse, 0x171, sei-testnet, 0x530, sei, 0x531, monad, 0x8f Example:
"eth"
The format of the token ID
Available options:
decimal, hex Example:
"decimal"
The desired page size of the result.
Required range:
x >= 0The cursor returned in the previous response (used for getting the next page).
Should normalized metadata be returned?
Should preview media data be returned?
Response
200 - application/json
Returns a collection of NFTs with their respective owners.
⌘I

