Dorotheum.com Auction & Artist Scraper
Pricing
from $5.25 / 1,000 results
Dorotheum.com Auction & Artist Scraper
Dorotheum.com auction scraper — real unpaywalled realized prices back to 1998, upcoming estimates, and artist profiles, with built-in delta mode.
Pricing
from $5.25 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Dorotheum Scraper — auction results & realized prices since 1998
Scrape auction results, upcoming lots and artists from Dorotheum, Vienna's auction house since 1707 and one of the largest in Europe. Get the realized (hammer) price, estimate range, starting bid, sale date and artist for every lot in Dorotheum's public archive, going back to 1998. That's an open alternative to paywalled auction price databases. No login or subscription.
Covers every Dorotheum department: Old Master and modern paintings, contemporary art, furniture, jewelry, watches, coins, antiques, design, classic cars and more. Export Dorotheum auction data to JSON, CSV or Excel, or pull it into Python, Google Sheets or an AI agent.
Dorotheum Auktionsergebnisse, Zuschlagspreise und Schätzpreise als Datensatz.
Contents
- What data can you extract from Dorotheum?
- Sample output
- Who uses this Dorotheum scraper?
- How much does it cost?
- How to scrape Dorotheum auction results
- Input
- Input examples
- Track new results over time
- Use it from Python or the API
- FAQ
- Related auction and art scrapers
What data can you extract from Dorotheum?
Three data types, chosen with entityType:
auctionResults (default) and currentAuctions | artists |
|---|---|
| Lot title, number, URL, image URL | Name, profile URL |
| Full lot description (medium, size, condition, provenance) | Birth and death year, nationality |
| Auction name, date, type, branch | Recent lot count at Dorotheum |
| Realized price and currency (sold lots) | Recent average price |
| Estimate low / high | Recent sale categories |
| Starting bid | Latest lot title and price |
| Sold flag | |
| Artist name, id and profile URL |
auctionResults: past sales with realized prices, back to 1998.currentAuctions: lots coming up for sale, with estimates and starting bids.artists: Dorotheum's artist directory.
Every record also carries a change_type (new, changed, unchanged, delisted). The Output tab
has a readable table view per data type with the full field list.
Why this Dorotheum scraper
- Real realized prices, completely open. Dorotheum publishes each historical lot's price with no login, and this actor turns 25+ years of it into a clean dataset.
- Cheap at scale. One auction page carries every lot in that sale, so a whole auction's results come from a single request. A full historical crawl costs roughly the number of auctions (~9,300), not lots.
- Complete archive by default.
auctionResultswalks every auction back to 1998 when uncapped. - Reliable. Built to get past Dorotheum's bot protection with residential proxies and a browser fingerprint.
Sample output
Real rows from a recent run (Old Master Paintings sale, 29 March 2000):
| Lot | Estimate (EUR) | Realized (EUR) |
|---|---|---|
| Lucas Cranach the Elder | 290,000–360,000 | 265,837 |
| Jan van Goyen | 102,000–116,000 | 196,972 |
| Bernardino Licinio | 87,000–100,000 | 102,904 |
| Jan Sanders van Hemessen | 73,000–110,000 | 89,532 |
| Bartolomé Esteban Murillo | 100,000–130,000 | 80,579 |
| Johann Carl Loth, called Carlotto | 16,000–20,000 | 60,027 |
Lot record (JSON):
{"source": "dorotheum","entity_type": "auctionResults","external_id": "dorotheum_10204744","url": "https://www.dorotheum.com/en/l/10204744/","title": "Peter Paul Rubens Nachfolger des 19. Jahrhunderts","auction_name": "Summer auction","auction_date": "2026-07-29","lot_number": "5","price": 1170,"currency": "EUR","starting_bid": 900.0,"sold": true,"change_type": "new"}
Artist record (JSON):
{"source": "dorotheum","entity_type": "artists","external_id": "dorotheum_artist_alvar-aalto","url": "https://www.dorotheum.com/en/k/alvar-aalto/","name": "Alvar Aalto","birth_year": 1898,"death_year": 1976,"nationality": "Finland","recent_lot_count": 30,"recent_avg_price": 4294.73,"change_type": "new"}
Good to know:
priceis set only when a lot actually sold (sold: true). For an unsold lot the site shows the starting bid in the same place; the actor keeps that instarting_bidand never mixes the two.estimate_low/estimate_highare filled only when Dorotheum shows an estimate range. Many lots, especially recent ones, show only a starting bid, which is instarting_bid.descriptionis Dorotheum's full free text. Medium, size and condition sit inside it and aren't split into separate fields, because the format varies too much across 25 years and every object category.- The
artistsdata type'srecent_*fields come from the artist's own Dorotheum page, which lists only their most recent lots (about 30 at most). They aren't a lifetime total. artist_name/artist_idare filled only when Dorotheum attributes a lot to a named artist. Works catalogued as "follower of", "school of" or anonymous keep the attribution intitle.
Who uses this Dorotheum scraper?
- Art-market analysts and price databases: realized prices, estimate accuracy and sell-through rates across 25+ years.
- Appraisers, insurers and art-lending firms: auction comparables for valuations.
- Dealers and collectors: track upcoming lots and see what similar works fetched.
- Researchers and journalists: price history for artists, schools and object categories.
How much does it cost?
Pay per result: you're charged per lot or artist record delivered. There's no monthly rental or separate proxy fee to estimate. See the Pricing tab for current prices, including automatic discounts on higher Apify plans.
The default run returns 50 lots, so trying it costs well under a cent. The monthly credit on Apify's free plan covers a good-sized first dataset.
How to scrape Dorotheum auction results
- Click Try for free (or open the actor in Apify Console) and go to the Input tab.
- Choose
entityType:auctionResults,currentAuctionsorartists. - Optionally paste specific auction or artist URLs into
startUrls. maxItemsdefaults to 50, a quick preview. Clear it (null) for the full archive.- Leave the Residential proxy setting on (the default).
- Click Start.
- Browse the results in the Output tab, or download them as JSON, CSV, Excel or HTML.
- To collect new results as they're published, add a Schedule with
mode: auto.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
entityType | String | auctionResults | currentAuctions, auctionResults or artists. |
startUrls | Array of strings | (none) | Specific auction URLs (.../en/a/{id}/) or artist URLs (.../en/k/{slug}/) to scrape instead of the full crawl. Such runs are always partial: no delisting detection, no saved baseline. |
maxItems | Integer | 50 | Stop after this many lots or artists. A full auctionResults crawl covers the whole archive; raise this or clear it (null) for that. |
mode | String | auto | auto (recommended): full scan first, changes only after, for auctionResults/artists. currentAuctions always returns everything, because estimates change as a sale approaches. full/incremental override this per run. |
impersonate | String | chrome (internal) | Browser fingerprint used for requests. Dorotheum's bot protection challenges plain requests; change only if chrome stops working. |
proxyConfiguration | Object | Residential | Apify Proxy settings. Keep the Residential default: Dorotheum blocks datacenter and cloud IPs. |
Input examples
Quick preview of historical results (the default):
{ "entityType": "auctionResults" }
Full historical archive back to 1998 (slow):
{ "entityType": "auctionResults", "maxItems": null }
Everything currently up for auction:
{ "entityType": "currentAuctions", "maxItems": null }
Full artist directory:
{ "entityType": "artists", "maxItems": null }
Results of one specific auction:
{ "entityType": "auctionResults", "startUrls": ["https://www.dorotheum.com/en/a/123940/"] }
Scheduled run for new results (keep maxItems cleared so the baseline is saved):
{ "entityType": "auctionResults", "mode": "incremental", "maxItems": null }
Track new results over time
Every run labels each item new, changed (price or sold status moved for lots; recent activity
moved for artists), unchanged or delisted. The baseline is saved per entityType.
auctionResults/artists:mode: auto(default) returns everything on the first run, then onlynew/changed/delisted.currentAuctions:mode: autoalways returns everything.- A
startUrlsrun is always partial and never updates the baseline.
Use it from Python or the API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("artsiom_k/dorotheum-scraper").call(run_input={"entityType": "auctionResults", "maxItems": 5000})for lot in client.dataset(run["defaultDatasetId"]).iterate_items():if lot["sold"]:print(lot["auction_date"], lot["title"], lot["price"], lot["currency"])
The same works from JavaScript, plain HTTP, Make, Zapier, n8n and Google Sheets integrations. AI agents such as Claude or Cursor can call it through Apify's MCP server.
FAQ
Does Dorotheum have an API for auction results? No, there's no public Dorotheum API. This actor returns Dorotheum's public auction results as structured data, so it works as one.
How far back do Dorotheum auction results go?
To 1998. An uncapped auctionResults run walks the full archive.
Why is price empty for a lot that's listed in the results?
That lot didn't sell. Check starting_bid. See Good to know.
Is the price the hammer price or does it include buyer's premium? It's the result price exactly as Dorotheum publishes it on the lot page.
Which departments are covered?
All of them: paintings from Old Masters to contemporary, prints, furniture, jewelry, watches, coins,
antiques, design, arms, toys, classic cars and more. Filter by auction_name or title after the
run.
Can I export Dorotheum results to Excel or CSV? Yes: JSON, CSV, Excel, XML or HTML from the Output tab, or through the API.
How do I get only new results?
Run it on a schedule with mode: auto (or incremental) and maxItems cleared.
Is it legal to scrape Dorotheum? This actor collects publicly available auction-result data: lot descriptions, prices and the public artist directory. Use it for a legitimate purpose and in line with GDPR where personal data is involved.
Something doesn't work or a field is missing? Open an issue on the Issues tab; issues are answered promptly.
Related auction and art scrapers
Same design, same output style, so results combine easily:
- Lempertz Scraper — Germany's oldest auction house, realized prices with buyer's premium.
- Artcurial Scraper — French auction results with hammer and final prices.
- Bruun Rasmussen Scraper — Denmark's largest auction house.
- MyArtBroker Scraper — print editions with Christie's/Sotheby's/Phillips price history.
- Ritchie Bros. Scraper — sold heavy equipment and truck auction lots.
- Saatchi Art Scraper — current artworks and per-artist sales stats.
- ArtBrokerage Scraper — secondary-market listings with provenance.