Skip to main content

MultiversX API

About MultiversX API

api.multiversx.com is the public instance of MultiversX API and is a wrapper over gateway.multiversx.com that brings a robust caching mechanism, alongside Elasticsearch historical queries support, tokens media support, delegation & staking data, and many others.

Public URLs

Mainnet: https://api.multiversx.com.

Testnet: https://testnet-api.multiversx.com.

Devnet: https://devnet-api.multiversx.com.

External Providers

Blastapi

Mainnet: https://multiversx-api.public.blastapi.io.

Devnet: https://multiversx-api-devnet.public.blastapi.io.

Checkout information about pricing and API limitations per plan.

More details on how to get your private endpoint can be found here.

Kepler

High-performance infrastructure layer purpose-built for the MultiversX ecosystem.

Affordable plans, high limits for API, Gateway, Elastic Search, Event Notifier, and many more!

https://kepler.projectx.mx

Dependencies

Core dependencies

For its basic functionality (without including caching or storage improvements), api.multiversx.com depends on the following external systems:

  • gateway: also referred as Proxy, provides access to node information, such as network settings, account balance, sending transactions, etc docs: Proxy.
  • index: a database that indexes data that can be queries, such as transactions, blocks, nfts, etc. docs: Elasticsearch.
  • delegation: a microservice used to fetch providers list from the delegation API. Not currently open for public access.

Other dependencies

It uses on the following internal systems:

  • redis: used to cache various data, for performance purposes
  • rabbitmq: pub/sub for sending mainly NFT process information from the transaction processor instance to the queue worker instance

It depends on the following optional external systems:

  • events notifier rabbitmq: queue that pushes logs & events which are handled internally e.g. to trigger NFT media fetch
  • data: provides EGLD price information for transactions
  • xexchange: provides price information regarding various tokens listed on xExchange
  • ipfs: ipfs gateway for fetching mainly NFT metadata & media files
  • media: ipfs gateway which will be used as prefix for NFT media & metadata returned in the NFT details
  • media internal: caching layer for ipfs data to fetch from a centralized system such as S3 for performance reasons
  • AWS S3: used to process newly minted NFTs & uploads their thumbnails
  • github: used to fetch provider profile & node information from github

It uses the following optional internal systems:

  • mysql database: used to store mainly NFT media & metadata information
  • mongo database: used to store mainly NFT media & metadata information

Ways to start MultiversX API

An API instance can be started with the following behavior:

  • public API: provides REST API for the consumers
  • private API: used to report prometheus metrics & health checks
  • transaction processor & completed: fetches real-time transactions & logs from the blockchain; takes action based on various events, such as clearing cache values and publishing events on a queue
  • cache warmer: used to proactively fetch data & pushes it to cache, to improve performance & scalability
  • elastic updater: used to attach various extra information to items in the elasticsearch, for not having to fetch associated data from other external systems when performing listing requests
  • events notifier: perform various decisions based on incoming logs & events

Rate limiting

Public MultiversX APIs have a rate limit mechanism that brings the following limitations:

  • api.multiversx.com (mainnet): 2 requests / IP / second
  • devnet-api.multiversx.com (devnet): 5 requests / IP / second

Rest API documentation

Rest API documentation of api.multiversx.com can be found on the Swagger docs.

References