Moralis Get Market Data API

The Get Market Data API from Moralis — 11 operation(s) for get market data.

Operations 11

POST /nft/{address}/nfts-by-traits Get NFTs by traits #
GET /nft/{address}/traits Get NFT traits by collection #
GET /nft/{address}/traits/paginate Get NFT traits by collection paginate #
GET /nft/{address}/traits/resync Resync NFT Trait #
GET /nft/{address}/trades Get NFT trades by collection #
GET /nft/{address}/{token_id}/trades Get NFT trades by token #
GET /wallets/{address}/nfts/trades Get NFT trades by wallet address #
GET /nft/{address}/price Get NFT sale prices by collection #
GET /nft/{address}/{token_id}/price Get NFT sale prices by token #
GET /erc20/{address}/price Get ERC20 token price #
POST /erc20/prices Get Multiple ERC20 token prices #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moralis-get-market-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moralis-get-market-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EVM Balance Get Market Data API
  version: '2.2'
servers:
- url: https://deep-index.moralis.io/api/v2.2
security:
- ApiKeyAuth: []
tags:
- name: Get Market Data
paths:
  /nft/{address}/nfts-by-traits:
    post:
      security:
      - ApiKeyAuth: []
      summary: Get NFTs by traits
      description: Find NFTs in a contract matching specific traits, perfect for attribute-based searches.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTByContractTraits
      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: query
        name: limit
        description: The desired page size of the result.
        required: false
        schema:
          type: integer
          minimum: 1
          default: 100
      - in: query
        name: cursor
        description: The cursor returned in the previous response (used for getting the next page).
        schema:
          type: string
      - 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: false
      - in: query
        name: media_items
        description: Should preview media data be returned?
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        description: Body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                traits:
                  type: object
                  minItems: 1
                  maxItems: 25
              example:
                traits:
                  Legendary: Astronaut
              required:
              - traits
      responses:
        '200':
          description: Returns a collection of NFTs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nftCollection'
      x-mcp-prompt: Provide the contract address and trait filters to find matching NFTs. Use this when users ask for NFTs with specific attributes (e.g., rare traits) or are searching for unique items in a collection.
  /nft/{address}/traits:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT traits by collection
      description: Explore the distinct traits of NFTs in a contract, showcasing their unique attributes.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTTraitsByCollection
      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'
      responses:
        '200':
          description: Returns the traits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/groupedTraitCollection'
      x-mcp-prompt: Enter the contract address to retrieve its NFT traits. Use this when users want to understand the trait distribution of a collection or analyze NFT characteristics.
  /nft/{address}/traits/paginate:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT traits by collection paginate
      description: Fetch NFT traits for a contract with pagination for efficient navigation of large collections.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTTraitsByCollectionPaginate
      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: query
        name: cursor
        description: The cursor returned in the previous response (used for getting the next page).
        required: false
        schema:
          type: string
      - in: query
        name: limit
        description: The desired page size of the result.
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: order
        description: The order of the result, in ascending (ASC) or descending (DESC)
        required: false
        schema:
          $ref: '#/components/schemas/orderList'
      responses:
        '200':
          description: Returns the traits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/traitCollection'
      x-mcp-prompt: Submit the contract address and pagination settings like `limit` or `cursor` for NFT traits. Use this when users need paginated trait data for large NFT collections or are building trait-based analytics.
  /nft/{address}/traits/resync:
    get:
      security:
      - ApiKeyAuth: []
      summary: Resync NFT Trait
      description: Refresh trait and rarity data for NFTs in a contract to ensure accuracy.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: resyncNFTRarity
      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'
      responses:
        '202':
          description: The resync request was received and will be executed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/metadataResync'
      x-mcp-prompt: Provide the contract address to resync its NFT trait data. Use this when users report outdated rarity data or want to ensure the latest trait information for a collection.
  /nft/{address}/trades:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT trades by collection
      description: Get NFT trades for a given contract with the ability to filter by marketplace.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTTrades
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: from_block
        description: 'The minimum block number from which to get the transfers

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: to_block
        description: The block number to get the trades from
        required: false
        schema:
          type: string
      - in: query
        name: from_date
        description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: to_date
        description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''to_block'' or ''to_date''

          * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: marketplace
        description: Marketplace from which to get the trades. See [supported Marketplaces](https://docs.moralis.io/web3-data-api/evm/nft-marketplaces).
        example: opensea
        required: false
        schema:
          type: string
          example: opensea
          default: opensea
          enum:
          - opensea
          - blur
          - looksrare
          - x2y2
          - 0xprotocol
      - in: query
        name: cursor
        description: The cursor returned in the previous response (used for getting the next page).
        required: false
        schema:
          type: string
      - in: query
        name: limit
        description: The desired page size of the result.
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: nft_metadata
        description: Include the NFT Metadata of the NFT Token
        required: false
        schema:
          type: boolean
          default: true
      - in: path
        name: address
        description: The address of the NFT contract
        required: true
        schema:
          type: string
          example: '0x524cab2ec69124574082676e6f654a18df49a048'
      responses:
        '200':
          description: Returns the trades
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tradeCollection'
      x-mcp-prompt: Enter the contract address to fetch NFT trade data. Optionally, include a marketplace filter. Use this when users ask for trading history of a collection or want to analyze marketplace activity.
  /nft/{address}/{token_id}/trades:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT trades by token
      description: Get NFT trades for a specific NFT by specifying a contract addres and token ID.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTTradesByToken
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: from_block
        description: 'The minimum block number from which to get the transfers

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: to_block
        description: The block number to get the trades from
        required: false
        schema:
          type: string
      - in: query
        name: from_date
        description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: to_date
        description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''to_block'' or ''to_date''

          * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: cursor
        description: The cursor returned in the previous response (used for getting the next page).
        required: false
        schema:
          type: string
      - in: query
        name: limit
        description: The desired page size of the result.
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: nft_metadata
        description: Include the NFT Metadata of the NFT Token
        required: false
        schema:
          type: boolean
          default: true
      - 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 token ID of the NFT contract
        required: true
        schema:
          type: string
          example: '123'
      responses:
        '200':
          description: Returns the trades
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tradeCollection'
      x-mcp-prompt: Provide the contract address and token ID to view the NFT’s trade history. Use this when users want trade details for a specific NFT or are tracking its market activity.
  /wallets/{address}/nfts/trades:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT trades by wallet address
      description: Get NFT trades for a specific wallet address.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTTradesByWallet
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: from_block
        description: 'The minimum block number from which to get the transfers

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: to_block
        description: The block number to get the trades from
        required: false
        schema:
          type: string
      - in: query
        name: from_date
        description: 'The start date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''from_block'' or ''from_date''

          * If ''from_date'' and ''from_block'' are provided, ''from_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: to_date
        description: 'The end date from which to get the transfers (format in seconds or datestring accepted by momentjs)

          * Provide the param ''to_block'' or ''to_date''

          * If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used.

          '
        required: false
        schema:
          type: string
      - in: query
        name: cursor
        description: The cursor returned in the previous response (used for getting the next page).
        required: false
        schema:
          type: string
      - in: query
        name: limit
        description: The desired page size of the result.
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: nft_metadata
        description: Include the NFT Metadata of the NFT Token
        required: false
        schema:
          type: boolean
          default: true
      - in: path
        name: address
        description: The owner wallet address
        required: true
        schema:
          type: string
          example: '0xcB1C1FdE09f811B294172696404e88E658659905'
      responses:
        '200':
          description: Returns the trades
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tradeCollection'
      x-mcp-prompt: Input the wallet address to retrieve its NFT trade history. Use this when users ask about a wallet’s NFT trading activity or want to review their buy/sell history.
  /nft/{address}/price:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT sale prices by collection
      description: Fetch sale prices for NFTs in a contract over a specified number of days. Returns the last sale, lowest sale, highest sale, average sale and total trades within the specified period.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTContractSalePrices
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: days
        description: 'The number of days to look back to find the lowest price

          If not provided 7 days will be the default and 365 is the maximum

          '
        required: false
        schema:
          type: integer
          minimum: 0
      - in: path
        name: address
        description: The address of the NFT collection
        required: true
        schema:
          type: string
          example: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
      responses:
        '200':
          description: Returns the sold price details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/soldPrice'
      x-mcp-prompt: Enter the contract address and time period to retrieve NFT sale prices. Use this when users ask for recent sale prices of a collection or are analyzing market trends.
  /nft/{address}/{token_id}/price:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get NFT sale prices by token
      description: Fetch sale prices for a specific NFT over a specified number of days. Returns the last sale, lowest sale, highest sale, average sale and total trades within the specified period.
      tags:
      - Get Market Data
      x-tag-sdk: nft
      operationId: getNFTSalePrices
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: days
        description: 'The number of days to look back to find the lowest price

          If not provided 7 days will be the default and 365 is the maximum

          '
        required: false
        schema:
          type: integer
          minimum: 0
      - in: path
        name: address
        description: The address of the NFT collection
        required: true
        schema:
          type: string
          example: '0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D'
      - in: path
        name: token_id
        description: The token id of the NFT collection
        required: true
        schema:
          type: string
          example: '1'
      responses:
        '200':
          description: Returns the sold price details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/soldPrice'
      x-mcp-prompt: Provide the contract address, token ID, and time period for NFT sale prices. Use this when users want sale history for a specific NFT or are tracking its value.
  /erc20/{address}/price:
    get:
      security:
      - ApiKeyAuth: []
      summary: Get ERC20 token price
      description: Retrieve the current or historical price of an ERC20 token in the blockchain’s native currency and USD. Each token returned includes on-chain metadata, as well as off-chain metadata, logos, spam status and more. Additional options to exclude low-liquidity tokens and inactive tokens.
      tags:
      - Get Market Data
      x-tag-sdk: token
      operationId: getTokenPrice
      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 token contract
        required: true
        schema:
          type: string
          example: '0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0'
      - in: query
        name: exchange
        description: The factory name or address of the token exchange
        required: false
        schema:
          type: string
      - in: query
        name: to_block
        description: The block number from which the token price should be checked
        required: false
        schema:
          type: integer
          minimum: 0
      - in: query
        name: include
        description: This parameter is now deprecated as percentage change are included by default
        required: false
        deprecated: true
        schema:
          type: string
          example: ''
          default: ''
          enum:
          - percent_change
      - in: query
        name: max_token_inactivity
        description: Exclude tokens inactive for more than the given amount of days
        required: false
        schema:
          type: number
      - in: query
        name: min_pair_side_liquidity_usd
        description: Exclude tokens with liquidity less than the specified amount in USD. This parameter refers to the liquidity on a single side of the pair.
        required: false
        schema:
          type: number
      responses:
        '200':
          description: Returns the price denominated in the blockchain's native token and USD for a given token contract address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/erc20Price'
      x-mcp-prompt: Enter the token contract address to fetch its price. Use this when users ask for the current price of an ERC20 token or the historical price of a token at a point in time, or simply need price data for trading.
  /erc20/prices:
    post:
      security:
      - ApiKeyAuth: []
      summary: Get Multiple ERC20 token prices
      description: Retrieve the current or historical prices for multiple ERC20 tokens in the blockchain’s native currency and USD. Accepts an array of up to 100 `tokens`, each requiring `token_address` and optional fields such as `to_block` or `exchange`. Each token returned includes on-chain metadata, as well as off-chain metadata, logos, spam status and more. Additional options to exclude low-liquidity tokens and inactive tokens.
      tags:
      - Get Market Data
      x-tag-sdk: token
      operationId: getMultipleTokenPrices
      requestBody:
        description: Body
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetMultipleTokenPricesDto'
      parameters:
      - in: query
        name: chain
        description: The chain to query
        required: false
        schema:
          $ref: '#/components/schemas/chainList'
      - in: query
        name: include
        description: This parameter is now deprecated as percentage change are included by default
        required: false
        deprecated: true
        schema:
          type: string
          example: ''
          default: ''
          enum:
          - percent_change
      - in: query
        name: max_token_inactivity
        description: Exclude tokens inactive for more than the given amount of days
        required: false
        schema:
          type: number
      - in: query
        name: min_pair_side_liquidity_usd
        description: Exclude tokens with liquidity less than the specified amount in USD. This parameter refers to the liquidity on a single side of the pair.
        required: false
        schema:
          type: number
      responses:
        '200':
          description: Returns an array of token prices denominated in the blockchain's native token and USD for a given token contract address
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/erc20Price'
      x-mcp-prompt: Submit a list of token contract addresses to retrieve their prices. Use this when users need price data for one or many tokens or are comparing market values.
components:
  schemas:
    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
    GetMultipleTokenPricesDto:
      required:
      - tokens
      properties:
        tokens:
          type: array
          maxItems: 30
          description: The tokens to be fetched
          example:
          - token_address: '0xdac17f958d2ee523a2206206994597c13d831ec7'
          - token_address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
          - token_address: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84'
            exchange: uniswapv2
            to_block: '16314545'
          - token_address: '0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0'
          items:
            $ref: '#/components/schemas/tokenPriceItem'
    trait:
      required:
      - trait_type
      - trait_value
      - count
      - percentage
      - rarity_label
      properties:
        trait_type:
          type: string
          description: The trait type
          example: Background
        trait_value:
          type: string
          description: The trait value
          example: Lavendar
        count:
          type: number
          description: The total NFT in the collection with this trait
          example: 18593
        percentage:
          type: number
          description: The rarity percentage of the trait
          example: 85.8
        rarity_label:
          type: string
          description: The rarity label of the trait
          example: Top 4% trait
    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'
    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'
    groupedTrait:
      required:
      - trait_type
      - values
      properties:
        trait_type:
          type: string
          description: The trait type
          example: Background
        values:
          type: array
          items:
            description: The trait values
            required:
            - trait_value
            - count
            - percentage
            - rarity_label
            properties:
              trait_value:
                type: string
                description: The trait value
                example: Lavendar
              count:
                type: number
                description: The total NFT in the collection with this trait
                example: 18593
              percentage:
                type: number
                description: The rarity percentage of the trait
                example: 85.8
              rarity_label:
                type: string
                description: The rarity label of the trait
                example: Top 4% trait
    metadataResync:
      required:
      - status
      properties:
        status:
          type: string
          description: The status of the resync request
    trade:
      required:
      - transaction_hash
      - transaction_index
      - token_ids
      - seller_address
      - buyer_address
      - token_address
      - marketplace_address
      - price
      - block_timestamp
      - block_number
      - block_hash
      properties:
        transaction_hash:
          type: string
          description: The transaction hash
          example: '0x057Ec652A4F150f7FF94f089A38008f49a0DF88e'
        transaction_index:
          type: string
          description: The transaction index
        token_ids:
          type: array
          items:
            type: string
            example: '15'
          description: The token ID(s) traded
          example:
          - '15'
          - '54'
        seller_address:
          type: string
          description: The address that sold the NFT
          example: '0x057Ec652A4F150f7FF94f089A38008f49a0DF88e'
        buyer_address:
          type: string
          description: The address that bought the NFT
          example: '0x057Ec652A4F150f7FF94f089A38008f49a0DF88e'
        token_address:
          type: string
          description: The address of the NFT contract
          example: '0x4ad3785ec7eed7589fa86538244a4530f962434f'
        marketplace_address:
          type: string
          description: The address of the contract that traded the NFT
          example: '0x057Ec652A4F150f7FF94f089A38008f49a0DF88e'
        price_token_address:
          type: string
          description: The address of the token used to pay for the NFT
          example: '0x60e4d786628fea6478f785a6d7e704777c86a7c6'
        price:
          type: string
          description: The value that was sent in the transaction (ETH/BNB/etc..)
          example: '100000000000000

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moralis/refs/heads/main/openapi/moralis-get-market-data-api-openapi.yml