Chrono24 Scraper – Incremental ⌚ avatar

Chrono24 Scraper – Incremental ⌚

Pricing

from $1.40 / 1,000 results

Go to Apify Store
Chrono24 Scraper – Incremental ⌚

Chrono24 Scraper – Incremental ⌚

[⭐$2/1k] Scrape watch listings from Chrono24 with prices, images, shipping costs & seller details. 50+ Filters. Allows incremental scraping to save costs. Returns structured JSON/CSV for price tracking, market analysis & research.

Pricing

from $1.40 / 1,000 results

Rating

5.0

(2)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

2

Bookmarked

49

Total users

13

Monthly active users

17 days ago

Last modified

Share

Chrono24 Scraper: watch listings, prices, reference numbers and seller data

Chrono24 Scraper turns any Chrono24 search into a spreadsheet of watch listings. It is for dealers tracking the market, collectors hunting for a price, and anyone analyzing pre-owned luxury watches. Each row has the title, price in your currency, seller type and location, shipping cost, certification status and photos. Turn on details to add the reference number, year, case diameter, box and papers, description and the seller's name and rating.

  • Search like on Chrono24. Use a free-text query (brand, model or reference) or filter by brand, model, price range, new or used, condition, box and papers, certified, movement, case size, material, dial color, year, seller type and seller country.
  • Prices in 35 currencies. Chrono24 converts the prices, so they match what you see on the site in that currency.
  • Sort the way you need. Relevance, newest first, price low to high, price high to low, popularity or savings.
  • Optional details per watch. detail adds referenceNumber, yearOfProduction, caseDiameter, scopeOfDelivery, full-size photos and seller name, rating and review count.
  • Incremental runs. On a paid Apify plan, set a trackingId and the actor skips listings it already returned for that ID.
  • Pay per listing, no subscription. No Chrono24 account, API key or proxy setup. Export to JSON, CSV, Excel or Google Sheets.

Scope: This actor exports search results. To get a message when a new watch is listed or a price drops, use Chrono24 Alerts.

What can you do with Chrono24 Scraper?

GoalHow
Price a referenceSearch the reference number and compare price by location.countryCode, sellerType and detail.yearOfProduction.
Find the cheapest listingSet sortOrder to 1 (price low to high) and read price plus shippingCost.
Monitor new listingsSet sortOrder to 5 (newest first) and schedule the run, with a trackingId to skip known listings.
Compare dealers and private sellersFilter by sellerType or read detail.seller.rating and detail.seller.reviewCount.
Build a market datasetCollect up to 10,000 listings per run for a brand or style and load them into your BI tool.
Find complete setsFilter specials for box and papers, then check detail.scopeOfDelivery.

How it compares

What you needChrono24 ScraperBrowser-based scrapersManual copy-paste
Speed and costPlain API requests, no browserSlower, more computeHours per search
FiltersBrand, model, price, condition, movement, materials and moreOften query and price onlyWhatever you click
Currency35 currencies, converted by Chrono24Usually the site's defaultWhatever the site shows
Reference and seller dataOptional detail objectVariesOpen every listing
PricePay per listingPay per listing or per hourYour time

Quick start

  1. Click Try for free and sign in to Apify.
  2. Enter a Search query, for example Rolex Daytona.
  3. Keep Max listings at 10 for a first run.
  4. Click Start. When the run finishes, open the Output tab and export the data.
{
"searchQuery": "Omega Seamaster 300",
"maxResults": 60,
"currency": "EUR",
"watchTypes": "U",
"priceTo": 6000,
"sortOrder": "1",
"enrichDetails": true
}

Track Chrono24 prices over time with scheduled runs

Most of the value comes from running the same search again and comparing. Apify can run the actor for you on a schedule and send the results wherever you need them.

1. Save your input as a task

Open the actor, set your options, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
Price tracking on a referenceDaily0 6 * * *
Catch new listings quicklyEvery 6 hours0 */6 * * *
Market snapshotsWeekly (Monday)0 6 * * 1
Hot referencesHourly0 * * * *

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

Every row has listingId, price, currency and listingStatus, so runs are easy to join:

  • Price changes: price per listingId between runs.
  • New listings: listingIds that were not in the previous run.
  • Sold or removed: listingIds that disappear, or whose listingStatus changes.
  • Dealer vs private: average price by sellerType over time.
  • Reference trends: detail.referenceNumber and detail.yearOfProduction to follow a specific model (with enrichDetails on).

Input reference

FieldTypeDefaultEffect
searchQueryString"Rolex Daytona"Free-text search: brand, model, reference or keywords.
maxResultsInteger10Maximum listings, 1 to 10,000. Fetched 30 per request. The free Apify plan is capped at 10.
enrichDetailsBooleanfalseAdds the detail object. One extra request per listing, so runs are slower.
currencyString"USD"One of 35 currencies, for output prices and the price filters.
sortOrderString"5""0" relevance, "1" price low to high, "5" newest, "11" price high to low, "15" popularity, "42" savings.
priceFrom / priceToIntegerEmptyPrice range in currency.
watchTypesStringBoth"U" used only, "N" new only.
conditionStringAllNew, Like new and unworn, Very good, Good, Fair or Incomplete.
specialsArrayEmptyBox and papers ("102"), box only ("103"), papers only ("104").
certifiedBooleanfalseOnly listings with Chrono24 certification.
manufacturerIds, modelsStringEmptyComma-separated Chrono24 brand and model IDs, for example 221 for Rolex.
catalogCollectionId, catalogModelIdStringEmptyNarrow to a catalog collection or model variant.
movementTypes, gender, waterproofStringAllMovement, intended gender and water resistance.
caseDiameter, yearStringEmptyA single value (40) or a range (36,42).
functions, styles, caseMaterialsArrayEmptyComplications, watch styles and case materials.
dialColor, braceletMaterial, braceletColorArrayEmptyDial and bracelet filters.
sellerType, stockInfo, countryIdsStringAllDealer, private seller or Chrono24 Direct; stock status; seller country codes such as CH,DE.
trackingIdStringEmptyAdded to every row. On a paid plan, listings already returned for this ID are skipped.

In Apify Console, filters are drop-downs, so you don't need the IDs. To find a brand or model ID, run a search with enrichDetails on and read detail.manufacturerId.

Output

Results go to the run's default dataset. Export as JSON, CSV, Excel, XML or HTML.

A real row with enrichDetails on:

{
"listingId": 46420748,
"title": "Omega Constellation",
"subtitle": "Vintage Flat Dial Good Condition Serviced 04-2026.",
"price": 1367,
"currency": "USD",
"listingUrl": "https://www.chrono24.com/omega/omega-constellation-vintage-flat-dial-good-condition-serviced-04-2026--id46420748.htm",
"mainImage": "https://img.chrono24.com/images/uhren/46420748-9lfecvxgqj2igapbqey4llmo-Square210.jpg",
"imageUrls": ["https://img.chrono24.com/images/uhren/46420748-9lfecvxgqj2igapbqey4llmo-Square210.jpg"],
"location": { "city": "Antony", "countryCode": "FR", "countryName": "France" },
"sellerType": "Dealer",
"certifiedStatus": false,
"listingStatus": "Available",
"watchStockInfo": "InStock",
"badge": null,
"shippingCost": { "amount": 59, "currency": "USD" },
"detail": {
"referenceNumber": "168.025",
"manufacturer": "Omega",
"model": "Constellation",
"subModel": null,
"conditionNew": false,
"yearOfProduction": "Unknown",
"caseDiameter": "34 mm",
"seller": { "name": "MS For Watches", "rating": null, "reviewCount": null }
}
}

The detail object also has manufacturerId, condition, scopeOfDelivery, description (HTML, cut at 5,000 characters), availability, sold, reserved, price, fullImageUrls and detailUrl. Details are shortened above.

Notes on fields

  • price is null for "price on request" listings. shippingCost is null when Chrono24 shows none.
  • certifiedStatus is true when Chrono24 certification is included.
  • sellerType is Dealer, PrivateSeller or C24Direct.
  • yearOfProduction can be the text "Unknown".
  • Thumbnails in imageUrls are small; detail.fullImageUrls has larger ones.
  • trackingId appears on each row (empty when not set).
  • If a detail request fails, the row is still saved without detail.

FAQ

How many listings can I get?

Up to 10,000 per run, set with maxResults. On the free Apify plan, runs are capped at 10 listings. Chrono24 can have fewer matches than your limit. The log shows the total it reports.

How fast is it?

Search results are fetched 30 at a time. Details add one request per listing plus a short pause, so a run with details takes noticeably longer.

Why did I get few or no results?

Check the spelling of the query and loosen filters. Narrow combinations of brand, price, year and country can have no matches.

What does trackingId do?

On a paid plan, the actor remembers the listing IDs it returned for each trackingId and skips them next time. This is useful for scheduled runs that should only return new listings. It does not detect price changes. For that, and for notifications, use Chrono24 Alerts.

Do I need proxies, a Chrono24 account or an API key?

No. The actor doesn't log in and doesn't use your account.

The actor collects publicly visible listing data. Seller names are business names or logins. You are responsible for how you use the data, including Chrono24's terms and laws such as GDPR.

Can I get notified when a watch is listed or its price drops?

Yes, with Chrono24 Alerts, which sends Telegram, Discord or webhook messages.

Cost

This actor uses pay-per-event pricing, with no subscription. You pay per listing saved, plus a small start fee per run. The price per listing depends on your Apify plan:

Apify planPer listingPer 1,000 listings
Free$0.0015$1.50
Starter (Bronze)$0.00145$1.45
Scale (Silver) and above$0.0014$1.40

Example runs on the free plan: 100 listings cost about $0.15 and 1,000 listings about $1.50. The Pricing tab lists all events, including the start fee and an "Additional detail" event, and always shows the current prices. Set a maximum cost per run to cap spending.

  • Chrono24 Alerts: Telegram, Discord or webhook alerts for new watches and price drops.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.

This actor is not affiliated with or endorsed by Chrono24 GmbH. "Chrono24" is a trademark of Chrono24 GmbH.