Moralis Get Metadata API

The Get Metadata API from Moralis — 4 operation(s) for get metadata.

OpenAPI Specification

moralis-get-metadata-api-openapi.yml Raw ↑
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