raresats.net API
Listings API View as Markdown

Get floors

GET/api/market/floors

For every row with active listings: its floor (the lowest unit price), how many listings and how many of its sats are listed.

Example request #

cURL
curl 'https://raresats.net/api/market/floors'
JavaScript
const response = await fetch('https://raresats.net/api/market/floors');
const data = await response.json();
Python
import requests

data = requests.get("https://raresats.net/api/market/floors").json()

Response 200 #

FieldTypeDescription
rowsmap of objectEach row with at least one active listing, priced in it or holding some of its sats in a bundle.
rows.<key>.floor_unitnumber | nullThe lowest unit_price among the row's active listings (its own and its sub-categories'); null when only listings in bundle hold its sats.
rows.<key>.listedintegerActive listings of the row (own and sub-categories'; never those in bundle).
rows.<key>.listed_satsintegerSats of the row those listings hold (sum of count).
rows.<key>.containsintegerOnly when above 0: active listings of other rows holding some sats of this one among others (in bundle). Never in floor_unit, listed or listed_sats.
rows.<key>.contains_min_priceintegerWith contains: the lowest total price among them (a bundle's unit price is another row's).
as_ofobject | nullWhen the marketplace last checked every live listing against the chain: the block height and unix seconds. null until the first check.
as_of.heightinteger | nullBlock height
as_of.checked_atintegerUnix seconds
Response
{
  "rows": {
    "black_rare": {"floor_unit": 12000, "listed": 1, "listed_sats": 1},
    "block9": {"floor_unit": 14, "listed": 1, "listed_sats": 6280}
  },
  "as_of": {"height": 969001, "checked_at": 1790952985}
}

Errors #

None of its own (only transport errors such as 404 no_endpoint or 429 at the edge).

floor_unit is a unit price (sats per sat of the row, over the UTXO's own value), not a listing price. To find the listing at the floor: GET /api/market/listings?row=<row>&sort=unit&limit=1.

contains (present when above 0) counts the active listings of other rows that hold some of the row's sats in a bundle, and contains_min_price the lowest whole price among them; they are never in floor_unit, listed or listed_sats. A row only bundles hold has floor_unit: null and listed: 0. To read them: GET /api/market/listings?row=<row>&contains=only&sort=price.