Chrono24 Scraper — Watch Prices & Last Ask avatar

Chrono24 Scraper — Watch Prices & Last Ask

Pricing

from $1.50 / 1,000 watch listings

Go to Apify Store
Chrono24 Scraper — Watch Prices & Last Ask

Chrono24 Scraper — Watch Prices & Last Ask

Scrape Chrono24 search: listingId, title, last ask, currency, status (in stock, sold badge, or removed). Chrono24 watch prices for dealers — not a sold archive and not an invented hammer. Public HTML only. RESIDENTIAL DE.

Pricing

from $1.50 / 1,000 watch listings

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

chrono24 scraper for chrono24.com: live watch listings with listingId, title, brand, lastPrice (last ask) and status. Built for dealers who need chrono24 prices, not a fake sold archive.

Chrono24 does not publish a sold archive. WristSignal-class tools use Reddit for that gap. Public search is InStock ads with last ask. This Actor returns those listings on Try it. If you paste a listing URL, it reports a sold badge or removed. Last ask is not an invented hammer (priceKind=last_ask unless the page shows a real sold price).

Table of contents

What you get

Watch listing (last ask)

  • listingId, url (chrono24.com)
  • title, brand, model (from the listing title)
  • reference when that number appears in the title (many Chrono24 titles omit it)
  • status: active | sold | removed
  • lastPrice, soldPrice (only when a public sold price exists), priceKind (last_ask or sold_price), currency
  • firstSeenAt, lastSeenAt, sellerId, scrapedAt

This is chrono24 scraper / chrono24 prices output. It is not a Chrono24 sold archive.

How it works

StepAction
1Open chrono24.com search / model page for your keyword (e.g. Rolex Submariner).
2Read public JSON-LD offers (live InStock cards) and push last-ask rows when includeActive is on (default).
3Optional: check listingUrls / listingIds / watchItems.
4Open those listing pages. InStock = active. Sold badge or SoldOut JSON-LD = sold. Redirect to browse / gone = removed.

There is no public showSold=true filter (query params are ignored). Seller Price analysis is login-only — this Actor does not scrape that wall.

Input

FieldRequiredDefaultNotes
keywordOne of keyword / URL / IDsRolex SubmarinerBrand + model as on Chrono24
searchUrlOne of keyword / URL / IDs—Full search or model URL
listingUrlsOne of keyword / URL / IDs—Listing URLs a dealer would paste
listingIdsOne of keyword / URL / IDs—Numeric IDs of real listings — not probe dummies
watchItemsNo—Last-known cards (listingId, title, lastPrice, …)
maxItemsNo201–80
lookbackHoursNo168Keep IDs between scheduled runs
includeActiveNotrueOn = last-ask listings (Try it). Off = sold-badge / removed only
proxyConfigurationNoRESIDENTIAL + DEKeep DE (or your market) aligned

Output

One row per listing. A hard block pushes one row with error: true and a message that names RESIDENTIAL + DE.

{
"listingId": "12345678",
"url": "https://www.chrono24.com/rolex/rolex-submariner--id12345678.htm",
"title": "Rolex Submariner Date",
"brand": "Rolex",
"status": "active",
"lastPrice": 12500.0,
"soldPrice": null,
"priceKind": "last_ask",
"currency": "USD",
"scrapedAt": "2026-09-25T00:00:00Z"
}

priceKind=last_ask means the number is the last public asking price, not a Chrono24 hammer. soldPrice is filled only when the public page shows a sold price.

Example input

{
"keyword": "Rolex Submariner",
"maxItems": 15,
"includeActive": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Use cases

  • Grey-market dealers pricing a Rolex Submariner from chrono24 prices (last ask)
  • Catalog / lead lists from Chrono24 search
  • Closed-sale checks on listing URLs you already track (sold badge or removed)

Proxy

Chrono24 can challenge datacenter IPs. Default is Apify RESIDENTIAL, country DE. If you search a local chrono24.* market, set the proxy country to that market.

API quick start

apify call noahadler/chrono24-sold-comps --input '{
"keyword": "Rolex Submariner",
"maxItems": 15,
"includeActive": true
}'

FAQ

Why is there no sold archive?
Chrono24 does not publish one. This Actor returns last-ask listings. Sold/removed is only a status on a specific listing URL.

Is soldPrice the hammer?
Only if priceKind=sold_price (rare on public HTML). Otherwise use lastPrice.

Can I hide live listings?
Set includeActive to false. Then you only get sold-badge / removed rows (often empty on a first run).

Limitations

  • No public Chrono24 sold archive
  • Seller-only Price analysis / login wall is not scraped (honest error; no WAF rewrite loop)
  • Disappeared listing = removed (sold or withdrawn). sold only with a public sold badge / SoldOut JSON-LD
  • Do not invent hammer prices
  • Do not pass dummy listing IDs (1000, 10000) — Try it uses keyword search

Keywords

chrono24 scraper · chrono24 prices · chrono24 watches · rolex chrono24 · chrono24 last ask