The Saleroom
Fine art, antiques and collectables auctions in the UK and Europe: the full auction calendar, lots with estimates, and bids.
/the-saleroom/v1/auctions1 creditThe-saleroom auction calendar, one clean row per auction, 60 per page with the site's own total: title, auction house, date and time (UTC and as shown, first and last day of multi-day sales), type (live webcast / timed / tender / catalogue only), status (upcoming, live now, ending now, closed …), location and address, lot categories or sale sections with lot counts, image and catalogue link. Filter by type, country, auction house, category, association, dates; current or past.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| status = current | optional | current · past | Current/upcoming or past auctions. |
| auction_type | optional | timed · live · tender · catalogue | Only live webcast (bid live online / in the room), timed online, tender or catalogue-only sales. |
| country | optional | — | Country of the auction, by name as the site lists it (United Kingdom, Germany, United States …; include_facets lists them). |
| auctioneer | optional | — | Auction house by its exact name on the site (include_facets lists them). |
| category | optional | — | Lot category code (FUR = Furniture, COI = Coins, JWL = Jewellery, CLK = Clocks, WSP = Wines & Spirits …; auctions[].categories[].code or include_facets). |
| association | optional | — | Auctioneer association code (SOFAA, RICS, NAVA, NAA). |
| sort | optional | date · auctioneer | Order: date (default) or auctioneer. |
| date_from | optional | — | Only auctions running on or after this day (UTC; a multi-day sale counts on each of its days). Applied by the engine — the site has no date filter; total_results stays the site's. |
| date_to | optional | — | Only auctions running on or before this day (see date_from). |
| exclude_closed = false | optional | — | Drop rows whose status is closed (today's finished sales stay on the current list). |
| page = 1 | optional | 1–500 | Page, from 1. |
| include_facets = false | optional | — | Also return the site's filter values with counts (auction houses, countries, categories …) — use them as filter values. |
/the-saleroom/v1/all_auctions5 creditsThe WHOLE the-saleroom auction calendar (or a filtered part of it) in one call — every page fetched, duplicates removed and reported, the row count checked against the site's own total. Built for scheduled downloads: one row per auction with the same fields as auctions. Same filters as auctions (type, country, auction house, category, association, dates, past). Up to 30 pages (1,800 auctions).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| status = current | optional | current · past | Current/upcoming or past auctions. |
| auction_type | optional | timed · live · tender · catalogue | Only live webcast (bid live online / in the room), timed online, tender or catalogue-only sales. |
| country | optional | — | Country of the auction, by name as the site lists it (United Kingdom, Germany, United States …; include_facets lists them). |
| auctioneer | optional | — | Auction house by its exact name on the site (include_facets lists them). |
| category | optional | — | Lot category code (FUR = Furniture, COI = Coins, JWL = Jewellery, CLK = Clocks, WSP = Wines & Spirits …; auctions[].categories[].code or include_facets). |
| association | optional | — | Auctioneer association code (SOFAA, RICS, NAVA, NAA). |
| sort | optional | date · auctioneer | Order: date (default) or auctioneer. |
| date_from | optional | — | Only auctions running on or after this day (UTC; a multi-day sale counts on each of its days). Applied by the engine — the site has no date filter; total_results stays the site's. |
| date_to | optional | — | Only auctions running on or before this day (see date_from). |
| exclude_closed = false | optional | — | Drop rows whose status is closed (today's finished sales stay on the current list). |
| include_facets = false | optional | — | Also return the site's filter values with counts (auction houses, countries, categories …) — use them as filter values. |
/the-saleroom/v1/lots1 creditThe lots of one the-saleroom auction catalogue with the auction itself: every lot's number, title, description, image, estimate (low-high), opening price, current bid, bid count, closing time and location, plus the auction's dates, currency, buyer's premium, VAT, venue address and auction house contact. Filter by keyword, category, sale section or brand; sort by lot number, estimate, closing time or bid. 60 or 120 per page with the site's own total.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | A the-saleroom.com catalogue URL (any page of it), as in auctions[].url. |
| auction_ref | optional | — | The catalogue id (the part after catalogue-id- in its URL), as in auctions[].auction_ref. The auction house is looked up. |
| page = 1 | optional | 1–500 | Page, from 1. |
| page_size = 60 | optional | 60 · 120 | Lots per page, as the site offers (60 or 120). |
| sort | optional | lot_number · high_estimate · low_estimate · newest · end_date · low_bid · high_bid | Order of lots (end_date / low_bid / high_bid: timed auctions). |
| query | optional | — | Only lots matching these words inside this catalogue. |
| category | optional | — | Only this lot category code (facets: categories). |
| sale_section | optional | — | Only this sale section / session (facets: sale_sections). |
| brand | optional | — | Only this brand, as the site lists it (facets: brands). |
| include_bids = true | optional | — | Read the live bid state (current bid, bid count, next minimum bid, reserve met, closing time) from the site's bid service: one extra small request. |
| include_facets = false | optional | — | Also return the site's filter values with counts (auction houses, countries, categories …) — use them as filter values. |
/the-saleroom/v1/lot1 creditOne the-saleroom lot in full: title, lot number, the whole description (incl. condition notes), every image, estimate, opening price, current bid, bid count, lot status (sold / passed / …), hammer price when the auction house publishes it, closing time, category, lot location, removal / shipping notes, watchers, previous and next lot, the auction and the auction house's contact.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| url | optional | — | A the-saleroom.com lot URL (lots[].url). |
| auction_ref | optional | — | The catalogue id (the part after catalogue-id- in its URL), as in auctions[].auction_ref. The auction house is looked up. |
| lot_id | optional | — | The lot's UUID (lots[].lot_id); with auction_ref instead of url. |
| include_bids = true | optional | — | Read the live bid state (current bid, bid count, next minimum bid, reserve met, closing time) from the site's bid service: one extra small request. |
/the-saleroom/v1/search1 creditSearch every OPEN lot on the-saleroom by keyword (the site's own search index): narrowed by country, category, auction type, auction house, brand, item type, estimate range or images; sorted by relevance, auction date, estimate, auction house or newest. Each row is a lot with its estimate, current bid, bid count, watchers, auction dates, auction house, category and location, with the site's own total.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | optional | — | Words to search lot titles and descriptions for (empty = every open lot). |
| country | optional | — | Lot country, by name (facets: countries). |
| category | optional | — | Lot category code (facets: categories). |
| auction_type | optional | live · timed · catalogue_live · catalogue_timed · tender | The site's auction type. |
| auctioneer | optional | — | Auction house by its exact name (facets: auctioneers). |
| brand | optional | — | Brand / maker (facets: brands). |
| item_type | optional | — | Item type (facets: item_types). |
| estimate_min | optional | — | Only lots whose low estimate is at least this. |
| estimate_max | optional | — | Only lots whose high estimate is at most this. |
| has_images | optional | — | Only lots with images. |
| exact = false | optional | — | Exact phrase, no typo tolerance (the site's 'exact match' switch). |
| sort | optional | relevance · auction_date · high_estimate · low_estimate · auction_house · newest | Order (the site's own sort options). |
| page = 1 | optional | 1–500 | Page, from 1. |
| page_size = 60 | optional | 60 · 120 | Lots per page. |
| include_facets = false | optional | — | Also return the site's filter values with counts (auction houses, countries, categories …) — use them as filter values. |
/the-saleroom/v1/bids1 creditLive bid state for up to 120 the-saleroom lots in one call (timed and webcast): current bid, bid count, opening price, next minimum bid, reserve met, closing time and closed. For watching lots you already know without re-reading the catalogue.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| lot_ids | required | — | Lot UUIDs (lots[].lot_id / results[].lot_id), up to 120. |
curl -X POST https://api.reefapi.com/the-saleroom/v1/auctions \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"page":1}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.