Invaluable Scraper: Auction Lots, Prices Realized & Houses
Pricing
from $4.70 / 1,000 auction lots
Invaluable Scraper: Auction Lots, Prices Realized & Houses
Scrape Invaluable auction results: sold lots with the price realized next to the estimate, or upcoming lots with current bid, bids and watchers. Plus auction houses and artists. Art, antiques, jewelry, watches, coins. Pay per lot; bidder IDs are never included.
Pricing
from $4.70 / 1,000 auction lots
Rating
0.0
(0)
Developer
Oswaldo Carabano
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Invaluable Scraper: Auction Results, Prices Realized & Auction Houses
Export auction results from Invaluable.com, one of the largest online marketplaces for fine art, antiques, jewelry, watches, coins and collectibles. Get sold lots with the price realized (hammer price) next to the estimate, or upcoming lots with the current bid, bid count and watchers, plus the directories of auction houses and artists.
- Sold prices database: about 9.6 million sold lots with a price realized.
- Live auctions: about 250,000 lots open for bidding right now.
- No browser, no login, no cookies. 1,000 lots in about 4 seconds.
- $4.70 per 1,000 lots. You never pay for an error, a duplicate or a failed page.
What people use it for
| If you are… | You get |
|---|---|
| An appraiser, dealer or collector pricing an object | sold comparables: price realized vs. low/high estimate, sale date, auction house, full description |
| Building an art, watch or coin price index | prices realized in their original currency, by category, artist, house and country |
| Sourcing before the hammer falls | upcoming lots filtered by keyword, category, estimate, country or auction house, sorted by ending soonest or most bids |
| Watching demand for a maker or category | bid counts, bidders, watchers and favorites on every upcoming lot |
| Doing lead generation for auction services | every auction house on Invaluable, its country and how many lots it has open for bidding |
| Researching artists | aliases, genres, total / upcoming / past lot counts and followers |
Two lot datasets in one actor
searchMode | What you get | Size (1 Oct 2026, the site's counter is approximate) |
|---|---|---|
past (default) | Sold lots with prices realized, newest first | about 9.6 million |
upcoming | Lots open for bidding, with live bid data | about 250,000 |
Only lots that are actually listed on invaluable.com are returned (the same
visibility rules the site's own search applies), so every lot_url opens a real lot
page. Searches larger than one query can reach are split by date automatically,
so maxItems really is the number of rows you get (up to 100,000 per run).
What actually arrives in a row
A lot row has 92 fields. Every rate below was measured on the Apify platform on 1 Oct 2026 on a stratified sample: 16 searches (painting, ring, chair, coin, vase, print, silver, sculpture, rug, clock, porcelain, bronze, book, watch, lamp, poster) in each mode, n = 1,020 sold and 1,020 upcoming lots from 138 auction houses in 12 countries. We do not promise a field we have not measured.
Always there: 100% in both modes
lot_id · lot_ref · lot_number · lot_url · title · description ·
status · sale_type (Live / Timed) · auction_date (ISO, UTC) ·
auction_date_local · currency · current_bid · bid_count · watcher_count ·
supercategory · category · house_name · house_ref · catalog_ref ·
location · country · image_url
Sold lots (past)
| Field | Fill rate |
|---|---|
price_realized (hammer price) | 100% |
estimate_low / estimate_high | 91.7% |
has_winner | true on 43.2% |
more_text (extra catalog notes, footnotes) | 44.4% |
end_time (timed auctions) | 16.1% |
artist_name / artist_ref | 10.9% (43.4% in Fine Art) |
Upcoming lots (upcoming)
| Field | Fill rate |
|---|---|
posted_at, bidder_count, favorite_count, activity_count | 100% |
subcategory, latitude / longitude, image_width / image_height | 100% |
state (auction house region) | 82.8% |
estimate_low / estimate_high | 77.5% / 76.9% |
more_text | 63.8% |
end_time (timed auctions) | 33.1% |
artist_name / artist_ref | 24.4% (66.4% in Fine Art) |
reserve_price | 4.1% |
Money is always in the lot's own currency, with currency on every row
(USD, EUR, GBP, AUD, CAD, JPY and more). We never convert silently.
A zero in the source is not a price. Invaluable stores "no estimate" and "no
result" as 0; this actor delivers them as null, so an average of
price_realized is never dragged down by fake zeros.
Full lot page data: optional, charged separately
Turn on scrapeDetails to open each lot page and add what only the page has.
Measured on n = 120 lot pages (60 sold, 60 upcoming; paintings, rings, chairs):
| Field | Fill rate |
|---|---|
photos: every photo (4.7 per lot on average; the search gives 1) | 100% |
buyers_premium and buyers_premium_tiers | 100% |
bid_increments, accepted_payment_forms, shipping_details | 100% |
catalog_title, catalog_date, catalog_timezone, live / timed flags | 100% |
house_street, house_city, house_postal_code, house_country_code | 99–100% |
house_logo_url, house_region | 98.3% |
sold_amount (sold lots; equal to price_realized in 60 of 60) | 100% of sold |
usd_conversion_rate | 66.7% |
condition_report | 50.0% |
exhibited | 16.7% |
dimensions | 15.0% |
medium | 8.3% |
provenance | 3.3% |
A lot page takes about 1.5 s, so it is off by default and billed as its own
event, only when the page is read successfully. Lot page data may be reused for
up to maxCacheAgeDays (default 7); such rows say so in detail_from_cache and
detail_fetched_at.
Auction houses and artists
Set outputType to get a directory instead of lots, one row type per run:
auctionHouses: name, ID, country, logo and number of upcoming lots for each of about 6,900 auction houses. Filter bycountriesorkeyword.artists: name, first/last name, aliases, genres, total, upcoming and past lot counts and followers, for about 259,000 artists.
Pricing
Pay per event. You never pay for an error row, a duplicate or a failed page.
| Event | Price |
|---|---|
| Actor start | $0.00001 (platform minimum) |
| Auction lot | $0.0047 |
| Full lot page (optional) | $0.003 |
| Auction house | $0.001 |
| Artist | $0.001 |
1,000 sold lots with prices realized = $4.70. With full lot pages = $7.70. Duplicates are removed within a run. If you set a maximum cost for the run, the actor stops cleanly at it and never delivers a row it did not charge.
Input
| Field | Default | Notes |
|---|---|---|
outputType | lots | lots, auctionHouses, artists |
searchMode | past | past = sold with prices realized, upcoming = open for bidding |
keyword | empty | like the search box on invaluable.com; a pasted invaluable.com search URL also works |
categories | all | the 14 top-level Invaluable categories |
countries | all | country of the auction house, e.g. Germany; USA and UK work too |
auctionHouses | all | house names, e.g. Bonhams |
artist | any | artist name, e.g. Pablo Picasso |
saleType | any | Live / Timed, upcoming lots only |
minEstimate / maxEstimate | — | in each lot's currency, decimals allowed |
minPrice / maxPrice | — | price realized (past) or current bid (upcoming) |
dateFrom / dateTo | — | YYYY-MM-DD, UTC |
includeUnsold | false | past lots without a published price |
sortBy | date | date, oldest first, relevance, price high/low, newly listed, most bids |
maxItems | 100 | hard cap on rows delivered and charged |
scrapeDetails | false | full lot page data, separate event |
Every filter was checked against the rows it returns on the platform: category, country, auction house, artist, sale type, estimate, price and date filters matched 100% of the delivered rows in our test runs, and every sort order came back in order. Keywords return lots that actually contain the word (typo matches such as "patent" for "patek" are left out).
Privacy
The seller on Invaluable is a registered auction house, a business. Auction house names, addresses and logos are business data and are included.
Bidders are people, and no bidder identifier ever leaves this actor: the site
exposes the IDs of watchers, bidders and winners, and we deliver only counts
(watcher_count, bidder_count) and a has_winner flag. Never the IDs, never
anyone's maximum bid. We checked every row of every test run: zero bidder IDs.
Output example (sold lot, shortened)
{"row_type": "lot","lot_id": "205866906","title": "Vintage Rolex Day-Date President Gold and Diamond Watch","status": "sold","auction_date": "2026-09-25T14:00:00.000Z","currency": "USD","estimate_low": 7000,"estimate_high": 10000,"price_realized": 13000,"bid_count": 17,"watcher_count": 50,"supercategory": "Jewelry","category": "Watches, Women's","house_name": "Charlton Hall","location": "West Columbia, SC, US","country": "United States of America","lot_url": "https://www.invaluable.com/auction-lot/vintage-rolex-day-date-president-gold-and-diamond-656-c-692359e70e"}
The run also writes RUN_SUMMARY (delivered and charged counts) and ERRORS
(pages that could not be read, never charged) to the key-value store.
FAQ
How do I get past auction results for one object? Put the object in keyword
(e.g. tiffany lamp), keep searchMode = past, and optionally set sortBy =
relevance. Each row has the price realized and the estimate side by side.
Can I get prices realized for one artist? Yes: set artist (e.g.
Pablo PicassoscrapeDetails for medium, dimensions and provenance when the
house published them.
Are prices converted to USD? No. Each row keeps the lot's own currency in
currency. With full lot pages, usd_conversion_rate gives the site's rate when
available (66.7% of lot pages). Note that sorting by price compares the raw numbers
across currencies.
Why do some sold lots have an auction date a few days ahead? Some houses publish results under the catalog's closing date. The date is what Invaluable shows; we do not alter it.
Can I get every lot ever sold? maxItems goes up to 100,000 per run and the
actor splits big searches by date. For more, schedule runs by date range.
What happens if my search has no results or my input is wrong? The run ends green with one error row that says why, and no lot is charged.
Is the data fresh? Search results are read live on every run. Only the optional lot page data can come from a cache, and those rows say so.
Can I schedule it or call it from my code? Yes: Apify schedules, the API, and integrations (Google Sheets, Zapier, Make, webhooks) all work with this actor.