Chrono24 Watch Scraper icon

E-commerce

Chrono24 Watch Scraper

Scrape Chrono24 luxury watch listings: brand, model, reference number, price, condition, year, and seller location. Residential-proxy powered — we handle the blocks.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Chrono24 brand and model index pages, plus (optionally) each listing's detail page — one row per watch listing, with brand, model, reference number, price, condition, year, seller location, and a canonical listing URL.

What we handle for you

  • Discover listings by brand slug (rolex, omega, patek-philippe, …)
  • Optional detail-page enrichment for reference number, condition,
  • 🌐 We rotate residential proxies through Apify Proxy on every block —
  • 🔁 We retry with exponential backoff and rotate browser fingerprints
  • 🧊 Clean, Pydantic-validated rows with stable ids and ISO-8601

Use cases

  • Watch dealers and appraisers tracking active listing pools for a
  • Insurers building resale/replacement-value comparables.
  • Market researchers monitoring pricing trends across watch brands.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
brands array no Chrono24 brand URL slugs, e.g. "rolex", "omega", "patek-philippe". At least one of Brands / Model URLs is required.
modelUrls array no Specific Chrono24 model taxonomy pages to scope discovery further than a whole brand, e.g. https://www.chrono24.com/rolex/datejust--mod123.htm.
maxResultsPerTarget integer no Cap on rows collected per brand or model URL (one page = 120; cap of 2400 = 20 pages).
enrichDetails boolean no Fetch each listing's detail page for reference number, condition, year of production, and seller location. Off = cheaper, index-page fields only.
proxyCountryCode string no ISO-3166 alpha-2 pinned to the Apify proxy session, e.g. US.
runTimeoutSeconds integer no Wall-clock budget; the run stops discovering new targets past this and finishes in-flight work.
{
  "brands": [
    "rolex"
  ],
  "maxResultsPerTarget": 120,
  "enrichDetails": true,
  "proxyCountryCode": "US",
  "runTimeoutSeconds": 1200,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

idbrandmodel_namereference_numberpricecurrencyconditionyear_of_productionseller_countryseller_cityimage_urllisting_urlsource_targetscraped_at

{
  "id": "47176512",
  "brand": "rolex",
  "model_name": "Rolex Datejust Datejust Factory Grey Tapestry Dial Steel 36mm Jubilee 16234",
  "reference_number": "16234",
  "price": 6999.0,
  "currency": "USD",
  "condition": "Very good",
  "year_of_production": 1990,
  "seller_country": "United States",
  "seller_city": "New York",
  "image_url": "https://cdn2.chrono24.com/images/uhren/47176512-abc123.jpg",
  "listing_url": "https://www.chrono24.com/rolex/datejust--id47176512.htm",
  "source_target": "rolex",
  "scraped_at": "2026-08-10T14:32:07.512381+00:00"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result scraped$0.0025Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Free-text search on Chrono24 is not a usable data source (client-rendered);
  • Only the .com English/US storefront is covered in this version.
  • No price-history or sold-listing archives — active listings only.
  • No seller-profile enrichment (ratings, response time, inventory count).

FAQ

Can I scrape a specific model instead of a whole brand?
Yes — pass a Chrono24 model taxonomy URL (--mod<N>.htm) in modelUrls.
Why is a field `null`?
Enrichment fields (reference_number, condition, year_of_production, seller_country, seller_city) are only populated when enrichDetails is true, and are best-effort per listing — one unparseable detail page never blocks the rest of your run.
Do I need my own proxy?
No — Apify Proxy (residential) is wired in by default.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run