Marketplace data
Minters, traders and deals
Read a collection's traders and minters, find listings priced as deals and how deals are scored, and read the order book and sales.
These endpoints answer market questions about a collection: who traded and minted it, which listings are priced well under their reference prices, where the bids and asks sit, and what sold recently.
Every {slug} endpoint also accepts ?type=<Move type> in place of the slug.
Traders, mint data and deals are computed by a background analytics job, not on the request. Responses carry asOf, the time of the newest data the results include. An analytics group that is switched off answers 404 not_found.
Traders
Every wallet that minted, bought, sold or holds the collection, with realised and unrealised profit. Pass at least one of sort, role or wash to get this form (see Top traders by volume for the short form).
curl "https://rare.market/api/v1/collections/popkins/traders?sort=realised&limit=20"{
"asOf": "2026-10-26T02:04:16.141Z",
"data": [
{
"address": "0x021fb83a2231d7716574f527d80f6ed375ac9d475e2801714decee8775873f1d",
"name": null,
"minted": 99,
"mintCostMist": null,
"mintKnown": 0,
"mintKind": "airdrop",
"mintKinds": { "paid": 0, "free": 0, "airdrop": 99, "unknown": 0 },
"bought": 199,
"boughtMist": "9743498000000",
"sold": 295,
"soldMist": "29459790000000",
"holding": 2,
"holdingValueMist": "126000000000",
"trips": 193,
"realisedMist": "6095992000000",
"realisedUsd": 3206.84,
"unrealisedMist": "31500000000",
"unrealisedUsd": -181.46,
"heldKnown": 2,
"totalMist": "6127492000000",
"totalUsd": 3025.38,
"firstTradeAt": "2025-06-05T20:24:43.260Z",
"lastTradeAt": "2026-07-18T03:10:08.974Z",
"roles": ["minter", "flipper"],
"creator": false
}
],
"nextCursor": "MQ",
"total": 4598,
"header": {
"floorMist": "63000000000",
"suiUsd": 0.91135,
"washExcluded": true,
"mintCoverage": "partial",
"mintStatus": "ok",
"counts": { "all": 6790, "minters": 4598, "flippers": 4941, "holders": 517 }
}
}Trader fields
The header gives the floor and SUI price used for unrealised figures, whether wash trades were excluded, mint coverage and the count of traders per role.
Minters
Minters are the first owners of items coming off the creator side. Creator-side wallets (creator: true) never count as minters. List them with role=minters:
curl "https://rare.market/api/v1/collections/popkins/traders?role=minters&sort=minted&limit=50"Mint fields on each row:
header.mintStatus is ok or unavailable. With unavailable, no wallet has minted and role=minters returns nothing. header.mintCoverage is full, partial or none: how much of the collection's mint history was resolved.
Mint summary
GET /collections/{slug}/about returns collection facts, including a mint block:
{
"mint": {
"firstAt": "2025-06-05T07:32:33.569Z",
"count": 14601,
"coverage": "partial",
"status": "ok",
"minters": 4598,
"kinds": { "free": 0, "paid": 0, "airdrop": 14601, "unknown": 0 },
"creatorWallets": [
{ "role": "created_into", "items": 25000, "address": "0x16386f6d07a85631e419e8f83b1d99a13949515a6af7ba3f81f3cfb0ec7e5543" },
{ "role": "creating_sender,publisher,royalty", "items": 0, "address": "0xe23a220a6d66059cfd14cbab7041261daf20a87e56eaeba629d639d7e4021eeb" }
],
"createdToCreator": 25000,
"creatorMint": true,
"supply": 25000,
"burned": 0
}
}count is the number of items minted by users and minters the number of distinct minting wallets. kinds splits count by how items were minted. creatorWallets lists the creator-side wallets, their roles and the items created into each. status and coverage mean the same as mintStatus and mintCoverage above.
Top traders by volume
Without sort, role or wash, the endpoint returns the short form: the top 25 wallets by sale volume over range (1h, 6h, 24h, 7d default, 30d, all).
{
"data": [
{
"address": "0x72699527d22f097dab01dc7d3d9de226d39e1efa24bfdb94b8267b4898a1b801",
"name": null,
"bought": 49,
"sold": 0,
"volumeMist": "3258792000000"
}
]
}Deals
A deal is a live listing priced well under a reference price. Each deal carries the reasons it qualifies, strongest first, and a score.
curl "https://rare.market/api/v1/deals?minScore=30&limit=10"{
"asOf": "2026-10-26T02:04:16.141Z",
"data": [
{
"id": "0xf9307ced1097083c1b0e2d7b1b8683167bdc745370d0fa992d97dd4ccd3fe369",
"name": "Pumplienz #1382",
"type": "0xc813dd750cff7592251334cd65e5d34a368cd6fbe3207103978415fbff877057::collection::Pumplienz",
"kioskId": "0x40c069e09c5350c62b9ba9f877f1947766efbd2b3490ba36b2204e7157edebff",
"imageUrl": "https://assets.alienz.tech/collections/6a144715bb27a402f898fca7618f8b47918ce311a0fad3ed638cb040725ed0f6/tokens/1382.webp",
"collection": {
"slug": "pumplienz",
"name": "Pumplienz",
"imageUrl": "https://assets.alienz.tech/collections/6a144715bb27a402f898fca7618f8b47918ce311a0fad3ed638cb040725ed0f6/tokens/56.webp",
"verified": true
},
"rarity": { "rank": 1030, "tier": "uncommon" },
"listing": {
"venue": "tradeport",
"source": "tradeport/simple",
"orderKey": "0xf9307ced1097083c1b0e2d7b1b8683167bdc745370d0fa992d97dd4ccd3fe369",
"objectId": "0x7628d7d4ab82abe948dbb7ee256af99868d140c67f373de695c55f6ff95e3f34",
"priceMist": "9699900000",
"allInMist": "10475892000",
"feeMist": "290997000",
"commissionMist": "0",
"seller": "0xa7b32af76de025a0080904a498071d64548581f15b20be3e1ec052dc4908cc13",
"listedAt": "2026-10-06T17:44:07.513Z",
"kioskId": "0x40c069e09c5350c62b9ba9f877f1947766efbd2b3490ba36b2204e7157edebff",
"nftType": "0xc813dd750cff7592251334cd65e5d34a368cd6fbe3207103978415fbff877057::collection::Pumplienz",
"extra": { "feeBps": 300, "royaltyMist": "484995000" }
},
"lastSaleMist": "7250100000",
"lastSaleAt": "2026-10-06T02:49:12.791Z",
"topOfferMist": "5100000000",
"owner": "0xa7b32af76de025a0080904a498071d64548581f15b20be3e1ec052dc4908cc13",
"deal": {
"reasons": [
{
"kind": "trait_floor",
"text": "Cheapest Letterman Royal Blue Clothes by 68%, next 32.4 SUI",
"strengthPct": 67.7
}
],
"score": 67.7
}
}
],
"nextCursor": "WzY3LjcsIjB4ZjkzMDdjZWQxMDk3MDgzYzFiMGUyZDdiMWI4NjgzMTY3YmRjNzQ1MzcwZDBmYTk5MmQ5N2RkNGNjZDNmZTM2OSJd",
"total": 70
}Every ItemCard in the API also carries deal: the same object for a listing that is a deal, null otherwise (including unlisted items). In a collection grid, GET /collections/{slug}/items?sort=deals puts deals first by score, then the rest by price.
How a deal is computed
Deals are recomputed in the background every few minutes from every collection's current listings and its clean sales of the last 90 days. Wash trades are excluded from all sales used. A listing is a deal when at least one of four signals passes:
Rules that apply to every signal:
- Trait values that mean "absent" (
None,Nothing,No,0and similar) never count as a trait. - A floor-priced common (price at most 1.05 times the cheapest other listing, no trait held by 15% or less of the collection, not in a top-N% rarity cut) is a deal only through
trait_floororlast_sale. - The floor used is the cheapest other listing in the collection.
- Only SUI listings are considered, and only collections with clean sales in the last 90 days.
Each passing signal becomes a reason. strengthPct is how far under its reference price the listing sits, in percent (for rarity it is the premium the top-N% sold at, expressed as a discount). Reasons are sorted strongest first, and:
score = strongest strengthPct + 0.5 x (sum of the other reasons' strengthPct)Both are rounded to one decimal. A deal is tied to the exact all-in price it was computed for. When the listing sells, is repriced or is undercut by another listing of the same item, the deal drops out at once rather than waiting for the next recompute.
Order book
Listings (asks) and collection offers (bids) grouped into price levels.
curl "https://rare.market/api/v1/collections/popkins/order-book"{
"bucketMist": "1400000000",
"asks": [
{ "priceMist": "74200000000", "qty": 1, "cumMist": "278600000000" },
{ "priceMist": "68600000000", "qty": 2, "cumMist": "204400000000" },
{ "priceMist": "67200000000", "qty": 1, "cumMist": "67200000000" }
],
"bids": [
{ "priceMist": "48000000000", "qty": 1, "cumMist": "48000000000" },
{ "priceMist": "47000000000", "qty": 1, "cumMist": "95000000000" },
{ "priceMist": "46620000000", "qty": 1, "cumMist": "141620000000" }
],
"spreadMist": "20040000000",
"spreadPct": 29.45
}asks: the 14 lowest levels of all-in listing prices. EachpriceMistis the bottom of its bucket. Listed highest first, so the best ask is last.cumMistaccumulates from the best ask outward.bids: the 14 highest collection offer prices, best first, with the number of offers at each price and the cumulative offer value.spreadMist: the floor (lowest all-in listing) minus the best collection offer.spreadPctis that as a percent of the floor. Both arenullwhen either side is empty.
The example is shortened to three levels a side. For offers grouped by price with what a seller receives, see GET /collections/{slug}/offer-book in Offers.
Sales
Sale points for a price chart: the newest 1,000 SUI sales (including accepted offers) in range, oldest first. range is 1h, 6h, 24h, 7d (default), 30d or all (the last two years). Other values fall back to 7d.
curl "https://rare.market/api/v1/collections/popkins/sales?range=24h"{
"data": [
{ "t": "2026-10-26T09:36:54.868Z", "priceMist": "75000000000" },
{ "t": "2026-10-26T09:37:36.411Z", "priceMist": "74990000000" },
{ "t": "2026-10-26T19:17:47.652Z", "priceMist": "53990000000" }
]
}For individual sales with item, buyer, seller and transaction, use GET /events?collection={slug}&kind=sale.
Floor and volume series
metric is floor or volume; range as above. The range is cut into about 48 equal buckets (at least one minute each), each point { t, valueMist }:
volume: the sum of sale prices in the bucket,"0"for buckets with no sales.floor: the lowest sale price in the bucket, carried forward through buckets with no sales; the last point is the current floor (lowest all-in listing). Buckets before the first sale are left out.
{
"data": [
{ "t": "2026-10-26T09:30:00.000Z", "valueMist": "74990000000" },
{ "t": "2026-10-26T10:00:00.000Z", "valueMist": "74990000000" }
]
}