Look up a Hedera NFT with a mirror node

Read a Hedera NFT's owner and metadata through a mirror-node REST query. Learn the token and serial path, encoded fields and common response errors.

Content reviewed on

You can read an NFT's ownership and metadata without a wallet or private key. You need the network, collection token ID and serial number.

This guide uses the public mainnet mirror host. Choose an NFT already visible on mainnet and copy its real identifiers before running the request.

Step 1: Build the request path

The endpoint is:

GET /api/v1/tokens/{tokenId}/nfts/{serialNumber}

Replace both placeholders with the values from the NFT you chose. The full URL uses https://mainnet.mirrornode.hedera.com as its host.

For example, this command shape uses curl. Replace TOKEN_ID and SERIAL_NUMBER before running it:

curl --fail-with-body --max-time 15 \
  'https://mainnet.mirrornode.hedera.com/api/v1/tokens/TOKEN_ID/nfts/SERIAL_NUMBER'

This request reads data. It does not connect a wallet, spend HBAR or change ownership. The data provider can still impose service limits.

Step 2: Read the identifiers and owner

Check the returned token ID and serial before using the result. Read account_id as the account reported for ownership in that response, and inspect the deleted field when present.

FieldWhat to inspect
token_idThe collection queried
serial_numberThe NFT within that collection
account_idThe reported account associated with ownership
deletedWhether the NFT or its collection token is marked deleted
metadataBase64-encoded metadata bytes

A deleted or unavailable NFT needs different handling from an ordinary displayed holding. Do not present every response as a currently tradable NFT.

Step 3: Decode the metadata carefully

The metadata field is base64-encoded bytes. For a conventional NFT, decoding it can reveal a URI pointing to metadata JSON. It is not guaranteed to be JSON itself or even valid text.

Display a decoded URI as text first. Do not automatically fetch arbitrary addresses on your server or insert returned markup into a page. Validate the scheme and retrieval policy before building a media loader.

The metadata guide explains the JSON and media layers beyond this field.

Step 4: Read the transfer history

For the same NFT, the history path is:

GET /api/v1/tokens/{tokenId}/nfts/{serialNumber}/transactions

Follow pagination when needed. A transfer record tells you about movement of the token; it does not by itself establish a marketplace sale price.

Handle unavailable results

Check the network and identifiers after a 404. A newly submitted operation might not yet be indexed. For a 429 response, respect the provider's rate limits instead of making repeated immediate requests.

Keep errors distinct from valid empty results in your application. List an account's NFTs next.

References: NFT response fields and NFT transfer history.