Chrono24 Scraper & Opportunity Notification
Pricing
from $0.02 / 1,000 results
Chrono24 Scraper & Opportunity Notification
Scrape watch listings from Chrono24 with price, brand, location. Ideal for dealers, and collectors tracking the global luxury watch market. Supports filters all chrono24 filters. Export to JSON, CSV, or Excel. It send notification mail whit direct link to watch when the price is interesting for you!
Pricing
from $0.02 / 1,000 results
Rating
3.8
(3)
Developer
Fabio Borsotti
Actor stats
1
Bookmarked
4
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Actor Description
This Apify Actor scrapes listing result pages from chrono24. It use a full chrono24 url with your filter applied, it can optionally send an email notification with lots whose price is less than the configured maxPrice threshold when notifications are enabled. Scraping list is hardcoded to max 120 object to avoid Chrono24 bot detector.
Core Functionality
The Actor performs the following steps:
- Reads a Chrono24 result URL from the input url with your filter.
- Downloads each result page through Scrape.do, using retries and rotating geo codes to improve reliability.
- Extracts listing cards from structured data and complementary HTML blocks, including
listing_id,title,price,currency,url,image_url,seller_country,seller_shipping,seller_type, andseller_desc. - Saves all extracted rows to the Apify dataset.
- Optionally builds an email report for the lots considered interesting by the actor logic, using the original start URL as the filter reference inside the email body.
Input Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| url | String | Full Chrono24 listing URL with applied filters. The actor accepts either field and uses it as the starting result page. | https://www.chrono24.it/search/index.htm?dosearch=true&query=cocktail+presage |
| maxItems | Integer | Maximum number of listings to extract across paginated pages. The actor caps the value at 120. | 50 |
| enableNotification | Boolean | Enables email notification logic when set to true. | true |
| maxPrice | Number | Price threshold used by the custom notification logic to build the list of interesting lots. | 250 |
| sendMailTo | String | Recipient email address for the Resend notification. | user@example.com |
Extracted Data
Each dataset item represents a single listing extracted from the Chrono24 result page. The actor currently collects the following fields.
- listing_index: Position of the listing inside the parsed result page.
- listing_id: Chrono24 listing identifier.
- title: Listing title.
- price: Current listing price as shown in the page structured data.
- currency: Price currency
- availability: Availability value from the structured data offer.
- url: Direct URL to the Chrono24 listing.
- image_url: Listing image URL.
- seller_country: Seller location country.
- seller_shipping: Shipping information shown in the listing card.
- seller_type: Seller type badge
- seller_desc: Seller description text
Notification Logic
If notification flow is enabled in your run, the actor can build a dedicated list of interesting lots and send it by email using Resend. The current actor code includes an email function designed to send an HTML email containing the item title, image, seller country, seller shipping, seller type, seller description, price, currency, and the original input URL used as the filter reference.
Technical Notes
- Networking: HTML pages are fetched through Scrape.do with retry handling and randomized geo codes. To avoid banning we limited max item returned to 120.
- Parsing: Listing data is extracted from JSON-LD
AggregateOfferdata and enriched with extra seller information from the HTML card markup. - Dataset output: The actor pushes the final extracted rows to the Apify dataset at the end of the run. Also without notification logic enable all item are returned. Actor as at common scraper.
Example Output
[{"listing_index": 1,"listing_id": "45242962","title": "Seiko Presage Cocktail Seiko SRPJ17J1 Full Set + zweites Originalband","price": "360","currency": "EUR","availability": "http://schema.org/InStock","url": "https://www.chrono24.it/seiko/presage-cocktail--seiko--id45242962.htm","image_url": "https://img.chrono24.com/images/uhren/45242962-uf3tcpckr93p6wmf8xkdx0bc-ExtraLarge.jpg","seller_country": "Germania","seller_shipping": "Spese di spedizione escluse","seller_type": "Venditore privato","seller_desc": "Questo rivenditore privato viene da Germania."},{"listing_index": 2,"listing_id": "41310993","title": "Seiko SARY123/SRPB41J1 Mechanical Presage Cocktail Blue Moon Watch 特定","price": "238","currency": "EUR","availability": "http://schema.org/InStock","url": "https://www.chrono24.it/seiko/seiko-seiko-sary123srpb41j1-mechanical-presage-cocktail-blue-moon-watch----id41310993.htm","image_url": "https://img.chrono24.com/images/uhren/41310993-8hy3l340138utvkn96wk6oly-ExtraLarge.jpg","seller_country": "Giappone","seller_shipping": "+ 27 € di spese di spedizione","seller_type": "Professional Seller","seller_desc": "Questo venditore è di Gunma, Giappone."}]
API clients
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: '<YOUR_API_TOKEN>',});const input = {url: 'https://www.chrono24.it/search/index.htm?dosearch=true&query=cocktail+presage',maxItems: 10,enableNotification: true,maxPrice: 250,notificationEmail: 'user@example.com',};const run = await client.actor('TZWfWhjtgf9lh8Fts').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('<YOUR_API_TOKEN>')run_input = {'url': 'https://www.chrono24.it/search/index.htm?dosearch=true&query=cocktail+presage','maxItems': 10,'enableNotification': True,'maxPrice': 250,'notificationEmail': 'user@example.com',}run = client.actor('TZWfWhjtgf9lh8Fts').call(run_input=run_input)for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
API_TOKEN=<YOUR_API_TOKEN>cat > input.json <<'EOF2'{"url": "https://www.chrono24.it/search/index.htm?dosearch=true&query=cocktail+presage","maxItems": 10,"enableNotification": true,"maxPrice": 250,"notificationEmail": "user@example.com"}EOF2curl "https://api.apify.com/v2/acts/TZWfWhjtgf9lh8Fts/runs?token=$API_TOKEN" \-X POST \-d @input.json \-H 'Content-Type: application/json'