Magic Eden instructions API

Get instructions for the blockchain

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/magic-eden-instructions-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 email required.

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

OpenAPI Specification

magic-eden-instructions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Magic Eden EVM Activity instructions API
  description: Aggregated Magic Eden EVM API (v4) for Ethereum and L2 chains (Polygon, Base, ApeChain, Arbitrum, Berachain, BSC, SEI, Abstract). Covers collections, assets, bids, asks, listings, buy/sell, and bulk transfer instructions.
  version: v4
  termsOfService: https://magiceden.io/terms-of-service.pdf
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api-mainnet.magiceden.dev/v4/evm-public
tags:
- name: instructions
  description: Get instructions for the blockchain
paths:
  /instructions/buy:
    get:
      deprecated: false
      summary: Get instruction to buy (bid)
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 will default to 7 days.
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/buy_cancel:
    get:
      deprecated: false
      summary: Get instruction to cancel a buy
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/buy_change_price:
    get:
      deprecated: false
      summary: Get instruction to change a buy price
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Old price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: newPrice
        in: query
        description: New price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/buy_now:
    get:
      deprecated: false
      summary: Get instruction to buy now
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenATA
        in: query
        description: Associate Token Account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: buyerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: sellerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerCreatorRoyaltyPercent
        in: query
        description: buyerCreatorRoyaltyPercent, integer 0-100
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: splPrice
        in: query
        description: SPL token price information (JSON string)
        required: false
        deprecated: false
        schema:
          type: string
      tags:
      - instructions
  /instructions/buy_now_transfer_nft:
    get:
      deprecated: false
      summary: Get instruction to buy now and transfer nft to another owner
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenATA
        in: query
        description: Associate Token Account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: destinationATA
        in: query
        description: Associated token account to send bought NFT to
        required: true
        deprecated: false
        schema:
          type: string
      - name: destinationOwner
        in: query
        description: Owner of token account
        required: true
        deprecated: false
        schema:
          type: string
      - name: createATA
        in: query
        description: whether to include create ATA instructions
        required: true
        deprecated: false
        schema:
          type: boolean
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: buyerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: sellerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerCreatorRoyaltyPercent
        in: query
        description: buyerCreatorRoyaltyPercent, integer 0-100
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/deposit:
    get:
      deprecated: false
      summary: Get instruction to deposit to escrow
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: amount
        in: query
        description: Amount in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/sell:
    get:
      deprecated: false
      summary: Get instruction to sell (list)
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenAccount
        in: query
        description: Token account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/sell_cancel:
    get:
      deprecated: false
      summary: Get instruction to cancel a sell
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenAccount
        in: query
        description: Token account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/sell_change_price:
    get:
      deprecated: false
      summary: Get instruction to change a sell price
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenAccount
        in: query
        description: Token account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: newPrice
        in: query
        description: New price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: expiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: true
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/sell_now:
    get:
      deprecated: false
      summary: Get instruction to sell now (accept offer)
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: seller
        in: query
        description: Seller wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: tokenMint
        in: query
        description: Token mint address
        required: true
        deprecated: false
        schema:
          type: string
      - name: tokenATA
        in: query
        description: Associate token account
        required: true
        deprecated: false
        schema:
          type: string
      - name: price
        in: query
        description: Price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: newPrice
        in: query
        description: New price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: sellerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: true
        deprecated: false
        schema:
          type: number
      - name: buyerReferral
        in: query
        description: Buyer referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: sellerReferral
        in: query
        description: Seller referral wallet
        required: false
        deprecated: false
        schema:
          type: string
      - name: buyerExpiry
        in: query
        description: timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/withdraw:
    get:
      deprecated: false
      summary: Get instruction to withdraw from escrow
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: buyer
        in: query
        description: Buyer wallet
        required: true
        deprecated: false
        schema:
          type: string
      - name: auctionHouseAddress
        in: query
        description: Auction house Address. If not provided, will use default auction house.
        required: false
        deprecated: false
        schema:
          type: string
      - name: amount
        in: query
        description: Amount in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: prioFeeMicroLamports
        in: query
        description: Priority fee in microlamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: maxPrioFeeLamports
        in: query
        description: Maximum priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      - name: exactPrioFeeLamports
        in: query
        description: Exact priority fee in lamports
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/magic_ticket/burns:
    get:
      deprecated: false
      summary: Construct and return burn txs for given mint addresses
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
      parameters:
      - name: walletAddress
        in: query
        description: Wallet address that owns the tickets
        required: true
        deprecated: false
        schema:
          type: string
      - name: mintAddresses
        in: query
        description: Comma-separated list of mint addresses to burn
        required: true
        deprecated: false
        schema:
          type: string
      tags:
      - instructions
  /instructions/mmm/create-pool:
    get:
      deprecated: false
      summary: Get instruction to create a pool
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: spotPrice
        in: query
        description: Pool initial spot price in SOL
        required: true
        deprecated: false
        schema:
          type: number
      - name: curveType
        in: query
        description: Type curve, either 'linear' or 'exp'
        required: true
        deprecated: false
        schema:
          $ref: '#/components/schemas/MMM.CurveKindString'
      - name: curveDelta
        in: query
        description: Curve delta used to change price after a fill
        required: true
        deprecated: false
        schema:
          type: number
      - name: reinvestBuy
        in: query
        description: Whether to reinvest bought asset or transfer directly to owner
        required: true
        deprecated: false
        schema:
          type: boolean
      - name: reinvestSell
        in: query
        description: Whether to reinvest payment from sale or transfer directly to owner
        required: true
        deprecated: false
        schema:
          type: boolean
      - name: expiry
        in: query
        description: Timestamp in seconds in the future, 0 means no expiry
        required: false
        deprecated: false
        schema:
          type: number
      - name: lpFeeBp
        in: query
        description: Requested liquidity provider fee in basis points
        required: true
        deprecated: false
        schema:
          type: number
      - name: buysideCreatorRoyaltyBp
        in: query
        description: Amount of creator royalty the pool should pay in basis points
        required: true
        deprecated: false
        schema:
          type: number
      - name: paymentMint
        in: query
        description: Mint address of payment (default for SOL)
        required: true
        deprecated: false
        schema:
          type: string
      - name: collectionSymbol
        in: query
        description: Collection symbol for which the pool will be valid
        required: true
        deprecated: false
        schema:
          type: string
      - name: owner
        in: query
        description: Owner of the pool
        required: true
        deprecated: false
        schema:
          type: string
      - name: solDeposit
        in: query
        description: Optional sol amount to deposit with pool creation
        required: false
        deprecated: false
        schema:
          type: number
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      - name: sharedEscrowCount
        in: query
        description: Number of pools (bids) that will share the escrow account
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/mmm/sol-close-pool:
    get:
      deprecated: false
      summary: Get instruction to close a pool after all assets and payment have been withdrawn
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: pool
        in: query
        description: Public key of pool to close
        required: true
        deprecated: false
        schema:
          type: string
      - name: priorityFee
        in: query
        description: Priority fee (in microlamports) to reprioritize the transaction against others
        required: false
        deprecated: false
        schema:
          type: number
      tags:
      - instructions
  /instructions/mmm/sol-deposit-buy:
    get:
      deprecated: false
      summary: Get instruction to deposit SOL into a pool for buying
      security:
      - bearerAuth: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
      parameters:
      - name: pool
        in: query
        description: Public key of pool to deposit into
        required: true
        deprecated: false
        schema:
          type: string
      - name: solAmoun

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/magic-eden/refs/heads/main/openapi/magic-eden-instructions-api-openapi.yml