Chrono24 Watch Listing Scraper
Pricing
from $1.33 / 1,000 results
Chrono24 Watch Listing Scraper
Scrape luxury-watch listings from Chrono24 by brand, model or URL. One row per watch: brand, model, reference number, year, price, condition, movement, case size, box & papers status, seller country and images. Gets past Chrono24's Cloudflare block; no login.
Pricing
from $1.33 / 1,000 results
Rating
0.0
(0)
Developer
Malek Oweis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Chrono24 blocks scrapers — it sits behind Cloudflare plus a bot-risk engine, so a normal request gets a 403. That is why most Chrono24 Actors are slow, tiny, or broken.
This one gets through. Every request uses a real browser TLS fingerprint and runs through Apify's residential proxy, retrying on a fresh IP whenever it is challenged. The watch data is read straight out of each page's own JSON-LD — no private API, no login, no captcha setup from you.
Point it at a brand, a model, a reference, a search, or a single listing and get one clean row per watch for sale.
What you get per watch
| Field | Meaning |
|---|---|
title, brand, model | Watch identity |
referenceNumber | Manufacturer reference / model number |
year | Year of production (when the seller states it) |
price, currency | Asking price and currency |
condition | New · Used · Refurbished … |
availability, inStock | Listing status |
movement | Automatic · Manual winding · Quartz … |
caseMaterial, caseDiameterMm | Case material and diameter in mm |
crystal, strapMaterial | Crystal and strap/bracelet material |
jewels, powerReserveHours | Caliber details, when Chrono24 exposes them |
gender | mens · womens · unisex |
sellerCountry | ISO country code of the seller |
hasBox, hasPapers, boxAndPapers | Parsed from the listing text — the single biggest price driver on the used market |
imageUrl, imageCount | First image and how many photos the listing has |
description | The seller's full spec/description text |
listingId, url | Chrono24 listing id and direct link |
Input
{"brands": ["rolex", "omega"],"urls": ["https://www.chrono24.com/rolex/submariner--mod1240.htm"],"maxListingsPerInput": 120,"scrapeDetails": true}
brands— brand names (rolex,patek-philippe,audemars-piguet,a-lange-sohne…). Each becomes a Chrono24 brand page and is paginated.urls— anychrono24.compage that lists watches: a brand page, a model page (…--mod….htm), a reference page, a filtered search (paste the URL with the filters applied on the site), or a single listing (…--id….htm).maxListingsPerInput— stop after this many watches per brand/URL (60 per page).0= no limit, hard-capped at 3000.scrapeDetails—true(default): open every listing for the full record.false: faster and cheaper, but onlytitle,price,currency,imageUrlandinStockfrom the results page.proxyConfiguration— defaults to Apify Residential, which is required. Datacenter IPs get blocked by Cloudflare.
Output
One dataset row per watch, plus a SEARCH_SUMMARY key-value record per brand/URL with
listingsScraped, priceMin / priceAvg / priceMax, conditionBreakdown,
boxAndPapersCount, topSellerCountries and brandsSeen.
Example row
{"source": "rolex","listingId": "47038909","url": "https://www.chrono24.com/rolex/submariner-date--id47038909.htm","title": "Rolex Submariner Date","brand": "Rolex","model": "Submariner Date","referenceNumber": "116610LN","year": "2018","price": 12750,"currency": "USD","condition": "Used","availability": "InStock","inStock": true,"movement": "Automatic","caseMaterial": "Steel","caseDiameterMm": 40,"crystal": "Sapphire crystal","strapMaterial": "Steel","jewels": 31,"powerReserveHours": 48,"gender": "unisex","sellerCountry": "DE","hasBox": true,"hasPapers": true,"boxAndPapers": true,"imageUrl": "https://img.chrono24.com/images/uhren/….jpg","imageCount": 8}
Use cases
- Price research — pull a reference or model and see the full asking-price spread, split by condition and box-and-papers status
- Dealer sourcing — filter by
sellerCountry,conditionandpriceto spot listings worth a closer look - Market monitoring — schedule it weekly on a brand or model and diff
priceAvgand listing counts to catch a reference heating up or cooling off - Arbitrage screening — compare Chrono24 asking prices against retail or another marketplace
- Datasets — export a whole brand's inventory with specs for analysis or a valuation model
FAQ
Why do other Chrono24 scrapers break? Chrono24 is behind Cloudflare and a bot-risk engine, and rotates its protection. A normal request gets a 403. This Actor sends a real browser TLS fingerprint and retries on a fresh residential IP, so it reads the same pages a visitor sees.
Do I need a proxy or captcha solver? Apify Residential proxy is the default and required — no captcha solver needed. Datacenter proxy usually gets blocked.
Where does the data come from — a private API? No. Every Chrono24 brand, model and listing page embeds a JSON-LD block with the offer and product data. Only public pages, no login.
Can I filter (year, price, condition, box & papers…)?
Apply the filters on chrono24.com, then paste that filtered URL into urls. The Actor
follows whatever the URL narrows to.
Is this allowed? It reads only public Chrono24 brand, model and listing pages — the same pages any visitor sees. It never logs in and never touches account, order or buyer data. Respect Chrono24's terms and your local laws.
Use it from an AI agent
This Actor is available as a tool over Apify's MCP server, so an AI agent (Claude, ChatGPT, or any MCP client) can call it directly to pull Chrono24 watch listings and pricing into a conversation or workflow.
Notes
Reads only public Chrono24 pages. No login, no private data.