Chrono24 Luxury Watch Scraper
Pricing
from $2.50 / 1,000 overview listings
Chrono24 Luxury Watch Scraper
Scrape luxury watches from Chrono24 — Rolex, Omega, Patek Philippe & more. Fast price/spec overview or full detail: reference, movement, case, dial, bracelet, year, condition, box & papers, seller. Dual-currency EUR/USD, clean JSON/CSV, no code.
Pricing
from $2.50 / 1,000 overview listings
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Chrono24 Scraper & API — Luxury Watch Data (Rolex, Omega, Patek) ⌚
🎉 The fastest way to pull Chrono24 data — a Chrono24 API in everything but name. Clean, analytics-ready luxury watch data in EUR and USD, with box & papers as true/false fields.
Built for watch dealers, flippers, market analysts and investors who need normalized watch data they can drop straight into a spreadsheet or model — not raw scraped text.
📋 Overview
Turn Chrono24 into structured data. This Chrono24 scraper pulls luxury watch listings from the world's largest pre-owned and new watch marketplace — Rolex, Omega, Patek Philippe, Audemars Piguet, Cartier, Tudor, Breitling and every other brand — and hands you clean JSON or CSV. Pick the depth that fits the job: a fast, cheap price + spec sweep, or the full per-watch spec sheet.
Why dealers and analysts choose us:
- 🧼 Normalized, analytics-ready data: condition, availability and seller type come back as clean values — not buried in localized free text
- 📦 Box & papers as true/false:
has_boxandhas_papersare discrete booleans you can filter and pivot on instantly - 💱 Dual currency built in: every watch carries its price in EUR and USD from one live FX rate per run
- 📏 Real numbers, not strings: case diameter as a numeric value in mm, separate
bracelet_materialandbracelet_color,thumbnailsplit out from the full image gallery - ⚡ Two depths, one actor: a fast market-wide Overview scan, or deep per-watch Detail spec sheets
- 🎯 Three ways to search: by brand, by free-text query, or by pasting any filtered Chrono24 URL — all your filters preserved
- 🆓 Free to try: up to 25 watches per run, no credit card
✨ Features
- 🧭 Overview mode: fast price + spec scan straight from search cards (~60–120 listings per fetch) — ideal for sizing a market cheaply
- 🔍 Detail mode: the full per-watch spec sheet — reference number, movement, case material & diameter, dial, bracelet, water resistance, year, condition, scope of delivery, gender, seller and more
- 🏷️ By brand / by query / by search URL: pick brand slugs (
rolex,omega,tudor…), free-text search any model (submariner,daytona), or paste a refined Chrono24 search/brand link - 🎚️ Filters: price range in EUR on brand/query searches, plus every filter you bake into a pasted search URL (case material, condition, dial color, year, seller type, sort order…)
- 💱 Dual-currency pricing: EUR + USD on every row from one live FX rate per run
- 📦 Box & papers booleans: discrete
has_box/has_papersflags, ready to filter on - 🖼️ Full image gallery + thumbnail: every listing photo, with a separate thumbnail field for quick previews
- 🧾 Self-documenting datasets: every row carries a
metadataobject recording the exact search settings that produced it - 📑 HTML run report: a clean summary of every run alongside your data
- 📤 Clean exports: JSON, CSV, Excel, or the full REST API
🎬 Quick Start
Choose a scrape depth + a search mode, set your filters, and run.
curl -X POST https://api.apify.com/v2/acts/sian.agency~chrono24-watch-scraper/runs?token=[YOUR_TOKEN] \-H 'Content-Type: application/json' \-d '{"scrapeMode": "overview","searchMode": "byBrand","brands": ["rolex", "omega"],"maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Pick your scrape depth
- Overview — fast price + spec scan straight from search cards (~60–120 listings/fetch).
- Detail — the full per-watch spec sheet (reference, movement, case, dial, bracelet, condition, box & papers, seller…).
Step 2: Choose how to search
- By brand — pick brand slugs like
rolex,omega,tudor,breitling,cartier. - By query — free-text search any model or keyword, e.g.
submariner,daytona,speedmaster. - By search URL — paste one or more Chrono24 search/brand URLs; every filter in the URL is kept and pagination is automatic.
Step 3: Filter, set Max results & run
Narrow a brand or query search by price (EUR), or carry any filter you like inside a pasted search URL, then download as JSON / CSV / Excel.
That's it! In seconds you'll have:
- Clean watch data (price in EUR and USD, brand, year, condition, availability)
- Box & papers as true/false flags, ready to filter
- Numeric case diameter in mm, separate bracelet material & color
- Full spec sheet in Detail (reference, movement, dial, scope of delivery, seller, gallery)
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| scrapeMode | string | No | overview (fast scan) or detail (full spec sheet). Default overview |
| searchMode | string | No | byBrand, byQuery, or bySearchUrl. Default byBrand |
| maxResults | integer | No | Max watches to return (FREE tier caps at 25). Default 100 |
| brands | array | By brand | Brand slugs, e.g. ["rolex","omega","tudor"] |
| query | string | By query | Free-text search, e.g. submariner |
| searchUrls | array | By search URL | One or more Chrono24 search/brand URLs (paged & merged) |
| priceFrom | integer | No | Minimum price in EUR (by brand / by query) |
| priceTo | integer | No | Maximum price in EUR (by brand / by query) |
ℹ️ A few brand slugs differ from the obvious form and may not resolve directly (e.g.
patek-philippe,audemars-piguet). For those, use By query (searchpatek philippe) or By search URL (paste the brand page link). By search URL ignorespriceFrom/priceTo— the URL's own filters win.
Example (Detail, by brand):
{"scrapeMode": "detail","searchMode": "byBrand","brands": ["rolex"],"priceFrom": 5000,"priceTo": 25000,"maxResults": 100}
Example (by search URL):
{"scrapeMode": "detail","searchMode": "bySearchUrl","searchUrls": ["https://www.chrono24.de/omega/index.htm"],"maxResults": 50}
📊 Overview vs Detail — what you get
| Field | ⚡ Overview | 🔍 Detail |
|---|---|---|
| Brand, title | ✅ | ✅ |
| Price (EUR & USD), currency | ✅ | ✅ |
| Availability | ✅ | ✅ |
| Image gallery + thumbnail | ✅ | ✅ |
Live FX rate (fx_eur_usd, fx_source) | ✅ | ✅ |
Self-documenting metadata | ✅ | ✅ |
| Model | — | ✅ |
| Reference number, listing code | — | ✅ |
| Movement | — | ✅ |
| Case material, case diameter (mm) | — | ✅ |
| Dial | — | ✅ |
| Bracelet material & color | — | ✅ |
| Water resistance | — | ✅ |
| Year, condition | — | ✅ |
| Scope of delivery + box & papers booleans | — | ✅ |
| Gender | — | ✅ |
| Seller type, location, shipping cost | — | ✅ |
| Full description | — | ✅ |
Detail is the deep mode — everything in the per-watch spec sheet is read straight from the listing page, so you get the reference number, movement, case, dial, bracelet and box/papers that the fast Overview scan can't see.
📤 Output
Results are saved to the Apify dataset. Detail rows carry the full spec sheet including:
| Field | Type | Description |
|---|---|---|
| id | string | Chrono24 listing ID |
| url | string | Canonical listing URL |
| brand | string | Watch brand (e.g. Rolex, Omega) |
| model | string | Model name (Detail) |
| reference_number | string | Manufacturer reference number (Detail) |
| listing_code | string | Chrono24 listing code (Detail) |
| title | string | Listing title |
| description | string | Full listing description (Detail) |
| price | integer | Listed price in EUR |
| price_usd | integer | Price converted to USD |
| currency | string | Listed currency (EUR) |
| price_on_request | boolean | true when the seller lists "price on request" |
| price_negotiable | boolean | true when the seller is open to offers (Detail) |
| movement | string | Movement type, e.g. Automatic (Detail) |
| case_material | string | Case material, e.g. Steel, Gold (Detail) |
| case_diameter_mm | number | Case diameter in millimetres (Detail) |
| dial | string | Dial color / description (Detail) |
| bracelet_material | string | Bracelet/strap material (Detail) |
| bracelet_color | string | Bracelet/strap color (Detail) |
| water_resistance | string | Water resistance rating (Detail) |
| year | integer | Year of production (Detail) |
| condition | string | Condition value, e.g. New, Used (Detail) |
| scope_of_delivery | string | What's included with the watch (Detail) |
| has_box | boolean | Original box included — true/false (Detail) |
| has_papers | boolean | Papers/certificate included — true/false (Detail) |
| gender | string | Men's / Women's / Unisex (Detail) |
| availability | string | Listing availability status |
| location | string | Seller location (Detail) |
| seller_type | string | dealer or private seller (Detail) |
| shipping_cost | number | Shipping cost in EUR (Detail) |
| images | array | Full gallery of listing image URLs |
| thumbnail | string | First gallery image, for quick previews |
| fx_eur_usd | number | EUR→USD rate used this run |
| fx_source | string | Source of the FX rate |
| metadata | object | The exact search settings that produced the row |
Example (Detail):
{"id": "12345678","url": "https://www.chrono24.de/rolex/...--id12345678.htm","brand": "Rolex","model": "Submariner Date","reference_number": "126610LN","listing_code": "ABCDEF","title": "Rolex Submariner Date 126610LN","price": 13500,"price_usd": 14580,"currency": "EUR","movement": "Automatic","case_material": "Steel","case_diameter_mm": 41,"dial": "Black","bracelet_material": "Steel","bracelet_color": "Steel","water_resistance": "30 ATM","year": 2021,"condition": "Used","scope_of_delivery": "Original box, original papers","has_box": true,"has_papers": true,"gender": "Men's watch/Unisex","availability": "InStock","location": "Germany","seller_type": "dealer","shipping_cost": 0,"thumbnail": "https://img.chrono24.com/.../0.jpg","images": ["https://img.chrono24.com/.../0.jpg"],"fx_eur_usd": 1.08,"fx_source": "ecb"}
💼 Use Cases & Examples
Watch Dealer Pricing & Comps
Pull every live listing for a reference and price your own stock against the market.
Input: By brand or by search URL + price filters Output: Clean rows with price (EUR & USD), condition, box & papers, year Use: Set asking prices, build comp sets, spot under-priced inventory
Arbitrage & Flipping Signals
Sweep a model across the market and surface the cheapest clean examples.
Input: By query (e.g. daytona) + price range
Output: Price, condition, box/papers booleans, seller type
Use: Find buy-low / sell-high opportunities without opening each listing
Market Analysis & Trend Research
Track asking prices, condition mix and supply across brands over time.
Input: By brand + Max results, run on a schedule Output: Normalized price, condition, availability per listing Use: Market reports, price-trend dashboards, supply tracking
Building a Watch Price Database
Feed a clean, normalized watch dataset into your own tools.
Input: Any mode + Max results Output: Structured JSON/CSV with numeric diameter, dual currency, booleans Use: Internal price databases, CRMs, valuation models
Investment Sourcing
Screen blue-chip references by year, condition and full-set status.
Input: Detail mode + by brand/query + price filters Output: Full spec sheets with year, condition, box & papers Use: Shortlist investment-grade pieces with box & papers
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/chrono24-watch-scraper').call({scrapeMode: 'detail',searchMode: 'byBrand',brands: ['rolex'],priceFrom: 5000,maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} watches`);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/chrono24-watch-scraper').call(run_input={'scrapeMode': 'overview','searchMode': 'byQuery','query': 'submariner','maxResults': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(f"Found {len(items)} watches")
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~chrono24-watch-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"scrapeMode": "detail","searchMode": "bySearchUrl","searchUrls": ["https://www.chrono24.de/rolex/index.htm"],"maxResults": 30}'
Automation Tool Workflows (n8n, Zapier, Make, etc.)
- Trigger: Manual / schedule / webhook
- HTTP Request: Call this actor's API
- Process: Filter and analyze watch listings
- Action: Save to a database, send price alerts, or build reports
📊 Performance & Pricing
View current pricing in the Apify Console.
- Pay-per-result: you're charged per watch returned — Overview rows (fast scan) are priced for high-volume market sweeps; Detail rows carry the full spec sheet.
- FREE tier: up to 25 watches per run — full feature access, no credit card.
- PAID tier: unlimited watches per run.
💡 Tip: Start with Overview to size a market cheaply, then re-run the interesting references in Detail for the full spec sheet, box & papers, and seller info.
❓ Frequently Asked Questions
Q: Is this a Chrono24 API? A: It's the practical equivalent — a hosted Chrono24 scraper with a REST API. Call it from any language or no-code tool and get back clean, structured luxury watch data as JSON or CSV, no API key from Chrono24 required.
Q: What's the difference between Overview and Detail? A: Overview is a fast scan of search cards (~60–120 listings/fetch) with brand, title, price (EUR & USD), availability and images. Detail visits each listing page for the full spec sheet — reference number, movement, case material & diameter, dial, bracelet, year, condition, box & papers, gender and seller.
Q: Which brands are covered? A: Every brand on Chrono24 — Rolex, Omega, Patek Philippe, Audemars Piguet, Cartier, Tudor, Breitling, TAG Heuer and more. A few brand slugs differ (e.g. Patek Philippe, Audemars Piguet) — for those, use By query or paste the brand page URL under By search URL.
Q: What currency are prices in? A: Listings are priced in EUR; every row also includes a USD conversion from one live FX rate per run, so you can compare prices internationally.
Q: Are box & papers really separate fields?
A: Yes — has_box and has_papers are discrete true/false flags, so you can filter for full-set watches instantly instead of parsing free text.
Q: Can I reuse a search I built on the site? A: Yes — paste the Chrono24 search or brand URL under By search URL and every filter in it (condition, case material, dial color, year, seller type, sort order…) is preserved.
Q: Can I export to Excel? A: Yes — download as CSV/Excel, or pull JSON via the REST API.
Q: How many watches can I get? A: FREE tier: up to 25 per run. PAID tier: unlimited.
🐛 Troubleshooting
No results returned
- Check your brand slug — a few differ from the obvious form (e.g.
patek-philippe,audemars-piguet). Use By query or By search URL for those. - Broaden your price filter (
priceFrom/priceTo) - Confirm the pasted search URL actually returns listings on the site
Fewer fields than expected on a listing
- Most spec fields (reference, movement, case, dial, bracelet, box & papers, seller) are Detail-only — switch
scrapeModetodetail - Some spec rows (e.g. water resistance) only appear on watches that publish them
Price filter seems ignored
priceFrom/priceToapply to By brand and By query only. By search URL carries its own filters — bake the price range into the URL instead.
Price on request
- Some listings hide their price; those rows come back with
price_on_request: trueand no price.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data. They only extract what has been published publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read Apify's blog post on the legality of web scraping.
💬 Support
- 🐛 Found a bug? File an issue in the Apify Console Issues tab
- ⭐ Loving the tool? Leave a 5-star review — it helps us build more
- 📧 apify@sian-agency.online
- Check the SIÁN Agency Store for more marketplace & product price data
🛍️ You might also like
More marketplace & product price data from SIÁN Agency:
- Taobao Tmall Product Scraper — product data & prices from China's biggest marketplace
- 1688 Wholesale Scraper — wholesale pricing & supplier data
- Amazon ASIN Lookup — product details & pricing by ASIN
Built by SIÁN Agency | More Tools
🎯 Not sure which tier you need? Start with FREE — no credit card required. Upgrade when you're ready to scale!
Chrono24™ is a trademark of its respective owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Chrono24. Brand names (Rolex, Omega, Patek Philippe, Audemars Piguet and others) are trademarks of their respective owners and are referenced for identification only. Use this actor responsibly and in line with applicable terms and laws.