RM Sotheby's Scraper avatar

RM Sotheby's Scraper

Pricing

from $16.00 / 1,000 lots

Go to Apify Store
RM Sotheby's Scraper

RM Sotheby's Scraper

RM Sotheby's results and lots on offer for dealers, appraisers and analysts: 99,000+ collector cars, motorcycles and automobilia since 2002, with sold price, asking price or estimate, chassis numbers, highlights, catalogue essay and photos. Filter by make, model, year, auction, price.

Pricing

from $16.00 / 1,000 lots

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Norm Data

πŸ† RM Sotheby's Scraper

Extract lots from RM Sotheby's, the auction house behind most of the record prices for collector cars: Ferraris, Bugattis, Porsches, pre-war classics, race cars, motorcycles, boats and automobilia. Get auction results (over 98,000 lots since 2002, with the sold price or the estimate) or lots on offer (upcoming auctions and private sales), each with its full catalogue entry, in one clean table.

Each lot comes with:

  • Sold price for sold lots, the asking price of private sales, and the low and high estimate in the auction's currency (USD, EUR, GBP, CHF, CAD, DKK), plus the estimate in every other currency RM shows.
  • Status: sold, unsold, upcoming, for sale (private sales) or withdrawn.
  • Chassis, engine, body, gearbox and frame numbers, registration and every other identification number in the catalogue.
  • The highlights list, the full catalogue essay, specs, addendum and saleroom notes.
  • Race history as a table (date, event, driver, entrant, race number, result) for competition cars.
  • The auction: name, code, sale type (live, online, sealed bid, private sale), location, country and dates. Lot number, collection, No reserve, open to offers, bidding open and close times.
  • Every photo, the photo credit, the video, the history files link, the lot link and the auction link.

🎯 Who uses it?

πŸš— Collector car dealers and brokers

Pull every RM result for a model to price a car before you buy, consign or offer it.

πŸ“Š Valuation guides, price indexes and analysts

Feed a market index with sold prices, estimates and dates across 24 years and every RM sale worldwide.

🧾 Appraisers, insurers and lenders

Back an agreed value with comparable RM sales, each matched by chassis number, with the catalogue essay and lot link.

πŸ” Buyers, historians and registries

Track a chassis through its RM appearances, read its race history, and watch upcoming sales and private sales for the cars you want.

✨ What it does

  • Past results or lots on offer. Results give the sold price or the estimate; lots on offer give estimates, bidding times and private sale asking prices.
  • Search the way you think:
    • Search terms ("gullwing", "250 gt", "le mans", "scaglietti"), several per run.
    • Type (Cars, Motorbikes, Boats, Other) and RM's 24 collecting categories (Supercars & Hypercars, Pre-War European Classics, European Racing Cars...).
    • Make, model and model year range.
    • Auction by code or name ("mo25", "Monterey 2025", "arizona" for every Arizona sale).
  • Or paste rmsothebys.com links: a lot page, a private sale page or a whole auction (every lot in it). The filters are ignored with links.
  • Every useful filter:
    • Sold, unsold, results, on offer or everything.
    • Auction date range: exact dates, or periods like "6 months" or "2 years".
    • Auction country, sale type (live, online, sealed bid, private sale), No reserve only, withdrawn lots.
    • Price range with a currency filter (sold price, asking price, or low estimate when there is neither).
    • Words to exclude (posters, models, automobilia...).
    • 7 sort orders: newest or oldest auction, highest or lowest price, newest or oldest model year, make.
  • New lots only. For scheduled runs: saves only lots the same search has not saved before.

πŸ† Why this scraper

  • The whole RM Sotheby's archive. Every sale since 2002 (99,000+ lots), past the site's 10,000 lot search limit, not one auction at a time.
  • The full catalogue in every row. Chassis and engine numbers, highlights, the essay, race history and every photo are always included, at no extra cost.
  • Real sort orders. "Highest price" really ranks every matching lot across currencies, so the $51.7 million GTO comes first.
  • Fast. About 1,000 lots with their full catalogue in under 20 seconds.
  • No proxy needed. Nothing extra to set up or pay for.

βš–οΈ How it compares

No other Actor in the Apify Store covers RM Sotheby's. Below, the closest collector car auction scrapers, based on their public input options (October 2026).

CapabilityThis actorparseforge Bring a Trailergrowth-installations Mecumrastriq The Market (Bonhams)rastriq Artcurial
RM Sotheby's lotsyesnononono
Whole results archiveyes, since 2002n/aone auction per runn/an/a
Sold pricesyesyesyesyesyes
Estimatesyes, every currencynononono
Upcoming lots and private salesyesyesyesnono
Search termsseveral per runnononono
Make, model, year filtersyesnonomake, yearmake, year
Category, auction, country, sale type filtersyesnononono
Auction date rangeyesnononono
Price rangeyesnononono
Sort orders7nonenonenonenone
Chassis and engine numbersyesnopartial VINnono
Catalogue essay, highlights, race historyyesnononono
Lot and whole auction linksyespage linksyes (slug)nono
New lots only (monitoring)yesnoyesnono
Needs a proxynononoyesyes

πŸ“¦ What data you get

FieldDescription
imageMain photo.
title, year, tagLineLot title, model year and RM's one-line pitch.
categoryCars, Motorbikes, Boats or Other (automobilia, memorabilia).
statussold, unsold, upcoming, for sale (private sales and post-auction offers) or withdrawn.
priceSold price, in currency (sold lots only).
askingPriceAsking price of private sales and post-auction offers, in currency.
currency, estimateLow, estimateHighCurrency of the sale, and the estimate.
priceTextThe value as RM shows it ("$51,705,000 USD", "€850 - €2,600 EUR", "Price Upon Request").
lotNumber, referenceId, lotIdLot number in the sale, RM's reference (e.g. "r0001") and RM's lot id.
saleTypeLive auction, Online auction, Sealed bid or Private sale.
auction, auctionCode, collectionSale name, RM's code (e.g. "mo25") and the collection the lot belongs to.
location, country, countryCodeWhere the lot is sold.
chassisNumber, engineNumber, bodyNumber, gearboxNumber, frameNumberCatalogue numbers.
identificationNumber, registrationVIN or other id, and registration.
description, addendum, saleroomNotes, specsCatalogue essay, addendum, saleroom notes and specs.
photoCredit, imageCountPhoto credit and number of photos.
searchedForWhich of your searches or links found it.
withoutReserve, canMakeOfferSold whatever the price; open to offers.
url, auctionUrl, videoUrl, historyFilesUrlLot page, auction page, video and history files.
highlightsThe highlights list.
idNumbersEvery catalogue number as name and value.
estimatesAllCurrenciesThe estimate in every currency RM shows.
raceHistoryRace results: date, event, driver, entrant, race number, result.
catalogueSymbolsTax and import symbols on the lot.
imagesEvery photo link.
auctionStartDate, auctionEndDate, offeredOnSale dates, and the day a lot was offered.
biddingOpensAt, biddingClosesAtOnline and sealed bid times (UTC).
scrapedAtWhen the row was collected (UTC).

Example row (trimmed)

{
"image": "https://cdn.rmsothebys.com/0/9/2/4/6/9/092469b8e80d531d0ebc2d5fd61bfc2e25391639.webp",
"title": "1962 Ferrari 330 LM / 250 GTO by Scaglietti",
"year": 1962,
"category": "Cars",
"status": "sold",
"price": 51705000,
"currency": "USD",
"priceText": "$51,705,000 USD",
"referenceId": "r0001",
"saleType": "Live auction",
"auction": "The One – 1962 Ferrari GTO",
"auctionCode": "gt23",
"location": "New York, New York",
"country": "United States",
"countryCode": "US",
"chassisNumber": "3765 LM",
"description": "THE DEFINITION OF A LEGEND\n\nA shimmering seaside sunset. A Perseid meteor streaking across the August night. A flash of...",
"photoCredit": "Jeremy Cliff Β©2023 Courtesy of RM Sotheby's",
"imageCount": 127,
"withoutReserve": false,
"canMakeOffer": false,
"url": "https://rmsothebys.com/auctions/gt23/lots/r0001-1962-ferrari-330-lm-250-gto-by-scaglietti/",
"auctionUrl": "https://rmsothebys.com/auctions/gt23/",
"historyFilesUrl": "http://catalogue.rmsothebys.com/books/psit/",
"highlights": [
"The only GTO Tipo 1962 raced by the Scuderia Ferrari",
"Class win and 2nd overall finish at the 1962 NΓΌrburgring 1000 KM"
],
"idNumbers": [
{
"name": "Chassis No.",
"number": "3765 LM"
}
],
"images": [
"https://cdn.rmsothebys.com/b/1/f/3/7/0/b1f3708522d1e22b2b0ab7989dc88c8946ce5588.webp",
"https://cdn.rmsothebys.com/f/a/2/4/b/e/fa24be557bf9cc5e8c144b27d4cebc2d4c72233b.webp"
],
"auctionStartDate": "2023-11-13",
"auctionEndDate": "2023-11-13",
"offeredOn": "2023-11-13",
"scrapedAt": "2026-10-12T21:33:26.600Z"
}

πŸ’‘ Use cases

πŸ“ˆ Every 300 SL Gullwing RM sold

{ "searchTerms": ["gullwing"], "status": "sold", "maxItems": null }

πŸ”₯ The 500 most expensive lots of the last 2 years

{ "sortBy": "price_high", "dateFrom": "2 years", "status": "sold", "maxItems": 500 }

🏁 European racing cars with race history

{ "tags": ["European Racing Cars"], "maxItems": null }

🏷️ Porsches between €100,000 and €500,000 at European sales

{ "makes": ["Porsche"], "minPrice": 100000, "maxPrice": 500000, "currencies": ["EUR"], "maxItems": null }

πŸ”” Private sales and upcoming No reserve lots

{ "status": "on_offer", "withoutReserveOnly": true, "maxItems": null }

🏍️ Every lot of one auction

{ "urls": ["https://rmsothebys.com/auctions/mo25/"], "status": "all", "maxItems": null }

βš™οΈ How the input is organised

SectionWhat it's for
Maximum lots, What to scrapeAlways first: caps the whole run (empty means no limit), and results, sold, unsold, on offer or everything.
WhatSearch terms, or links.
VehicleType, collecting category, make, model, model year.
AuctionAuction name or code, auction date range, country, sale type, No reserve, withdrawn lots.
PricePrice range, currency, words to exclude, sort order.
MonitoringNew lots only, with an optional monitor name.

Several values in one field widen the search (a lot matching ANY of your search terms, or ANY of your makes, is kept); different fields narrow it. With links, the search terms and filters are ignored.

πŸ’° Pricing

Pay-per-event: a one-time $0.003 when the run starts, plus a price per lot saved to your dataset that drops with your Apify plan. The full catalogue entry is always included.

Your Apify planPer lot1,000 lots
Free$0.025$25.00
Bronze$0.022$22.00
Silver$0.019$19.00
Gold / Platinum / Diamond$0.016$16.00

Lots dropped by your filters are not charged. There are no proxy costs. New Apify accounts start with $5 in free credit. On the Free plan a run saves up to 10 lots.

Speed: about 1,000 lots in under 20 seconds. "Lowest price" and "Oldest model year" read every matching lot first (RM Sotheby's own order for them is not reliable), so across the whole archive they take 20 to 40 seconds before the first lot is saved: narrow them with a make, type or date range.

πŸš€ Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the RM Sotheby's Scraper.
  3. Type a search term (or keep the prefilled one), pick results or lots on offer and your filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

You can also:

  • Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
  • Schedule it with Apify's built-in Scheduler, with New lots only on, to catch new consignments and private sales as RM publishes them.

πŸ€– Use with AI agents (MCP)

Give an AI agent live access to RM Sotheby's results through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/rmsothebys-scraper"

Then prompt it in plain language, for example "what did Ferrari 275 GTB/4s sell for at RM Sotheby's in the last 5 years?".

πŸ”§ Troubleshooting

A sold lot has no price. RM shows "Sold" without a price on some lots, mostly private sales. They are kept as sold, with an empty price.

Prices are in different currencies. Each lot keeps the currency of its sale. Use Currency to keep one, and estimatesAllCurrencies for RM's conversions of the estimate.

A withdrawn lot or a private sale has no catalogue fields. RM removes the page of withdrawn lots and some sold private sales. Those rows have the search data and no catalogue, with no error.

A row has an error field. Only when the lot's catalogue entry could not be read: the other fields are filled, the catalogue fields are empty and error says why. Rows that worked have no error.

Private sales come last in date orders. RM gives sold private sales no sale date, so they come after the auctions. With On offer, private sales still for sale come first.

A make finds nothing. Makes must be spelled as RM does ("Mercedes-Benz", "Rolls-Royce"); the log warns when a make matches no lot. Search terms are more forgiving.

A scheduled "New lots only" run saved nothing. Nothing new matched since the last run. Changing terms, links or filters starts a fresh memory; set a Monitor name to keep it.

❓ FAQ

QuestionAnswer
Do I need an RM Sotheby's account?No. Only public lot data is read.
Does the price include the buyer's premium?Yes, price is the result RM publishes, with premium.
How far back do results go?To 2002, every sale in RM's online results.
Are private sales included?Yes, both for sale and sold.
Is there a result limit?No. Leave the maximum empty to get everything that matches.
Does it need a proxy?No.
Can I track new lots?Yes. Turn on New lots only and schedule the run.

πŸ›‘οΈ Limits & responsible use

This Actor reads only public lot data shown on rmsothebys.com. It never signs in and never bids. Use the data in line with RM Sotheby's terms.

πŸ“§ Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

πŸ§ͺ Local development

bun install
bun run typecheck
bun test/qa.mjs
bun test/verify.mjs
apify run

Local results are stored in storage/datasets/default.