What auction lots actually sold for - the hammer price, before the premium - across thousands of auction houses
LiveAuctioneers is a US-based marketplace that runs online bidding for thousands of auction houses, and this API reads it as JSON with no account and no key.
6 active endpoints, on 1, 2 and 3 credit tiers.
- POST/liveauctioneers/v1/search
- POST/liveauctioneers/v1/past_results
- POST/liveauctioneers/v1/detail
- POST/liveauctioneers/v1/auction
- POST/liveauctioneers/v1/auction_house
- POST/liveauctioneers/v1/suggest
What LiveAuctioneers endpoints does ReefAPI ship?
6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
LiveAuctioneers API
8 of 6 endpoints, ready to run
Tiffany lamps that sold, highest hammer price first
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the LiveAuctioneers API works
LiveAuctioneers is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 491 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From a description to a defensible sold price
Find what comparable lots actually sold for, check one result bid by bid, then compare it with what is on offer today and what a winning bid would really cost.
The completions LiveAuctioneers itself offers, plus matching auction houses with their house_id.
lamp&sold_after=2024-01-01&sort=price_high_first
Sold lots with hammer_price (before premium), the estimate they were offered at, the opening price, the bid count, the house and the sale date. 632 tiffany-lamp lots sold in 2024 were measured.
lamp&min_price=100&max_price=500
The same archive cut to a hammer band - every returned row falls inside it - so a price series can be built slice by slice inside the 1,200-row window.
One result end to end: the hammer price, the bid history bid by bid with each bid's source, the catalogue text, every photo and the sale's buyer's-premium bands.
lamp&sort=sale_soonest
What comparable lots are being offered at now, with the estimate, the opening price and - only where bids exist - the current bid as separate fields.
A dated price series of hammer prices you can cite - house, sale date, estimate, hammer and the premium that will be added - next to what comparable lots are being bid on today.
curl -X POST https://api.reefapi.com/liveauctioneers/v1/past_results \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"tiffany lamp","sort":"price_high_first","max_results":10}'{
"ok": true,
"data": { … },
"meta": {
"api": "liveauctioneers",
"endpoint": "past_results",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a LiveAuctioneers row actually contains
An auction lot carries several different amounts. Every row below was measured against live LiveAuctioneers responses on 2026-10-14.
| Field | What it holds |
|---|---|
| hammer_price | What the lot sold for, before the buyer's premium, in the lot's own currency. Set only on sold lots. Checked on five sold lots against the top bid in each lot's own bid history and against the price on each lot's own page: five out of five equal. Filled on 48 of 48 rows in each of five categories of the archive. |
| final_bid vs hammer_price | `final_bid` is the last leading bid the source records on an ended lot; `hammer_price` is the sale price. They are usually equal, but not always: on one measured lot the hammer was 3,500 while the recorded leading bid was 5,500, so the two are never merged. |
| starting_price vs current_bid | `starting_price` is the opening price. `current_bid` is set only on open lots with at least one bid and is null otherwise, so a lot nobody has bid on never shows a bid. `price_is` names which figure the row leads with: `hammer_price`, `current_bid` or `starting_price`. |
| estimate_low / estimate_high | The house's pre-sale estimate. The estimate filters bound the LOW end of that range, because that is how the source filters - a lot estimated 200-10,000 is inside a band that tops out at 300. |
| bid_history | On a closed lot: every bid with its amount, currency and source (internet bid or competing floor bid). Its top amount, `bid_history_top`, matched `hammer_price` on every closed lot measured. The source publishes the history only after a lot closes; on open lots it is empty. |
| amounts_include_buyers_premium | False on every row. The premium is set per SALE: `detail` and `auction` return it as bands - one flat rate (25% on a measured sale) or up to three tiers, for example 20% up to 4,000, 18% to 10,000 and 15% above. |
| total_found and last_reachable_page | Counts stop at 10,000 open lots and 9,000 archived lots (`total_is_capped` says so). Paging stops at 10,000 open lots and 1,200 archived lots per query - past that LiveAuctioneers serves results only to signed-in members - and `last_reachable_page` says where the window ends. Narrow with a filter rather than paging deeper. |
| house | The seller is the auction HOUSE, a business: `house`, `house_id`, `house_url`, its location and review score on every row, and its business website and contact details in `auction_house`. |
Amounts are in each lot's own currency and are never converted. A field the source does not publish is null rather than filled in.
LiveAuctioneers coverage, measured
Every number below was read from live LiveAuctioneers responses on 2026-10-14.
hammer_price on every sold archive row: 48 of 48 in each of art, jewelry, furniture, collectibles and fashion. Checked against two independent sources on five sold lots - the top bid in the lot's own bid history and the price on the lot's own page - five out of five equal. Excludes the buyer's premium.
On `tiffany lamp`, 6,418 archived lots unfiltered: 632 sold in 2024, 2,071 at a hammer of 1,000 or more, 2,459 between 100 and 500, 6,130 in Home & Décor - every returned row inside the filter. Hammer-price sorting returned 24 rows in strict order both ways.
estimate_low and estimate_high, starting_price, current_bid only on open lots with at least one bid, hammer_price only on sold lots, and final_bid separately - on one measured lot the hammer was 3,500 and the last recorded leading bid 5,500. price_is names the figure a row leads with. Nothing is converted between currencies.
Per sale, returned as bands: a flat rate (25% on a measured sale) or up to three tiers with their cut-offs (20% to 4,000, 18% to 10,000, 15% above on another). amounts_include_buyers_premium is false on every row.
Six top-level categories. One query, `vase`, sits on the 10,000 counting ceiling unfiltered; Art narrows it to 1,180, Furniture 166, one New York filter 3,468. Unknown categories are refused, because the source would silently ignore them and return everything.
Counts stop at 10,000 open lots and 9,000 archived lots (total_is_capped). Paging stops at 10,000 open and 1,200 archived lots per query (last_reachable_page). Up to 120 rows per page. The bid history exists only after a lot closes. Archived rows carry the house's location, not the lot's.
What people build with LiveAuctioneers
The jobs this data is most often used for.
endpoints
credits per call
Price an item before consigning or bidding: `past_results` with a query, a category and a date window, sorted by highest hammer, gives what comparable lots actually sold for, with the estimate they were offered at next to it.
Build an auction-comparables feed for appraisers, insurers and dealers that cites the house, the sale date, the hammer price and the estimate per lot, with the buyer's premium kept separate so the figure reconciles with an invoice.
Measure how hard a lot was fought for: `detail` returns the bid history of a closed lot bid by bid, so you can see how many bids it took to get from the opening price to the hammer.
Compare the cost of winning before bidding: `detail` and `auction` return the sale's own buyer's-premium bands - a flat rate or up to three tiers with their cut-offs.
What LiveAuctioneers data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 491 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/liveauctioneers/v1/past_results \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"tiffany lamp","sort":"price_high_first","max_results":10}'import requests
r = requests.post(
"https://api.reefapi.com/liveauctioneers/v1/past_results",
headers={"x-api-key": REEF_KEY},
json={
"query": "tiffany lamp",
"sort": "price_high_first",
"max_results": 10
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up LiveAuctioneers.
Get a free key →Does the LiveAuctioneers API return what a lot actually sold for?▾
Yes. `past_results` and `detail` return `hammer_price`, the price the lot sold for, before the buyer's premium. On five sold lots it matched the top bid in the lot's own bid history and the price on the lot's own page five times out of five, and it was filled on every one of 240 archived rows sampled across five categories.
Is the hammer price with or without the buyer's premium?▾
Without. `amounts_include_buyers_premium` is false on every row. The hammer equals the winning bid, and the premium is added on top at the rate the sale publishes - `detail` and `auction` return those bands so you can compute the total.
Can I filter and sort the archive by sold price?▾
Yes: `min_price` and `max_price` bound the hammer price, and `sort` takes `price_high_first` or `price_low_first`. Measured on `tiffany lamp`: 6,418 archived lots unfiltered, 2,071 at a hammer of at least 1,000 and 2,459 between 100 and 500, with every returned row inside the band.
A lot shows a price but no bids. Is that a bid?▾
No. That figure is the opening price, returned as `starting_price`. `current_bid` is filled only once `bid_count` is at least 1, and `price_is` says which figure the row leads with.
Why does a search say 10,000 results for almost everything?▾
Because LiveAuctioneers stops counting there for open lots (9,000 for the archive). `total_is_capped` is true when the figure sits on that ceiling. Add a category, a house, a country or a price band to get an exact count under it.
How deep can I page through sold lots?▾
1,200 archived lots per query, and 10,000 open lots; beyond that LiveAuctioneers serves results only to signed-in members. Every response carries `last_reachable_page`. Use the date window, the category, the house or the hammer band to cut a large archive into slices that fit.
Which categories can I filter by?▾
The six top-level ones: art, collectibles, fashion, furniture, home_decor and jewelry. Any other value is refused with an error, because the source silently ignores a category it does not recognise and would otherwise return everything.
Do I need a LiveAuctioneers account or key?▾
No. This API reads public, logged-out data and needs no account, cookie or token. The seller on every row is the auction house, which is a business.
What is the LiveAuctioneers API?▾
LiveAuctioneers API is a ReefAPI endpoint group for what auction lots actually sold for - the hammer price, before the buyer's premium - across thousands of auction houses, next to the lots open for bidding now with the estimate, the opening price and the live bid kept apart. It returns live JSON through POST requests under /liveauctioneers/v1.
Is the LiveAuctioneers API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. LiveAuctioneers calls use the same shared credit balance as every other ReefAPI engine.
Do I need a LiveAuctioneers login or account?▾
No login to LiveAuctioneers is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the LiveAuctioneers data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the LiveAuctioneers API use?▾
LiveAuctioneers actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call LiveAuctioneers from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call liveauctioneers actions with the same key, credit pool and JSON envelope used by normal REST requests.
231 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling LiveAuctioneers, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.