Moralis Get Metadata API
The Get Metadata API from Moralis — 4 operation(s) for get metadata.
The Get Metadata API from Moralis — 4 operation(s) for get metadata.
openapi: 3.0.0
info:
title: EVM Balance Get Metadata API
version: '2.2'
servers:
- url: https://deep-index.moralis.io/api/v2.2
security:
- ApiKeyAuth: []
tags:
- name: Get Metadata
paths:
/nft/{address}/{token_id}:
get:
security:
- ApiKeyAuth: []
summary: Get NFT metadata
description: Fetch metadata for a specific NFT. Includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available.
tags:
- Get Metadata
x-tag-sdk: nft
operationId: getNFTMetadata
parameters:
- in: query
name: chain
description: The chain to query
required: false
schema:
$ref: '#/components/schemas/chainList'
- in: path
name: address
description: The address of the NFT contract
required: true
schema:
type: string
example: '0x524cab2ec69124574082676e6f654a18df49a048'
- in: path
name: token_id
description: The ID of the token
required: true
schema:
type: string
example: '1'
- in: query
name: format
description: The format of the token ID
required: false
schema:
type: string
example: decimal
default: decimal
enum:
- decimal
- hex
- in: query
name: normalizeMetadata
description: Should normalized metadata be returned?
required: false
schema:
type: boolean
default: true
- in: query
name: media_items
description: Should preview media data be returned?
required: false
schema:
type: boolean
default: false
- in: query
name: include_prices
description: Should NFT last sale prices be included in the result?
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Returns the specified NFT.
content:
application/json:
schema:
$ref: '#/components/schemas/nft'
x-mcp-prompt: Submit the contract address and token ID to fetch the NFT’s metadata. Use this when users ask for details about a specific NFT or need its attributes for display.
/nft/{address}/{token_id}/metadata/resync:
get:
security:
- ApiKeyAuth: []
summary: Resync NFT metadata
description: Update an NFT’s metadata, either from its current token URI or a new one. Choose sync for immediate results or async for background processing.
tags:
- Get Metadata
x-tag-sdk: nft
operationId: reSyncMetadata
parameters:
- in: query
name: chain
description: The chain to query
required: false
schema:
$ref: '#/components/schemas/chainList'
- in: path
name: address
description: The address of the NFT contract
required: true
schema:
type: string
example: '0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB'
- in: path
name: token_id
description: The ID of the token
required: true
schema:
type: string
example: '1'
- in: query
name: flag
description: The type of resync to operate
required: false
schema:
type: string
example: uri
default: uri
enum:
- uri
- metadata
- in: query
name: mode
description: To define the behaviour of the endpoint
required: false
schema:
type: string
example: sync
default: async
enum:
- async
- sync
responses:
'200':
description: (In sync mode) Resync request executed.
content:
application/json:
schema:
$ref: '#/components/schemas/metadataResync'
'202':
description: The resync request was received and will be executed.
content:
application/json:
schema:
$ref: '#/components/schemas/metadataResync'
'404':
description: (In sync mode) Resync request executed and metadata could not be updated.
content:
application/json:
schema:
$ref: '#/components/schemas/metadataResync'
x-mcp-prompt: Submit the contract address, token ID, and sync mode (sync/async). Specify metadata or token URI refresh. Use this when users report outdated NFT metadata or need refreshed token details.
/erc20/metadata:
get:
security:
- ApiKeyAuth: []
summary: Get ERC20 token metadata by contract
description: Retrieve metadata (name, symbol, decimals, logo) for an ERC20 token contract, as well as off-chain metadata, total supply, categories, logos, spam status and more.
tags:
- Get Metadata
x-tag-sdk: token
operationId: getTokenMetadata
parameters:
- in: query
name: chain
description: The chain to query
required: false
schema:
$ref: '#/components/schemas/chainList'
- in: query
name: addresses
description: The addresses to get metadata for
required: true
schema:
type: array
maxItems: 10
items:
type: string
example: '0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0'
responses:
'200':
description: Get the metadata for a given ERC20 token contract address (name, symbol, decimals, logo).
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/erc20Metadata'
x-mcp-prompt: Enter the token contract address to fetch its metadata. Use this when users need basic information about a token or are verifying contract details.
/erc20/metadata/symbols:
get:
security:
- ApiKeyAuth: []
summary: Get ERC20 token metadata by symbols
description: Fetch metadata (name, symbol, decimals, logo) for a list of ERC20 token symbols.
deprecated: true
tags:
- Get Metadata
x-tag-sdk: token
operationId: getTokenMetadataBySymbol
parameters:
- in: query
name: chain
description: The chain to query
required: false
schema:
$ref: '#/components/schemas/chainList'
- in: query
name: symbols
description: The symbols to get metadata for
required: true
schema:
type: array
items:
type: string
example: LINK
responses:
'200':
description: Returns metadata for a given token contract address (name, symbol, decimals, logo).
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/erc20Metadata'
x-mcp-prompt: Provide a list of token symbols to retrieve their metadata. Use this when users request metadata for tokens by symbol or are exploring multiple tokens.
components:
schemas:
nft:
required:
- token_address
- token_id
- contract_type
- name
- symbol
- possible_spam
properties:
token_address:
type: string
description: The address of the NFT contract
example: '0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB'
token_id:
type: string
description: The token ID of the NFT
example: '15'
owner_of:
type: string
description: The wallet address of the owner of the NFT
example: '0x9c83ff0f1c8924da96cb2fcb7e093f78eb2e316b'
token_hash:
type: string
description: The token hash
example: 502cee781b0fb40ea02508b21d319ced
block_number:
type: string
description: The block number when the amount or owner changed
example: '88256'
block_number_minted:
type: string
description: The block number when the NFT was minted
example: '88256'
contract_type:
type: string
description: The type of NFT contract standard
example: ERC721
token_uri:
type: string
description: The URI to the metadata of the token
metadata:
type: string
description: The metadata of the token
normalized_metadata:
$ref: '#/components/schemas/normalizedMetadata'
description: A normalized metadata version of the NFT's metadata.
media:
$ref: '#/components/schemas/media'
description: A set of links to 'thumbnail / preview' media files
minter_address:
type: string
description: The address that minted the NFT
example: '0x9c83ff0f1c8924da96cb2fcb7e093f78eb2e316b'
last_token_uri_sync:
type: string
description: When the token_uri was last updated
last_metadata_sync:
type: string
description: When the metadata was last updated
amount:
type: string
description: The quantity of this item that the user owns (used by ERC1155)
example: '1'
name:
type: string
description: The name of the NFT contract
example: CryptoKitties
symbol:
type: string
description: The symbol of the NFT contract
example: RARI
possible_spam:
type: boolean
description: Indicates if a contract is possibly a spam contract
example: 'false'
verified_collection:
type: boolean
description: Indicates if a contract is verified
example: 'false'
rarity_rank:
type: number
description: The rarity rank
example: 21669
rarity_percentage:
type: number
description: The rarity percentage
example: 98
rarity_label:
type: string
description: The rarity label
example: Top 98%
last_sale:
type: object
description: Details about the most recent sale involving this token.
nullable: true
required:
- transaction_hash
- block_timestamp
- price
- price_formatted
- buyer_address
- seller_address
- payment_token
properties:
transaction_hash:
type: string
description: The transaction hash of the last sale
example: '0x19e14f34b8f120c980f7ba05338d64c00384857fb9c561e2c56d0f575424a95c'
block_timestamp:
type: string
description: The block timestamp of the last sale
example: '2023-04-04T15:59:11.000Z'
buyer_address:
type: string
description: The buyer address of the last sale
example: '0xcb1c1fde09f811b294172696404e88e658659905'
seller_address:
type: string
description: The seller address of the last sale
example: '0x497a7dee2f13db161eb2fec060fa783cb041419f'
price:
type: string
description: The price of the last sale
example: '7300000000000000'
price_formatted:
type: string
description: The formatted price of the last sale
example: '0.0073'
usd_price_at_sale:
type: string
description: The USD price of the last sale
example: '13.61'
current_usd_value:
type: string
description: The USD price of the last sale at the current value
example: '15.53'
token_address:
type: string
description: The token address that is sold
example: '0xe8778996e096b39705c6a0a937eb587a1ebbda17'
token_id:
type: string
description: The token ID that is sold
example: '170'
payment_token:
type: object
description: The ERC20 token that is being traded with
required:
- token_name
- token_symbol
- token_logo
- token_decimals
- token_address
properties:
token_name:
type: string
description: The token name
example: Ether
token_symbol:
type: string
description: The token symbol
example: ETH
token_logo:
type: string
description: The token logo
example: https://cdn.moralis.io/eth/0x.png
token_decimals:
type: string
description: The token decimals
example: '18'
token_address:
type: string
description: The token address
example: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
list_price:
type: object
properties:
listed:
type: boolean
description: Indicates if the NFT is listed for sale
example: true
price:
type: string
description: The price of the NFT
example: '27008'
price_currency:
type: string
description: The currency of the price
example: eth
price_usd:
type: string
description: The price of the NFT in USD
example: '13.61'
marketplace:
type: string
description: The marketplace where the NFT is listed
example: opensea
floor_price:
type: string
description: The floor price of collection the NFT belongs to
example: '12345'
floor_price_usd:
type: string
description: The floor price of the contract in USD
example: '12345.4899'
floor_price_currency:
type: string
description: The currency of the floor price
example: eth
normalizedMetadata:
properties:
name:
type: string
description: The name or title of the NFT
example: Moralis Mug
description:
type: string
description: A detailed description of the NFT
example: 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:
type: string
description: The URL of the NFT's image
example: https://arw2wxg84h6b.moralishost.com:2053/server/files/tNJatzsHirx4V2VAep6sc923OYGxvkpBeJttR7Ks/de504bbadadcbe30c86278342fcf2560_moralismug.png
external_link:
type: string
description: A link to additional information
example: https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI
external_url:
type: string
description: A link to additional information
example: https://giphy.com/gifs/loop-recursion-ting-aaODAv1iuQdgI
animation_url:
type: string
description: An animated version of the NFT's image
example: https://giphy.com/gifs/food-design-donuts-o9ngTPVYW4qo8
attributes:
type: array
items:
$ref: '#/components/schemas/normalizedMetadataAttribute'
normalizedMetadataAttribute:
properties:
trait_type:
type: string
description: The trait title or descriptor
example: Eye Color
value:
type: object
description: The value of the attribute
example: hazel
display_type:
type: string
description: The type the attribute value should be displayed as
example: string
max_value:
type: number
description: For numeric values, the upper range
example: 100
trait_count:
type: number
description: The number of possible values for this trait
example: 7
order:
type: number
description: Order the trait should appear in the attribute list.
example: 1
mediaCollection:
properties:
low:
description: Preview media file, lowest quality (for images 100px x 100px)
$ref: '#/components/schemas/mediaItem'
medium:
description: Preview media file, medium quality (for images 250px x 250px)
$ref: '#/components/schemas/mediaItem'
high:
description: Preview media file, highest quality (for images 500px x 500px)
$ref: '#/components/schemas/mediaItem'
required:
- original
- low
- medium
- high
chainList:
type: string
example: eth
default: eth
enum:
- eth
- '0x1'
- sepolia
- '0xaa36a7'
- polygon
- '0x89'
- bsc
- '0x38'
- bsc testnet
- '0x61'
- avalanche
- '0xa86a'
- fantom
- '0xfa'
- cronos
- '0x19'
- arbitrum
- '0xa4b1'
- chiliz
- '0x15b38'
- chiliz testnet
- '0x15b32'
- gnosis
- '0x64'
- gnosis testnet
- '0x27d8'
- base
- '0x2105'
- base sepolia
- '0x14a34'
- optimism
- '0xa'
- polygon amoy
- '0x13882'
- linea
- '0xe708'
- moonbeam
- '0x504'
- moonriver
- '0x505'
- moonbase
- '0x507'
- linea sepolia
- '0xe705'
- flow
- '0x2eb'
- flow-testnet
- '0x221'
- ronin
- '0x7e4'
- ronin-testnet
- '0x31769'
- lisk
- '0x46f'
- lisk-sepolia
- '0x106a'
- pulse
- '0x171'
- sei-testnet
- '0x530'
- sei
- '0x531'
- monad
- '0x8f'
metadataResync:
required:
- status
properties:
status:
type: string
description: The status of the resync request
media:
properties:
mimetype:
type: string
description: The mimetype of the media file [see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types]
category:
enum:
- image
- audio
- video
status:
enum:
- success
- processing
- unsupported_media
- invalid_url
- host_unavailable
- temporarily_unavailable
description: <table><tr><td>success</td><td>The NFT Preview was created / retrieved successfully</td></tr><tr><td>processing</td><td>The NFT Preview was not found and has been submitted for generation.</td></tr><tr><td>unsupported_media</td><td>The mime-type of the NFT's media file indicates a type not currently supported.</td></tr><tr><td>invalid_url</td><td>The 'image' URL from the NFT's metadata is not a valid URL and cannot be processed.</td></tr><tr><td>host_unavailable</td><td>The 'image' URL from the NFT's metadata returned an HttpCode indicating the host / file is not available.</td></tr><tr><td>temporarily_unavailable</td><td>The attempt to load / parse the NFT media file failed (usually due to rate limiting) and will be tried again at next request.</td></tr></table>
original_media_url:
type: string
description: The url of the original media file.
updatedAt:
type: string
description: The timestamp of the last update to this NFT media record.
parent_hash:
type: string
description: Hash value of the original media file.
media_collection:
description: Preview item associated with the original
$ref: '#/components/schemas/mediaCollection'
discoveryTokenLinks:
type: object
required:
- bitbucket
- discord
- facebook
- github
- instagram
- linkedin
- medium
- reddit
- telegram
- tiktok
- twitter
- website
- youtube
properties:
bitbucket:
type: string
description: The link of the token on the platform
discord:
type: string
description: The link of the token on the platform
facebook:
type: string
description: The link of the token on the platform
github:
type: string
description: The link of the token on the platform
instagram:
type: string
description: The link of the token on the platform
linkedin:
type: string
description: The link of the token on the platform
medium:
type: string
description: The link of the token on the platform
reddit:
type: string
description: The link of the token on the platform
telegram:
type: string
description: The link of the token on the platform
tiktok:
type: string
description: The link of the token on the platform
twitter:
type: string
description: The link of the token on the platform
website:
type: string
description: The link of the token on the platform
youtube:
type: string
description: The link of the token on the platform
erc20Metadata:
type: object
required:
- address
- name
- symbol
- decimals
- created_at
- possible_spam
properties:
address:
type: string
description: The address of the token contract
example: '0x6982508145454ce325ddbe47a25d4ec3d2311933'
address_label:
type: string
nullable: true
description: The label of the address
example: Binance 1
name:
type: string
description: The name of the token contract
example: Kylin Network
symbol:
type: string
description: The symbol of the NFT contract
example: KYL
decimals:
type: string
description: The number of decimals on the token
example: '18'
logo:
type: string
nullable: true
description: The logo of the token
example: https://cdn.moralis.io/eth/0x67b6d479c7bb412c54e03dca8e1bc6740ce6b99c.png
logo_hash:
type: string
nullable: true
description: The logo hash
example: ee7aa2cdf100649a3521a082116258e862e6971261a39b5cd4e4354fcccbc54d
thumbnail:
type: string
nullable: true
description: The thumbnail of the logo
example: https://cdn.moralis.io/eth/0x67b6d479c7bb412c54e03dca8e1bc6740ce6b99c_thumb.png
total_supply:
type: string
nullable: false
description: Total tokens created minus any that have been burned
example: '420689899999994793099999999997400'
total_supply_formatted:
type: string
nullable: false
description: Total tokens created minus any that have been burned (decimal formatted)
example: '420689899999994.7930999999999974'
implementations:
type: array
items:
description: The token addresses of the same symbol from another chains
required:
- chainId
- address
properties:
chainId:
type: string
description: The chain id
example: '0x1'
chain:
type: string
description: The chain name
example: eth
chainName:
type: string
description: The chain name
example: Ethereum
address:
type: string
description: The token address
example: '0x6982508145454ce325ddbe47a25d4ec3d2311933'
fully_diluted_valuation:
type: string
nullable: false
description: Fully Diluted Valuation (FDV), this represents the token's Current Price x Total Supply
example: '3407271444.05'
block_number:
type: string
validated:
type: number
created_at:
type: string
description: The timestamp of when the erc20 token was created
possible_spam:
type: boolean
description: Indicates if a contract is possibly a spam contract
example: 'false'
verified_contract:
type: boolean
description: Indicates if a contract is verified
example: false
categories:
type: array
items:
type: string
nullable: true
description: Categories of the token
example:
- stablecoin
links:
$ref: '#/components/schemas/discoveryTokenLinks'
circulating_supply:
type: string
description: The circulating supply of the token
example: '4206864.7489303'
market_cap:
type: string
description: The market cap of the token
example: '3407271444.05'
mediaItem:
properties:
width:
type: integer
description: The width of the preview image.
height:
type: integer
description: The height of the preview image.
url:
type: string
description: The url of the preview file.
required:
- width
- height
- url
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
x-default: test
x-samples-languages:
- node
- javascript
- csharp
- curl
- python
x-mcp-blacklist:
- getNFTTraitsByCollectionPaginate
- getNFTContractMetadata
- getTokenPrice
- getNativeBalance
- getTokenAnalytics
- resyncNFTRarity
- syncNFTContract
- reSyncMetadata
- runContractFunction
- web3ApiVersion
- endpointWeights
- getWalletTokenBalances
- getTokenMetadataBySymbol
- getWalletTransactions
- getWalletTransactionsVerbose
- getTransaction
- getPairPrice
- reviewContracts
- getTrendingTokens
- getWalletTokenTransfers
- getWalletNFTTransfers
- getPairReserves
- getPairAddress
- getTokenStats
- resolveAddressToDomain
- resolveDomain
- getNFTFloorPriceByToken
- getBlockStats
- getNewTokensByExchange
- getBondingTokensByExchange
- getGraduatedTokensByExchange
- getTokenBondingStatus
- getAggregatedTokenPairStats
- getTokenCategories
- getRisingLiquidityTokens
- getBuyingPressureTokens
- getSolidPerformersTokens
- getExperiencedBuyersTokens
- getRiskyBetsTokens
- getBlueChipTokens
- getNFTOwners
- getNFTTokenIdOwners
- getContractNFTs
- getNFTTradesByToken
- getNFTTransfers