Skip to content
⌘K
Marketplace API

Marketplace data

Offers

Read collection and item offers from every Sui venue, the collection offer book grouped by price, what a seller receives, and which offers are fillable.

An offer (a bid) is a standing order to buy. rare.market indexes offers from every venue and returns them in one shape, next to the listings in Listings across venues.

There are three kinds:

kindFillable by
collectionAny item of the collection.
itemOne specific item.
traitAny item with a given trait value. Not indexed yet: requests for trait offers return an empty list.

List offers

GET/offers

Returns a page of offers, highest price first.

ParamValuesDefaultNotes
collectionslug or Move typeOffers on the collection: collection offers and item offers.
itemitem idOffers on this item, plus collection offers it can fill.
makeraddressOffers this address placed.
receiveraddressOffers this address can accept with what it holds or has listed: item offers on its items and collection offers on their collections.
kindcollection, item, traittrait returns an empty page today.
venuemarket, tradeport, drip, kioskOne venue. Other values are ignored.
statusopen, allopenopen returns offers that are active, fillable and not expired. all also returns inactive and unfillable ones.
limit1 to 20050
cursornextCursor from the last pageSee Pagination.

Pass at least one of collection, item, maker or receiver. Filters combine with AND.

curl "https://rare.market/api/v1/offers?collection=mystic-yetis&kind=collection&limit=1"
Response
{
  "data": [
    {
      "id": "0xd451a8a293307da3132fcc4183b4e440a336d6af7881957042d0dcc8439d9fa7",
      "venue": "tradeport",
      "source": "tradeport/bids",
      "nftType": "0xb07b09b016d28f989b6adda8069096da0c0a0ff6490f6e0866858c023b061bee::mystic_yeti::MysticYeti",
      "feeMist": "460500000",
      "royaltyMist": "614000000",
      "commissionMist": "0",
      "poolId": "0x84a23ab2971ab8520b7cc1acf7650ac7ac4ebf5309b9dcda5405ac43cf5e69cc",
      "fillable": true,
      "extra": {},
      "kind": "collection",
      "collection": {
        "slug": "mystic-yetis",
        "name": "Mystic Yetis",
        "imageUrl": "https://indexer.mypinata.cloud/ipfs/bafkreid6owvnhp2v2muf4yrk4v3hjonhposfgsnd5zirfzgbyutxoasxay",
        "verified": true
      },
      "item": null,
      "trait": null,
      "priceMist": "15350000000",
      "quantity": 1,
      "filled": 0,
      "bidder": "0xb30ad69255009768b8f651f10f0055090b19783755ec2154d7fd9cf873f7dc47",
      "destKioskId": null,
      "createdAt": "2026-10-27T02:10:56.514Z",
      "expiresAt": null,
      "status": "open"
    }
  ],
  "nextCursor": "WyIxNTM1MDAwMDAwMCIsInRyYWRlcG9ydCIsIjB4ZDQ1MWE4YTI5MzMwN2RhMzEzMmZjYzQxODNiNGU0NDBhMzM2ZDZhZjc4ODE5NTcwNDJkMGRjYzg0MzlkOWZhNyJd"
}

Offer fields

FieldMeaning
idThe offer's id within its venue.
venue, sourceWhere the offer lives. source is an opaque label, as on listings.
kindcollection or item.
item{ id, name, imageUrl } for item offers, null for collection offers.
traitAlways null today.
priceMistThe offer price. This is what the seller receives.
feeMist, royaltyMistThe venue fee and creator royalty, paid by the bidder on top of the price.
commissionMistA legacy cut some older offers record.
poolIdThe bidder's funding pool, for venues that fund offers from a pool.
fillablefalse when the offer exists but cannot be filled right now, for example when the bidder's pool no longer covers it.
destKioskIdThe kiosk the bidder receives the item in. Set on Rare Marketplace offers.
quantity, filledEach offer row is one bid for one item: quantity is 1 and filled is 0. Several bids at one price are grouped in the offer book.
createdAt, expiresAtWhen the offer was placed, and when it expires (null for no expiry).
statusopen, expired or cancelled. See the gotchas.
extraVenue-specific details. Ignore keys you do not know.

Offer book

GET/collections/{slug}/offer-book

Groups a collection's open collection offers by price: up to 60 levels, highest first. Use it for an offers tab or to show what an instant sale would pay.

ParamValuesDefaultNotes
kindcollection, traitcollectiontrait returns { "data": [] } today.
curl "https://rare.market/api/v1/collections/mystic-yetis/offer-book"
Response
{
  "data": [
    {
      "priceMist": "15300000000",
      "netMist": "15300000000",
      "floorDiffPct": -42.8,
      "fillable": 1,
      "totalMist": "15300000000",
      "bidders": 1
    },
    {
      "priceMist": "14200000000",
      "netMist": "14200000000",
      "floorDiffPct": -46.91,
      "fillable": 2,
      "totalMist": "28400000000",
      "bidders": 1
    }
  ]
}
FieldMeaning
priceMistThe level's offer price.
netMistWhat a seller receives per item at this level. Bidders pay the venue fee, royalty and any commission on top, so on every indexed venue this equals priceMist. For an offer source the API does not know, it is the price less the recorded commission. When a level mixes sources, it shows the lowest.
floorDiffPctHow far the level sits from the collection's all-in floor, percent. Negative is below the floor. null when nothing is listed.
fillableHow many open, fillable offers sit at this level, so how many items it can absorb.
totalMistpriceMist times fillable.
biddersDistinct bidders at this level.

Only open offers are counted: active, fillable and not expired.

Order book

GET/collections/{slug}/order-book

Puts listings and collection offers side by side, bucketed by price, for a depth chart.

ParamNotes
bucketMistBucket size in MIST. Defaults to about 2% of the floor, rounded to two significant digits, and never below 1,000,000 MIST (0.001 SUI). With nothing listed it is 100,000,000 MIST (0.1 SUI).
Response
{
  "bucketMist": "530000000",
  "asks": [
    { "priceMist": "28620000000", "qty": 1, "cumMist": "161120000000" },
    { "priceMist": "26500000000", "qty": 5, "cumMist": "132500000000" }
  ],
  "bids": [
    { "priceMist": "15300000000", "qty": 1, "cumMist": "15300000000" },
    { "priceMist": "15250100000", "qty": 1, "cumMist": "30550100000" }
  ],
  "spreadMist": "11448930000",
  "spreadPct": 42.8
}
  • asks are listed items bucketed by all-in price: the 14 lowest buckets, highest first. priceMist is the bucket's lower bound and cumMist is the cumulative value from the floor up to that bucket.
  • bids are the first 14 offer book levels, highest first, with cumMist cumulative from the best offer down.
  • spreadMist is the all-in floor minus the best offer. spreadPct is that over the floor. Both are null when either side is empty.

Gotchas

  • The offer book and /offers count differently. The offer book counts collection offers only. /offers?collection= returns both collection and item offers.
  • status cannot tell filled from cancelled. Any inactive offer comes back as cancelled, whether it was filled or withdrawn. To see fills, read sales in Activity feeds.
  • status=all returns unfillable offers. Check fillable before you show an offer as live. With the default status=open every row is fillable.
  • topOfferMist on item cards is the higher of the best item offer and the best collection offer. It can come from either kind.
  • SUI only. Offers in other coins are not returned.
  • A filter is required. /offers with none of collection, item, maker or receiver returns 404 not_found.
  • Accepting an offer happens on chain. The seller signs the transaction; use rare.market to accept an offer.
--
TPS:--