Chrono24 Watch Scraper: Prices & Dealer Inventory
Pricing
from $0.95 / 1,000 watch listings
Chrono24 Watch Scraper: Prices & Dealer Inventory
Scrape public Chrono24 watch prices, exact references, condition, box and papers, shipping and dealer inventory. Export clean JSON and CSV snapshots.
Pricing
from $0.95 / 1,000 watch listings
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Chrono24 Scraper — Watch Prices, References & Dealer Inventory
Build a structured snapshot of public Chrono24 watch listings for market research, competitor price tracking and dealer inventory analysis. Start with a keyword search or a public Chrono24 search, reference, dealer inventory or watch listing URL.
Each result represents one watch listing. Prices are asking prices, not confirmed sale prices. Use exact reference numbers to distinguish similar Rolex, Omega, Tudor and other watch models.
Who it helps
- Watch dealers comparing competitors by exact reference, condition and box/papers.
- Resale businesses checking asking prices and available dealer stock.
- Dataset developers exporting source-linked watch market snapshots.
Quick start
- Open the Actor in Apify Console.
- Enter a search or a Chrono24 URL and set your result limit.
- Run the Actor and download the dataset as JSON, CSV or Excel.
The default limit is one result for a quick preview. Proxy selection and retries use automatic defaults.
{"searchQueries": ["Rolex Submariner 126610LN"],"maxItems": 10,"referenceNumbers": ["126610LN"]}
For a reference page:
{"startUrls": ["https://www.chrono24.com/rolex/ref-126610ln.htm"],"maxItems": 100,"referenceNumbers": ["126610LN"]}
For several searches, put each phrase in the searchQueries list. Search terms and URLs can be combined. Duplicate listing IDs are removed within a run.
Inputs
| Field | Purpose | Default |
|---|---|---|
searchQueries | Watch keywords or reference searches; up to 100 phrases | Default example searches Rolex Submariner |
startUrls | Public HTTPS Chrono24.com URLs; up to 100 | Empty |
maxItems | Maximum number of delivered listings, from 1 to 10,000 | 1 |
referenceNumbers | Optional exact reference allowlist | No filtering |
Enter at least one search or URL. Reference matching ignores spaces and letter case, but preserves punctuation and suffixes: 126610LN and 126610LV are different watches. A result without a reference is excluded when this filter is enabled. Reference numbers filter results; they do not create searches by themselves. Matching uses the seller’s public specifications, which can contain mistakes; the Actor does not authenticate watches.
Output
The default dataset contains flat JSON records. Unknown optional values are null; unavailable details are never invented. Each record includes a stable listing ID, source URL and UTC observation timestamp.
Example from a public listing observed during cloud validation:
{"listingId": "48544684","url": "https://www.chrono24.com/rolex/rolex-submariner-date--id48544684.htm","title": "Rolex Submariner Date 116610LN With Box Steel 40mm Black Dial Ceramic 40mm Watch","brand": "Rolex","model": "Submariner Date","referenceNumber": "116610LN","askingPrice": 12499,"currency": "USD","shippingPrice": 0,"shippingText": "Free, secure shipping within: United States of America","shippingDestination": "United States of America","condition": "Used (Very good)","yearOfProduction": "2020","hasOriginalBox": true,"hasOriginalPapers": true,"scopeOfDelivery": "Original box, original papers","sellerName": "WATCHBUDDY NYC","sellerType": "dealer","sellerCountry": "United States of America","sellerLocation": "United States of America, New York, NY","availability": "in_stock","scrapedAt": "2026-10-01T22:32:54.067574+00:00"}
Core fields are listingId, url, title, brand, model, referenceNumber, askingPrice, currency, condition, yearOfProduction, scopeOfDelivery, hasOriginalBox, hasOriginalPapers, sellerName, sellerType, sellerCountry, sellerLocation, shippingPrice, shippingText, shippingDestination, availability and scrapedAt.
askingPrice and shippingPrice are numeric amounts in the displayed currency. Shipping can depend on the destination, and taxes or import duties may be additional. Location labels can describe a region rather than a city. Missing box or papers information stays unknown, rather than being interpreted as absent.
A RUN_SUMMARY record in the run's key-value store reports delivered output, rejected records, exact-reference exclusions and whether coverage is complete, capped or partial. A capped run reached your requested limit. Partial coverage means an access failure, budget limit, interruption or rejected detail prevented full coverage. Narrow searches before applying exact-reference filtering; very broad filters can stop at a bounded inspection limit with fewer matches.
Snapshots and availability
Each run is an independent snapshot. You can compare listingId and scrapedAt across runs to build your own observation history. The Actor does not maintain cross-run tracking state or infer a sale from a disappeared listing. It does not provide transaction prices, confirmed sales or historical first-listed dates.
Availability reflects explicit public-page information where available. unknown means the page did not provide a reliable status. Prices and stock can change after collection. Listings without a readable numeric asking price, including price-on-request offers, are excluded. Search relevance is controlled by Chrono24; use the exact reference filter when comparing particular models.
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("thescrapelab/chrono24-watch-listings-scraper").call(run_input={"searchQueries": ["Rolex Submariner 126610LN"],"referenceNumbers": ["126610LN"],"maxItems": 100,})if run is None:raise RuntimeError("Actor did not return a run")for listing in client.dataset(run.default_dataset_id).iterate_items():print(listing)
Pricing and release status
Pay $0.95 per 1,000 delivered listings, plus $0.005 per run at the Actor's fixed 2 GB memory allocation. Apify bills startup per GB: two $0.0025 startup events total $0.005 at this allocation. Compute, storage and proxy usage are included. One validated, unique listing written to the default dataset is one listing event. Rejected pages and duplicates do not incur listing events. The startup event applies even when no listings are returned.
| Delivered listings | Total event price |
|---|---|
| 1 | $0.00595 |
| 10 | $0.01450 |
| 1,000 | $0.95500 |
Set a maximum run charge in Apify Console to control spending. A budget limit can stop collection before maxItems is reached. Prices shown in the run's pricing panel are authoritative.
A public-HTML cloud benchmark delivered 1,000 unique listings in approximately 22 minutes. Access conditions and filtering affect speed and yield; this is a measured example, not a throughput guarantee. The Actor currently remains private.
Limitations and support
Only public Chrono24.com pages are supported. No login, private seller data or transaction interaction is required. The Actor stops on persistent blocking and respects bounded retries for temporary errors. Result counts may be below the requested limit when the search is exhausted, reference filtering excludes results or page access fails.
This is an independent product and is not affiliated with Chrono24. Use the Actor's Issues tab to report a failed run, including the run URL and a small reproducible input.