Moralis
Moralis is a Web3 data platform offering REST-based Data APIs for EVM and Solana chains, real-time Streams (webhooks), Datashare exports, and an enterprise Data Indexer. Supports 30+ chains for wallets, analytics, automation, and data pipelines.
5 APIs
0 Features
Web3BlockchainData APIStreamsIndexing
APIs
Moralis EVM API
REST API for EVM chain data (NFTs, tokens, balances, transactions, blocks, resolve domain) across Ethereum, Polygon, Arbitrum, Optimism, Base, Avalanche, BNB, etc.
Moralis Solana API
REST API for Solana on-chain data (accounts, NFTs, tokens, transactions).
Moralis Streams API
REST API for managing real-time blockchain event streams delivered via webhooks.
Moralis Auth API
REST API for Sign-In with Ethereum / Solana challenge generation and verification.
Moralis Datashare
Bulk historical and ongoing blockchain dataset exports (Parquet/CSV via S3 / Snowflake share).
Collections
EVM API
OPENPricing Plans
Rate Limits
FinOps
Moralis Finops
FINOPSResources
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
LlmsText
LlmsText
Sources
opencollection: 1.0.0
info:
name: EVM API
version: '2.2'
request:
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
items:
- info:
name: NFT
type: folder
items:
- info:
name: Get NFTs by wallet address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/:address/nft
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the wallet
- name: format
value: ''
type: query
description: The format of the token ID
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: exclude_spam
value: ''
type: query
description: Should spam NFTs be excluded from the result?
- name: token_addresses
value: ''
type: query
description: The addresses to get balances for (optional)
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch all NFTs held by a specified wallet address. Use `token_addresses` to filter by one or many specific contract(s).
Each NFT returned includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more where available.
- info:
name: Get Metadata for NFTs
type: http
http:
method: POST
url: https://deep-index.moralis.io/api/v2.2/nft/getMultipleNFTs
params:
- name: chain
value: ''
type: query
description: The chain to query
body:
type: json
data: '{}'
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT metadata for one or many NFTs. Accepts an array of up to 25 `tokens`, each requiring `token_address` and
`token_id`. Each NFT returned includes on-chain metadata as well as off-chain metadata, floor prices, rarity and more
where available.
- info:
name: Get NFT Transfers by wallet address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/:address/nft/transfers
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The wallet address of the sender or recipient of the transfers
- name: contract_addresses
value: ''
type: query
description: List of contract addresses of transfers
- name: format
value: ''
type: query
description: The format of the token ID
- name: from_block
value: ''
type: query
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.
'
- name: to_block
value: ''
type: query
description: To get the reserves at this block number
- name: from_date
value: ''
type: query
description: 'The date from where 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.
'
- name: to_date
value: ''
type: query
description: 'Get transfers up until this date (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.
'
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: order
value: ''
type: query
description: The order of the result, in ascending (ASC) or descending (DESC)
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT transfers for a wallet, with filters like `contract_addresses` and other parameters. Supports ERC-721, ERC-1155
as well as custom contracts such as CryptoPunks and CryptoKitties.
- info:
name: Get NFT collections by wallet address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/:address/nft/collections
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The wallet address of the owner of NFTs in the collections
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: exclude_spam
value: ''
type: query
description: Should spam NFTs be excluded from the result?
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: token_counts
value: ''
type: query
description: Should token counts per collection be included in the response?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch all NFT Collections held by a specified wallet address. Each Collection returned includes on-chain metadata
as well as off-chain metadata, floor prices and more where available.
- info:
name: Get NFTs by contract address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: format
value: ''
type: query
description: The format of the token ID
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: totalRanges
value: ''
type: query
description: The number of subranges to split the results into
- name: range
value: ''
type: query
description: The desired subrange to query
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch all NFTs for a given collection. Each NFT returned includes on-chain metadata as well as off-chain metadata,
floor prices, rarity and more where available.
- info:
name: Get unique wallet addresses owning NFTs from a contract.
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/unique-owners
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get unique wallet addresses owning NFTs from a contract.
- info:
name: Get NFT owners by contract address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/owners
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: format
value: ''
type: query
description: The format of the token ID
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Identify wallets owning NFTs from a specific contract.
- info:
name: Get NFT transfers by contract address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/transfers
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: from_block
value: ''
type: query
description: 'The minimum block number from where 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.
'
- name: to_block
value: ''
type: query
description: 'The maximum block number from where to get the transfers.
* Provide the param ''to_block'' or ''to_date''
* If ''to_date'' and ''to_block'' are provided, ''to_block'' will be used.
'
- name: from_date
value: ''
type: query
description: 'The date from where 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.
'
- name: to_date
value: ''
type: query
description: 'Get transfers up until this date (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.
'
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: format
value: ''
type: query
description: The format of the token ID
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: order
value: ''
type: query
description: The order of the result, in ascending (ASC) or descending (DESC)
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT transfers for a contract, with options to filter by date, token, or other parameters.
- info:
name: Get NFTs by traits
type: http
http:
method: POST
url: https://deep-index.moralis.io/api/v2.2/nft/:address/nfts-by-traits
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: format
value: ''
type: query
description: The format of the token ID
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
body:
type: json
data: '{}'
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Find NFTs in a contract matching specific traits, perfect for attribute-based searches.
- info:
name: Get NFT traits by collection
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/traits
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Explore the distinct traits of NFTs in a contract, showcasing their unique attributes.
- info:
name: Get NFT traits by collection paginate
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/traits/paginate
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: order
value: ''
type: query
description: The order of the result, in ascending (ASC) or descending (DESC)
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch NFT traits for a contract with pagination for efficient navigation of large collections.
- info:
name: Resync NFT Trait
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/traits/resync
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Refresh trait and rarity data for NFTs in a contract to ensure accuracy.
- info:
name: Get NFT trades by collection
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/trades
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: from_block
value: ''
type: query
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.
'
- name: to_block
value: ''
type: query
description: The block number to get the trades from
- name: from_date
value: ''
type: query
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.
'
- name: to_date
value: ''
type: query
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.
'
- name: marketplace
value: opensea
type: query
description: Marketplace from which to get the trades. See [supported Marketplaces](https://docs.moralis.io/web3-data-api/evm/nft-marketplaces).
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: nft_metadata
value: ''
type: query
description: Include the NFT Metadata of the NFT Token
- name: address
value: ''
type: path
description: The address of the NFT contract
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT trades for a given contract with the ability to filter by marketplace.
- info:
name: Get NFT trades by token
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id/trades
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: from_block
value: ''
type: query
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.
'
- name: to_block
value: ''
type: query
description: The block number to get the trades from
- name: from_date
value: ''
type: query
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.
'
- name: to_date
value: ''
type: query
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.
'
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: nft_metadata
value: ''
type: query
description: Include the NFT Metadata of the NFT Token
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: token_id
value: ''
type: path
description: The token ID of the NFT contract
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT trades for a specific NFT by specifying a contract addres and token ID.
- info:
name: Get NFT trades by wallet address
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/wallets/:address/nfts/trades
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: from_block
value: ''
type: query
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.
'
- name: to_block
value: ''
type: query
description: The block number to get the trades from
- name: from_date
value: ''
type: query
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.
'
- name: to_date
value: ''
type: query
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.
'
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: nft_metadata
value: ''
type: query
description: Include the NFT Metadata of the NFT Token
- name: address
value: ''
type: path
description: The owner wallet address
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get NFT trades for a specific wallet address.
- info:
name: Get NFT collection metadata
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/metadata
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch on-chain metadata like name, symbol, and base token URI for an NFT contract. Also returns off-chain metadata,
floor prices and more where available.
- info:
name: Get metadata for multiple NFT contracts
type: http
http:
method: POST
url: https://deep-index.moralis.io/api/v2.2/nft/metadata
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
body:
type: json
data: '{}'
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Retrieve metadata (name, symbol) for up to 25 NFT contracts in one call. Also returns off-chain metadata, floor
prices and more where available.
- info:
name: Get NFT metadata
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: token_id
value: ''
type: path
description: The ID of the token
- name: format
value: ''
type: query
description: The format of the token ID
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Fetch metadata for a specific NFT. Includes on-chain metadata as well as off-chain metadata, floor prices, rarity
and more where available.
- info:
name: Get NFT transfers by token ID
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id/transfers
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: token_id
value: ''
type: path
description: The ID of the token
- name: format
value: ''
type: query
description: The format of the token ID
- name: include_prices
value: ''
type: query
description: Should NFT last sale prices be included in the result?
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: order
value: ''
type: query
description: The order of the result, in ascending (ASC) or descending (DESC)
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Get transfers of a specific NFT given a contract address and token ID.
- info:
name: Get NFT owners by token ID
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id/owners
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: token_id
value: ''
type: path
description: The ID of the token
- name: format
value: ''
type: query
description: The format of the token ID
- name: limit
value: ''
type: query
description: The desired page size of the result.
- name: cursor
value: ''
type: query
description: The cursor returned in the previous response (used for getting the next page).
- name: normalizeMetadata
value: ''
type: query
description: Should normalized metadata be returned?
- name: media_items
value: ''
type: query
description: Should preview media data be returned?
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: List wallets owning a specific NFT, defined by its contract and token ID.
- info:
name: Resync NFT Contract
type: http
http:
method: PUT
url: https://deep-index.moralis.io/api/v2.2/nft/:address/sync
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: Initiate indexing for a non-synced NFT contract to make its data available.
- info:
name: Resync NFT metadata
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id/metadata/resync
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
value: ''
type: path
description: The address of the NFT contract
- name: token_id
value: ''
type: path
description: The ID of the token
- name: flag
value: ''
type: query
description: The type of resync to operate
- name: mode
value: ''
type: query
description: To define the behaviour of the endpoint
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: 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.
- info:
name: Get NFT sale prices by collection
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/price
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: days
value: ''
type: query
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
'
- name: address
value: ''
type: path
description: The address of the NFT collection
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: 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.
- info:
name: Get NFT sale prices by token
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/:token_id/price
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: days
value: ''
type: query
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
'
- name: address
value: ''
type: path
description: The address of the NFT collection
- name: token_id
value: ''
type: path
description: The token id of the NFT collection
auth:
type: apikey
key: X-API-Key
value: '{{X-API-Key}}'
placement: header
docs: 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.
- info:
name: Get summary stats by NFT collection
type: http
http:
method: GET
url: https://deep-index.moralis.io/api/v2.2/nft/:address/stats
params:
- name: chain
value: ''
type: query
description: The chain to query
- name: address
# --- truncated at 32 KB (118 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moralis/refs/heads/main/apis.yml