Solana API Overview

The Magic Eden Solana API is designed to empower developers in creating innovative experiences using NFTs and our abundant marketplace data. We offer a robust suite of endpoints that allows you to access NFT metadata along with crucial components of our marketplace, including events, collections, listings, bids, and more. With our API, you can not only access the data but also perform various actions that you would on our user interface, such as listing NFTs, buying NFTs, placing bids, and more.

We offer these endpoints in the spirit of fostering composability and openness in the web3 space, extending the reach of this data to anyone desiring to build upon it. In return, if you utilize our data, we ask that you adhere to our Terms of Service.

Moreover, we make this API available free of charge and kindly request that you attribute Magic Eden on your website or within your app. When you leverage our API, please consider linking to the Magic Eden marketplace from the NFTs that you showcase, where it's appropriate.

Please be aware that our API is rate-limited and some endpoints are gated by an API key. For more info check out Solana API Keys.


More info about Solana clusters:

  • Devnet: - this uses a testing Solana cluster, the tokens are not real
  • Mainnet: - this uses the real Solana cluster, the tokens are real and this is consistent with the data seen on

Highlight Projects

You can find a list of projects in analytics, trader tooling, and community management from our NYC Hacker House Hackathon Gallery.

The Winners in each respective category are:

API Metadata

Some endpoints in this API are able to respond with some useful metadata if requested. This is done by including the request header ME-Pub-API-Metadata and the value of this request header is a JSON object with the following TypeScript interface:

interface RequestMetadata {
  paging?: boolean

If an endpoint is requested with the header (and supports) ME-Pub-API-Metadata, the endpoint will respond with a header of the same name (ME-Pub-API-Metadata). The value of this response header is a JSON object with the following TypeScript interface:

interface ResponseMetadata {
  paging?: PagingMetadata

interface PagingMetadata {
  total: number
  start: number
  end: number

The below is an example

Request headers:
ME-Pub-API-Metadata: {"paging":true}

Response headers:
ME-Pub-API-Metadata: {"paging":{"total":10, "start":0, "end":1}}