For the complete documentation index, see llms.txt. This page is also available as Markdown.

Sales

Query sales history and transactions

Daily closing MANA/USD rates

get
/v1/rates/mana-usd

The closing MANA/USD rate of each UTC day between two instants, read from the Chainlink MANA/USD feed on Polygon (the last round written that day) and stored by a background job. The feed starts on 2021-07-08, so earlier days are never returned. Days not yet stored are simply absent.

Query parameters
frominteger · max: 8640000000000000Required

Inclusive start in epoch milliseconds; its UTC day is the first day returned. At most 8640000000000000.

tointeger · max: 8640000000000000Required

Inclusive end in epoch milliseconds; at most 15 years after from.

Responses
200

One rate per stored day, oldest first

application/json
get/v1/rates/mana-usd
GET /v1/rates/mana-usd?from=1&to=1 HTTP/1.1
Host: marketplace-api.decentraland.org
Accept: */*
{
  "data": [
    {
      "day": "2026-09-25",
      "usd": "0.09302823"
    }
  ]
}

A creator's resales and the royalty each paid

get
/v1/sales/royalties

Every resale (order or bid sale) of an item the address created, whoever sold it, newest first. Each row carries the royalty the marketplace sent in that trade and who received it: the item's beneficiary when one is set, else the creator. Amounts are gross MANA wei as decimal strings. total and royaltiesWei cover the whole window, not only the page.

Query parameters
creatorstringRequired

Creator wallet address (case insensitive).

Pattern: ^0x[a-fA-F0-9]{40}$
frominteger · max: 8640000000000000Optional

Inclusive start in epoch milliseconds; must not exceed to.

tointeger · max: 8640000000000000Optional

Inclusive end in epoch milliseconds.

firstinteger · min: 1Optional

Page size, capped at 100.

Default: 20
skipintegerOptionalDefault: 0
Responses
200

A page of resales, the number in the window and their royalty total

application/json
totalintegerRequired
royaltiesWeistringRequired
get/v1/sales/royalties
GET /v1/sales/royalties?creator=text HTTP/1.1
Host: marketplace-api.decentraland.org
Accept: */*
{
  "total": 1,
  "royaltiesWei": "text",
  "data": [
    {
      "id": "text",
      "timestamp": 1,
      "contractAddress": "text",
      "itemId": null,
      "tokenId": "text",
      "priceWei": "text",
      "royaltyWei": "text",
      "collector": null,
      "buyer": "text",
      "seller": "text",
      "network": "text"
    }
  ]
}

Aggregate a seller's completed sales

get
/v1/sales/summary

Returns unpaginated aggregates from the same sales source as /v1/sales. All amounts are gross MANA wei encoded as decimal strings, including sales paid in Credits. The optional inclusive millisecond bounds apply to totals, collections and royalties. byItem counts only the seller's lifetime mint sales, ignoring both bounds; resales are excluded so the count can be subtracted from totalSupply to estimate copies minted without a sale. Items without mint sales are omitted. byItem may remain populated when the window has no sales. Royalties count order/bid sales of items whose creator is seller, regardless of who sold them. volumeWei is resale volume, not the actual royalty payout. Creator resale activity can be nonzero even if the address has no direct sales. Otherwise absent activity returns zeros and empty arrays.

Query parameters
sellerstringRequired

Seller wallet address (case insensitive).

Pattern: ^0x[a-fA-F0-9]{40}$
frominteger · max: 9007199254740991Optional

Inclusive start in epoch milliseconds; must not exceed to.

tointeger · max: 9007199254740991Optional

Inclusive end in epoch milliseconds.

Responses
200

Sales summary

application/json
get/v1/sales/summary
GET /v1/sales/summary?seller=text HTTP/1.1
Host: marketplace-api.decentraland.org
Accept: */*
{
  "data": {
    "total": 1,
    "mints": 1,
    "resales": 1,
    "earnedWei": "115026000000000000000",
    "earnedUsd": "10.720981",
    "unpricedSales": 1,
    "byCollection": [
      {
        "contractAddress": "text",
        "sold": 1,
        "earnedWei": "text",
        "earnedUsd": "text",
        "unpricedSales": 1
      }
    ],
    "byItem": [
      {
        "contractAddress": "text",
        "itemId": "text",
        "soldLifetime": 1
      }
    ],
    "royalties": {
      "resales": 1,
      "volumeWei": "text",
      "royaltiesWei": "text"
    }
  }
}

List completed sales

get
/v1/sales

Retrieves historical sales transactions from the marketplace. Sales represent completed purchases of NFTs and items.

Use this endpoint to:

  • Track sales history and market activity

  • Analyze price trends

  • View transaction details (buyer, seller, price, timestamp)

Filter options:

  • Sale type (order, bid, mint)

  • Categories (wearable, emote, parcel, estate, ens)

  • Seller and buyer addresses

  • Contract address, token ID, and item ID

  • Time range filtering (from/to timestamps)

  • Price range (min/max)

  • Network (Ethereum, Polygon)

Sorting options:

  • recently_sold (default)

  • most_expensive

Pagination: Uses first and skip parameters (NOT limit/offset).

Query parameters
firstnumberOptional

Maximum number of sales to return (default: 100)

Default: 100Example: 10
skipnumberOptional

Number of sales to skip for pagination (default: 0)

Default: 0Example: 0
sortBystring · enumOptional

Sort results by specified criteria

Example: recently_soldPossible values:
typestring · enumOptional

Filter by sale type

Example: orderPossible values:
sellerstringOptional

Filter by seller wallet address

Example: 0x1234567890abcdef1234567890abcdef12345678
buyerstringOptional

Filter by buyer wallet address

contractAddressstringOptional

Filter by NFT contract address

Example: 0x1234567890abcdef1234567890abcdef12345678
tokenIdstringOptional

Filter by specific token ID

itemIdstringOptional

Filter by item ID

fromnumberOptional

Filter sales from this Unix timestamp (in seconds)

Example: 1640000000
tonumberOptional

Filter sales up to this Unix timestamp (in seconds)

Example: 1650000000
minPricestringOptional

Minimum sale price filter

Example: 0.1
maxPricestringOptional

Maximum sale price filter

Example: 100
networkstring · enumOptional

Filter by blockchain network

Example: MATICPossible values:
Responses
200

List of sales with total count

application/json
totalnumberRequired

Total number of sales matching the filters

get/v1/sales
GET /v1/sales HTTP/1.1
Host: marketplace-api.decentraland.org
Accept: */*
{
  "data": [
    {
      "id": "text",
      "buyer": "text",
      "seller": "text",
      "item": {
        "id": "text",
        "name": "text",
        "description": "text",
        "image": "text",
        "category": "text",
        "rarity": "text",
        "price": 1,
        "owner": "text"
      },
      "price": 1,
      "timestamp": "2026-01-01T00:00:00.000Z"
    }
  ],
  "total": 1
}

Last updated