Chrono24 Luxury Watch Scraper avatar

Chrono24 Luxury Watch Scraper

Pricing

from $2.50 / 1,000 overview listings

Go to Apify Store
Chrono24 Luxury Watch Scraper

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Ü

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Chrono24 Scraper & API — Luxury Watch Data (Rolex, Omega, Patek) ⌚

SIÁN Agency Store Taobao Tmall Product Scraper 1688 Wholesale Scraper Amazon ASIN Lookup

🎉 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_box and has_papers are 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_material and bracelet_color, thumbnail split 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_papers flags, 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 metadata object 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…).
  • 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

FieldTypeRequiredDescription
scrapeModestringNooverview (fast scan) or detail (full spec sheet). Default overview
searchModestringNobyBrand, byQuery, or bySearchUrl. Default byBrand
maxResultsintegerNoMax watches to return (FREE tier caps at 25). Default 100
brandsarrayBy brandBrand slugs, e.g. ["rolex","omega","tudor"]
querystringBy queryFree-text search, e.g. submariner
searchUrlsarrayBy search URLOne or more Chrono24 search/brand URLs (paged & merged)
priceFromintegerNoMinimum price in EUR (by brand / by query)
priceTointegerNoMaximum 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 (search patek philippe) or By search URL (paste the brand page link). By search URL ignores priceFrom/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:

FieldTypeDescription
idstringChrono24 listing ID
urlstringCanonical listing URL
brandstringWatch brand (e.g. Rolex, Omega)
modelstringModel name (Detail)
reference_numberstringManufacturer reference number (Detail)
listing_codestringChrono24 listing code (Detail)
titlestringListing title
descriptionstringFull listing description (Detail)
priceintegerListed price in EUR
price_usdintegerPrice converted to USD
currencystringListed currency (EUR)
price_on_requestbooleantrue when the seller lists "price on request"
price_negotiablebooleantrue when the seller is open to offers (Detail)
movementstringMovement type, e.g. Automatic (Detail)
case_materialstringCase material, e.g. Steel, Gold (Detail)
case_diameter_mmnumberCase diameter in millimetres (Detail)
dialstringDial color / description (Detail)
bracelet_materialstringBracelet/strap material (Detail)
bracelet_colorstringBracelet/strap color (Detail)
water_resistancestringWater resistance rating (Detail)
yearintegerYear of production (Detail)
conditionstringCondition value, e.g. New, Used (Detail)
scope_of_deliverystringWhat's included with the watch (Detail)
has_boxbooleanOriginal box included — true/false (Detail)
has_papersbooleanPapers/certificate included — true/false (Detail)
genderstringMen's / Women's / Unisex (Detail)
availabilitystringListing availability status
locationstringSeller location (Detail)
seller_typestringdealer or private seller (Detail)
shipping_costnumberShipping cost in EUR (Detail)
imagesarrayFull gallery of listing image URLs
thumbnailstringFirst gallery image, for quick previews
fx_eur_usdnumberEUR→USD rate used this run
fx_sourcestringSource of the FX rate
metadataobjectThe 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 ApifyClient
client = 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().items
print(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.)

  1. Trigger: Manual / schedule / webhook
  2. HTTP Request: Call this actor's API
  3. Process: Filter and analyze watch listings
  4. 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 scrapeMode to detail
  • Some spec rows (e.g. water resistance) only appear on watches that publish them

Price filter seems ignored

  • priceFrom / priceTo apply 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: true and no price.

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

Telegram 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:


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.