Chrono24 Watch Listing Scraper avatar

Chrono24 Watch Listing Scraper

Pricing

from $1.33 / 1,000 results

Go to Apify Store
Chrono24 Watch Listing Scraper

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

Malek Oweis

Maintained by Community

Actor 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

FieldMeaning
title, brand, modelWatch identity
referenceNumberManufacturer reference / model number
yearYear of production (when the seller states it)
price, currencyAsking price and currency
conditionNew · Used · Refurbished
availability, inStockListing status
movementAutomatic · Manual winding · Quartz
caseMaterial, caseDiameterMmCase material and diameter in mm
crystal, strapMaterialCrystal and strap/bracelet material
jewels, powerReserveHoursCaliber details, when Chrono24 exposes them
gendermens · womens · unisex
sellerCountryISO country code of the seller
hasBox, hasPapers, boxAndPapersParsed from the listing text — the single biggest price driver on the used market
imageUrl, imageCountFirst image and how many photos the listing has
descriptionThe seller's full spec/description text
listingId, urlChrono24 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 — any chrono24.com page 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.
  • scrapeDetailstrue (default): open every listing for the full record. false: faster and cheaper, but only title, price, currency, imageUrl and inStock from 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, condition and price to spot listings worth a closer look
  • Market monitoring — schedule it weekly on a brand or model and diff priceAvg and 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.