# Chrono24 Watch Alerts (`epicscrapers/chrono24-alerts`) Actor

Get alerts for new watches on Chrono24 that match your filters. Receive notifications on Telegram, Discord, or via webhooks instantly!

- **URL**: https://apify.com/epicscrapers/chrono24-alerts.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Chrono24 Alerts — Get Pinged the Second a Watch Listing Matches ⭐

![Chrono24 Alerts Banner](https://i.imgur.com/wHHyigC.png")

Chrono24 Alerts is the same trusted Chrono24 scraping engine behind [Chrono24 Scraper](https://apify.com/epicscrapers/chrono24-scraper) — thousands of successful runs in the last 30 days with 100% success rate — with one addition that changes how you use it: **it tells you the moment something worth knowing shows up.**

No more opening the dataset after every run to see if anything changed. Set your filters, set your channel — **Telegram, Discord, or any webhook** — and let new listings, price drops, and restocks land directly in your phone, your server, or your own app.

---

### Why an alert-first scraper beats a plain scraper

A scraper on its own is only as useful as the amount of time you spend checking it. Pair it with a [scheduled run](https://docs.apify.com/platform/schedules) and it becomes a background process — but you're still the one opening the dataset to see if anything changed.

Chrono24 Alerts skips that step entirely:

- **You don't check the data. The data checks in with you.** New listing, price drop, or restock — you get a message, not a spreadsheet to review.
- **Speed is the whole point.** On a hot reference, the difference between the first buyer and the fifth is minutes. An alert firing the moment a listing appears is worth more than a perfect dataset you open an hour later.
- **Zero extra infrastructure.** No bot server to host, no polling script to maintain. Point it at a Telegram chat, a Discord channel, or a webhook URL, and Apify's scheduler does the rest.
- **Works exactly like the scraper you already trust** — same 50+ filters, same enriched detail mode, same real-time data straight from Chrono24. Alerts are additive, not a different product.

---

### How alerts work

You choose *what* to watch for and *where* the alert goes. Every run compares fresh results against what it saw last time (using your `trackingId`) and fires a notification only for what's actually new or changed — so you're not getting spammed with the same listing every run.

**Alert triggers:**
- **New listing detected** — a watch matching your filters appears for the first time
- **Price drop** — an existing listing's price falls below a threshold you set, or drops by a percentage
- **Back in stock** — a listing that was Sold or Reserved becomes Available again
- **Certified or box-and-papers match** — a listing appears that meets your accessory/certification criteria

**Delivery channels — pick one, two, or all three:**

| Channel | What you need | Good for |
|---|---|---|
| **Telegram** | A bot token and chat ID | Instant push notifications on your phone, works great for personal watchlists |
| **Discord** | A channel webhook URL | Team or community monitoring — post alerts straight into a shared server |
| **Generic Webhook** | Any HTTPS endpoint | Feed alerts into Slack, Zapier, Make, your own backend, or a dashboard |

Each alert message includes the watch title, price, currency, seller, listing URL, and a thumbnail — enough to act on immediately without needing to open the dataset first.

---

### Setting it up (about three minutes)

1. **Configure your filters** the same way you would on the base scraper — brand, model, reference number, price range, condition, seller country, whatever narrows it to what you actually care about.
2. **Add your alert channel(s):**
   - *Telegram:* create a bot via [@BotFather](https://t.me/BotFather), grab the token, and get your chat ID by messaging the bot once.
   - *Discord:* open your server's channel settings → Integrations → Webhooks → Create Webhook → copy the URL.
   - *Webhook:* drop in any endpoint that accepts a POST request with a JSON payload.
3. **Set your trigger conditions** — new listings only, a price threshold, a percentage drop, or all of the above.
4. **Run it once** to confirm your channels are receiving messages correctly.
5. **Save it as a Task and attach a Schedule** in Apify Console so it checks on its own timer — hourly for hot references, daily for broader monitoring.

📺 Haven't set up a schedule before? Apify's official walkthrough covers it in a couple of minutes: [Getting Started with Apify: Schedule your Actor](https://www.youtube.com/watch?v=1jI7WcVQmwM)
📖 Reference docs: [Apify Schedules](https://docs.apify.com/platform/schedules) · [Actor Tasks](https://docs.apify.com/platform/actors/running/tasks)

Once it's scheduled and your channel is wired up, the whole loop runs itself: check → compare → alert. You just show up when something's actually worth your attention.

---

### Everything the base scraper does, still included

- **50+ search filters** — brand, model, reference number, price range, case diameter, movement type, dial color, complications, condition, seller type/country, delivery contents, and more
- **Enriched detail mode** — reference numbers, production year, case diameter, descriptions, high-res images, seller ratings
- **35 currencies**, **5 sort modes**, up to **10,000 listings per run**
- **Incremental scraping** via `trackingId`, so alerts (and data) never repeat themselves
- **Zero browser overhead** — no login, no API key, no Playwright or headless Chrome
- **Live data every run** — same real-time accuracy as Chrono24 Scraper, no caching

If you don't need alerts on a given run, it behaves exactly like the standard scraper — full JSON output, exportable to CSV, Excel, Google Sheets, or your own pipeline.

---

### Real ways people use it

**Beat other buyers to hot references.** A Rolex Daytona, GMT-Master, or Nautilus at a good price won't stay listed long. Set a Telegram alert for your exact reference and condition, and you'll know before the listing gets buried under new search results.

**Dealer price-war monitoring.** Discord-alert your team the second a competitor drops below your floor price, so pricing decisions happen the same day, not the next time someone remembers to check the dataset.

**Restock watching for out-of-production models.** Some references vanish from the market for weeks. A "back in stock" alert means you don't have to keep re-searching manually.

**Feeding your own systems.** Point the webhook channel at your internal tooling — a Slack bot, an internal dashboard, a pricing algorithm — and let Chrono24 Alerts be the trigger that starts your own workflow.

**Personal watchlists, hands-off.** Set a Telegram alert for 10-15 references you're personally hunting, certified and complete-set only, and forget about it until your phone buzzes.

---

### Getting started

No Chrono24 account, password, or API key required on your end — same as the base scraper. Configure your search, pick your alert channel, and run.

```json
{
  "searchQuery": "Rolex Daytona 116500LN",
  "certified": true,
  "condition": "1302",
  "priceTo": 40000,
  "alertOnNewListing": true,
  "alertOnPriceDrop": true,
  "priceDropThreshold": 5,
  "telegramBotToken": "your-bot-token",
  "telegramChatId": "your-chat-id",
  "discordWebhookUrl": "",
  "webhookUrl": "",
  "trackingId": "daytona-alerts"
}
````

Leave any channel field blank to skip it — you can run Telegram-only, Discord-only, webhook-only, or all three at once. Full parameter descriptions, including every search filter inherited from the base scraper, are documented on the actor's Input tab in Apify Console.

***

### Frequently Asked Questions

**Do I need my own bot or server for Telegram/Discord?** For Telegram, yes — a free bot via BotFather, which takes under a minute. For Discord, you just need a webhook URL from your server settings — no bot required. Neither needs hosting; Apify sends the message directly when a run finds a match.

**Will I get duplicate alerts for the same listing?** No. Alerts are deduplicated against your `trackingId` history, so you're notified once per new or changed listing, not once per run.

**Can I use this without any alerts configured?** Yes — leave all channel fields blank and it behaves exactly like the standard Chrono24 Scraper, returning full JSON output with no messages sent.

**How fast are alerts after a listing appears?** As fast as your schedule's interval. If you run hourly, you'll know within the hour; if you run every 15 minutes, within 15 minutes. Chrono24 itself has no listing delay — data is live at the moment of the run.

**Can I combine alert triggers?** Yes — enable new-listing alerts, price-drop alerts, and restock alerts together, and route them all to the same channel or split them across different ones.

**What if I want the full dataset, not just alerts?** Every run still produces the standard dataset export (JSON, CSV, Excel, XML, RSS) alongside any alerts fired — you're not choosing between the two.

***

### ⚠️ Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Chrono24 GmbH, its parent company, or any of its subsidiaries, nor by Telegram or Discord. All trademarks are the property of their respective owners.

This actor accesses only publicly available watch listing data on `chrono24.com`. You are solely responsible for ensuring your use complies with the site's Terms of Service, Telegram's and Discord's platform policies, and applicable laws.

# Actor input Schema

## `searchQuery` (type: `string`):

Enter a free-text search term — brand name, model, reference number, or any keyword you'd type into Chrono24's search bar. <br><br>Examples: <code>Rolex Daytona</code>, <code>Omega Seamaster 300</code>, <code>126610LN</code>. <br><br>Leave blank to browse by filters alone.

## `maxResults` (type: `integer`):

How many listings to collect. Results are fetched 30 at a time (one page = one request). <br><br>Start low (10–50) to verify output before running a large job.

## `enrichDetails` (type: `boolean`):

When enabled, the scraper opens each listing's detail page to collect extended data: reference number, full seller profile, all images, and description text. <br><br>⚠️ This makes the run significantly slower and increases compute usage — one extra page request per listing. Enable only when you need the extra fields.

## `currency` (type: `string`):

Choose the currency for all listing prices in the output.

## `sortOrder` (type: `string`):

Choose how Chrono24 sorts results before scraping. <b>Newest first</b> is useful for monitoring new listings; <b>Relevance</b> is best for open-ended searches.

## `manufacturerIds` (type: `string`):

Enter one or more Chrono24 brand IDs, separated by commas. <br><br><b>Common IDs:</b><br>221 = Rolex<br>187 = Omega<br>43 = Cartier<br>32 = Breitling<br>115 = IWC<br>194 = Patek Philippe<br>18 = Audemars Piguet<br>245 = Tudor<br><br>To find other brand IDs, search Chrono24 and check the URL for <code>manufacturerId</code>.

## `models` (type: `string`):

Enter one or more Chrono24 model IDs, separated by commas. <br><br><b>How to find model IDs:</b> run a text search first (e.g. <i>Rolex Datejust 36</i>) with <b>Enrich Details</b> enabled, then check the <code>detail.modelId</code> field in the output.

## `catalogCollectionId` (type: `string`):

Filter by a Chrono24 catalog collection (e.g. <code>314</code> = Datejust collection). More specific than brand — use when you want all variants of a named collection.

## `catalogModelId` (type: `string`):

Filter by a specific catalog model variant. More granular than Collection ID. Find it in Chrono24's URL when browsing a specific model page.

## `priceFrom` (type: `integer`):

Minimum listing price in your chosen currency. Leave blank for no lower bound.

## `priceTo` (type: `integer`):

Maximum listing price in your chosen currency. Leave blank for no upper bound.

## `watchTypes` (type: `string`):

Include new watches, used watches, or both.

## `condition` (type: `string`):

Filter by the seller's stated condition grade — more granular than New/Used. For example, filter used watches to <i>Very good</i> or above. Leave blank to include all grades.

## `certified` (type: `boolean`):

Returns only listings covered by <a href='https://www.chrono24.com/info/buyer-protection.htm' target='_blank'>Chrono24 Certification</a> — authenticity is guaranteed and returns are accepted. Significantly reduces result count.

## `specials` (type: `array`):

Filter by what's included with the watch. Leave empty to include all listings regardless of box/papers.

## `movementTypes` (type: `string`):

Filter by movement type. Choose <i>Automatic</i> to exclude quartz; choose <i>Manual winding</i> for traditional hand-wound calibres.

## `gender` (type: `string`):

Filter by the watch's intended gender category as listed on Chrono24.

## `caseDiameter` (type: `string`):

Filter by case size in millimeters. Enter a single value like <code>40</code> or a range like <code>36,42</code> to set min and max.

## `year` (type: `string`):

Filter by production year. Enter a single year like <code>2020</code>, or a range like <code>2018,2023</code>.

## `waterproof` (type: `string`):

Filter by water resistance rating in ATM.

## `functions` (type: `array`):

Filter by watch complications. Select one or more. Leave empty to include all.

## `styles` (type: `array`):

Filter by style category — useful for broad searches like <i>Diving watches</i> or <i>Vintage watches</i> without needing a specific brand.

## `caseMaterials` (type: `array`):

Filter by the watch case material. Select one or more.

## `dialColor` (type: `array`):

Filter by dial color. Select one or more.

## `braceletMaterial` (type: `array`):

Filter by the bracelet or strap material. Select one or more.

## `braceletColor` (type: `array`):

Filter by bracelet or strap color. Select one or more.

## `sellerType` (type: `string`):

<i>Professional dealers</i> typically have more photos and return policies. <i>Private sellers</i> may offer lower prices. <i>Chrono24 Direct</i> ships from Chrono24's own warehouse.

## `stockInfo` (type: `string`):

Filter by stock status. Choose <i>In stock</i> for immediately available watches.

## `countryIds` (type: `string`):

Filter by seller location using two-letter ISO country codes. Separate multiple countries with commas. <br><br>Examples: <code>US</code>, <code>CH</code> (Switzerland), <code>DE</code> (Germany), <code>JP</code> (Japan).

## `trackingId` (type: `string`):

An arbitrary string (e.g. a run ID, campaign name, or correlation key) that will be attached to every scraped listing in the output dataset. Use it to identify which job produced which results when running many scraping jobs in parallel. <br><br>Leave blank to omit the field from output (faster, less data).

## `telegramBotToken` (type: `string`):

Your Telegram bot token from <a href='https://t.me/BotFather' target='_blank'>@BotFather</a>. Leave blank to skip Telegram alerts.

## `telegramChatId` (type: `string`):

The chat/group/channel ID to send alerts to. Find it by messaging <a href='https://t.me/userinfobot' target='_blank'>@userinfobot</a>.

## `discordWebhookUrl` (type: `string`):

A Discord webhook URL from your server's Integrations settings. Leave blank to skip Discord alerts.

## `webhookUrl` (type: `string`):

A custom HTTP endpoint to send listing data to. Leave blank to skip webhook alerts.

## Actor input object example

```json
{
  "searchQuery": "Rolex Daytona",
  "maxResults": 10,
  "enrichDetails": false,
  "currency": "USD",
  "sortOrder": "5",
  "manufacturerIds": "221,187",
  "models": "2787,45",
  "catalogCollectionId": "314",
  "catalogModelId": "678",
  "priceFrom": 1000,
  "priceTo": 10000,
  "watchTypes": "",
  "condition": "",
  "certified": false,
  "specials": [],
  "movementTypes": "",
  "gender": "",
  "caseDiameter": "36,42",
  "year": "2018,2023",
  "waterproof": "",
  "functions": [],
  "styles": [],
  "caseMaterials": [],
  "dialColor": [],
  "braceletMaterial": [],
  "braceletColor": [],
  "sellerType": "",
  "stockInfo": "",
  "countryIds": "US,CH,DE",
  "trackingId": "campaign-spring-2026",
  "telegramBotToken": "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz",
  "telegramChatId": "1001234567890",
  "discordWebhookUrl": "https://discord.com/api/webhooks/123456/abc-def",
  "webhookUrl": "https://hooks.example.com/new-listing"
}
```

# Actor output Schema

## `results` (type: `string`):

JSON array of all scraped watch listings in the default dataset.

## `datasetUrl` (type: `string`):

API endpoint for the default dataset (for programmatic access).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "Rolex Daytona",
    "trackingId": "default"
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/chrono24-alerts").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "Rolex Daytona",
    "trackingId": "default",
}

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/chrono24-alerts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "Rolex Daytona",
  "trackingId": "default"
}' |
apify call epicscrapers/chrono24-alerts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=epicscrapers/chrono24-alerts",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chrono24 Watch Alerts",
        "description": "Get alerts for new watches on Chrono24 that match your filters. Receive notifications on Telegram, Discord, or via webhooks instantly!",
        "version": "0.0",
        "x-build-id": "oty6M82IPqvR9TtvI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/epicscrapers~chrono24-alerts/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-epicscrapers-chrono24-alerts",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/epicscrapers~chrono24-alerts/runs": {
            "post": {
                "operationId": "runs-sync-epicscrapers-chrono24-alerts",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/epicscrapers~chrono24-alerts/run-sync": {
            "post": {
                "operationId": "run-sync-epicscrapers-chrono24-alerts",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Enter a free-text search term — brand name, model, reference number, or any keyword you'd type into Chrono24's search bar. <br><br>Examples: <code>Rolex Daytona</code>, <code>Omega Seamaster 300</code>, <code>126610LN</code>. <br><br>Leave blank to browse by filters alone."
                    },
                    "maxResults": {
                        "title": "Max Listings",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "How many listings to collect. Results are fetched 30 at a time (one page = one request). <br><br>Start low (10–50) to verify output before running a large job.",
                        "default": 10
                    },
                    "enrichDetails": {
                        "title": "Enrich Details (slower & costs more)",
                        "type": "boolean",
                        "description": "When enabled, the scraper opens each listing's detail page to collect extended data: reference number, full seller profile, all images, and description text. <br><br>⚠️ This makes the run significantly slower and increases compute usage — one extra page request per listing. Enable only when you need the extra fields.",
                        "default": false
                    },
                    "currency": {
                        "title": "Currency",
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "CHF",
                            "CAD",
                            "AUD",
                            "HKD",
                            "SGD",
                            "CNY",
                            "KRW",
                            "INR",
                            "RUB",
                            "BRL",
                            "MXN",
                            "NOK",
                            "SEK",
                            "DKK",
                            "PLN",
                            "TRY",
                            "ZAR",
                            "AED",
                            "TWD",
                            "MYR",
                            "THB",
                            "PHP",
                            "IDR",
                            "VND",
                            "ILS",
                            "CLP",
                            "COP",
                            "PEN",
                            "NGN",
                            "EGP",
                            "KES"
                        ],
                        "type": "string",
                        "description": "Choose the currency for all listing prices in the output.",
                        "default": "USD"
                    },
                    "sortOrder": {
                        "title": "Sort Order",
                        "enum": [
                            "0",
                            "1",
                            "5",
                            "11",
                            "15",
                            "42"
                        ],
                        "type": "string",
                        "description": "Choose how Chrono24 sorts results before scraping. <b>Newest first</b> is useful for monitoring new listings; <b>Relevance</b> is best for open-ended searches.",
                        "default": "5"
                    },
                    "manufacturerIds": {
                        "title": "Brand IDs",
                        "type": "string",
                        "description": "Enter one or more Chrono24 brand IDs, separated by commas. <br><br><b>Common IDs:</b><br>221 = Rolex<br>187 = Omega<br>43 = Cartier<br>32 = Breitling<br>115 = IWC<br>194 = Patek Philippe<br>18 = Audemars Piguet<br>245 = Tudor<br><br>To find other brand IDs, search Chrono24 and check the URL for <code>manufacturerId</code>."
                    },
                    "models": {
                        "title": "Model IDs",
                        "type": "string",
                        "description": "Enter one or more Chrono24 model IDs, separated by commas. <br><br><b>How to find model IDs:</b> run a text search first (e.g. <i>Rolex Datejust 36</i>) with <b>Enrich Details</b> enabled, then check the <code>detail.modelId</code> field in the output."
                    },
                    "catalogCollectionId": {
                        "title": "Collection ID",
                        "type": "string",
                        "description": "Filter by a Chrono24 catalog collection (e.g. <code>314</code> = Datejust collection). More specific than brand — use when you want all variants of a named collection."
                    },
                    "catalogModelId": {
                        "title": "Catalog Model ID",
                        "type": "string",
                        "description": "Filter by a specific catalog model variant. More granular than Collection ID. Find it in Chrono24's URL when browsing a specific model page."
                    },
                    "priceFrom": {
                        "title": "Min Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum listing price in your chosen currency. Leave blank for no lower bound."
                    },
                    "priceTo": {
                        "title": "Max Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listing price in your chosen currency. Leave blank for no upper bound."
                    },
                    "watchTypes": {
                        "title": "New or Used",
                        "enum": [
                            "",
                            "U",
                            "N"
                        ],
                        "type": "string",
                        "description": "Include new watches, used watches, or both.",
                        "default": ""
                    },
                    "condition": {
                        "title": "Condition Grade",
                        "enum": [
                            "",
                            "101",
                            "1301",
                            "1302",
                            "1306",
                            "1303",
                            "1305"
                        ],
                        "type": "string",
                        "description": "Filter by the seller's stated condition grade — more granular than New/Used. For example, filter used watches to <i>Very good</i> or above. Leave blank to include all grades.",
                        "default": ""
                    },
                    "certified": {
                        "title": "Certified listings only",
                        "type": "boolean",
                        "description": "Returns only listings covered by <a href='https://www.chrono24.com/info/buyer-protection.htm' target='_blank'>Chrono24 Certification</a> — authenticity is guaranteed and returns are accepted. Significantly reduces result count.",
                        "default": false
                    },
                    "specials": {
                        "title": "Delivery Contents",
                        "type": "array",
                        "description": "Filter by what's included with the watch. Leave empty to include all listings regardless of box/papers.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "102",
                                "103",
                                "104"
                            ],
                            "enumTitles": [
                                "Box and papers",
                                "Box only",
                                "Papers only"
                            ]
                        },
                        "default": []
                    },
                    "movementTypes": {
                        "title": "Movement",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3",
                            "4",
                            "5"
                        ],
                        "type": "string",
                        "description": "Filter by movement type. Choose <i>Automatic</i> to exclude quartz; choose <i>Manual winding</i> for traditional hand-wound calibres.",
                        "default": ""
                    },
                    "gender": {
                        "title": "Gender",
                        "enum": [
                            "",
                            "1401",
                            "1402"
                        ],
                        "type": "string",
                        "description": "Filter by the watch's intended gender category as listed on Chrono24.",
                        "default": ""
                    },
                    "caseDiameter": {
                        "title": "Case Diameter (mm)",
                        "type": "string",
                        "description": "Filter by case size in millimeters. Enter a single value like <code>40</code> or a range like <code>36,42</code> to set min and max."
                    },
                    "year": {
                        "title": "Year of Production",
                        "type": "string",
                        "description": "Filter by production year. Enter a single year like <code>2020</code>, or a range like <code>2018,2023</code>."
                    },
                    "waterproof": {
                        "title": "Water Resistance",
                        "enum": [
                            "",
                            "901",
                            "902",
                            "903",
                            "1350",
                            "904",
                            "905",
                            "906",
                            "907",
                            "908",
                            "909",
                            "910",
                            "911",
                            "1351",
                            "912",
                            "913",
                            "914",
                            "915",
                            "916",
                            "917",
                            "918",
                            "919",
                            "920",
                            "921",
                            "922",
                            "923"
                        ],
                        "type": "string",
                        "description": "Filter by water resistance rating in ATM.",
                        "default": ""
                    },
                    "functions": {
                        "title": "Complications / Functions",
                        "type": "array",
                        "description": "Filter by watch complications. Select one or more. Leave empty to include all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1000",
                                "1010",
                                "1011",
                                "1012",
                                "1013",
                                "1014",
                                "1015",
                                "1016",
                                "1017",
                                "1018",
                                "1019",
                                "1020",
                                "1021",
                                "1022",
                                "1023",
                                "1024",
                                "1026",
                                "1027",
                                "1028",
                                "1360"
                            ],
                            "enumTitles": [
                                "Chronograph",
                                "Double chronograph",
                                "Flyback",
                                "Panorama date",
                                "Repeater",
                                "Tourbillon",
                                "Annual calendar",
                                "4-year calendar",
                                "Perpetual calendar",
                                "Alarm",
                                "Chiming clock",
                                "Moon phase",
                                "Minute repeater",
                                "Date",
                                "Weekday",
                                "Month",
                                "Tachymeter",
                                "Jumping hour",
                                "Equation of time",
                                "GMT"
                            ]
                        },
                        "default": []
                    },
                    "styles": {
                        "title": "Watch Style",
                        "type": "array",
                        "description": "Filter by style category — useful for broad searches like <i>Diving watches</i> or <i>Vintage watches</i> without needing a specific brand.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1801",
                                "1802",
                                "1803",
                                "1804",
                                "1805",
                                "1807",
                                "1809",
                                "1811",
                                "1812",
                                "1813",
                                "1815",
                                "1816",
                                "1817",
                                "1818",
                                "1819",
                                "1820",
                                "1821",
                                "1822",
                                "1823",
                                "1824",
                                "1825",
                                "1826",
                                "1827",
                                "1830",
                                "1839",
                                "1841"
                            ],
                            "enumTitles": [
                                "Sports watches",
                                "Vintage watches",
                                "Pilot's watches",
                                "Diving watches",
                                "Dress watches",
                                "Military watches",
                                "Business watches",
                                "Automatic watches",
                                "Chronographs",
                                "Chronometer",
                                "One-hand watches",
                                "Perpetual calendar watches",
                                "Skeleton watches",
                                "Flyback chronographs",
                                "Large / XXL watches",
                                "World time watches",
                                "Calendar watches",
                                "Limited edition watches",
                                "Left-handed watches",
                                "Mechanical watches",
                                "Minute repeater",
                                "Moon phase watches",
                                "Quartz watches",
                                "Swiss watches",
                                "Tourbillon watches",
                                "Manually-wound watches"
                            ]
                        },
                        "default": []
                    },
                    "caseMaterials": {
                        "title": "Case Material",
                        "type": "array",
                        "description": "Filter by the watch case material. Select one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "12",
                                "13",
                                "14",
                                "15",
                                "16",
                                "17",
                                "18",
                                "19",
                                "20",
                                "21"
                            ],
                            "enumTitles": [
                                "Rose gold",
                                "Red gold",
                                "Yellow gold",
                                "Steel",
                                "Titanium",
                                "Aluminum",
                                "Platinum",
                                "White gold",
                                "Gold/Steel",
                                "Silver",
                                "Plastic",
                                "Ceramic",
                                "Palladium",
                                "Tungsten",
                                "Tantalum",
                                "Carbon",
                                "Bronze",
                                "Brass",
                                "Gold-plated",
                                "Sapphire crystal"
                            ]
                        },
                        "default": []
                    },
                    "dialColor": {
                        "title": "Dial Color",
                        "type": "array",
                        "description": "Filter by dial color. Select one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "701",
                                "702",
                                "703",
                                "704",
                                "705",
                                "706",
                                "707",
                                "708",
                                "709",
                                "710",
                                "711",
                                "712",
                                "714",
                                "715",
                                "716",
                                "719",
                                "720",
                                "721",
                                "722",
                                "723",
                                "724",
                                "725",
                                "726"
                            ],
                            "enumTitles": [
                                "White",
                                "Black",
                                "Turquoise",
                                "Skeletonized",
                                "Gold (solid)",
                                "Silver (solid)",
                                "Mother of pearl",
                                "Silver",
                                "Champagne",
                                "Blue",
                                "Bordeaux",
                                "Bronze",
                                "Gold",
                                "Grey",
                                "Green",
                                "Orange",
                                "Red",
                                "Purple",
                                "Pink",
                                "Brown",
                                "Yellow",
                                "Meteorite",
                                "Skeletonized"
                            ]
                        },
                        "default": []
                    },
                    "braceletMaterial": {
                        "title": "Band Material",
                        "type": "array",
                        "description": "Filter by the bracelet or strap material. Select one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "401",
                                "402",
                                "403",
                                "404",
                                "406",
                                "407",
                                "408",
                                "409",
                                "410",
                                "411",
                                "412",
                                "413",
                                "414",
                                "415",
                                "416",
                                "417",
                                "418",
                                "419",
                                "420",
                                "421",
                                "422",
                                "423",
                                "424",
                                "425",
                                "426"
                            ],
                            "enumTitles": [
                                "Calf skin",
                                "Ostrich skin",
                                "Crocodile skin",
                                "Leather",
                                "Plastic",
                                "Steel",
                                "Titanium",
                                "White gold",
                                "Gold/Steel",
                                "Rose gold",
                                "Red gold",
                                "Yellow gold",
                                "Aluminium",
                                "Platinum",
                                "Textile",
                                "Silver",
                                "Rubber",
                                "Shark skin",
                                "Satin",
                                "Ceramic",
                                "Lizard skin",
                                "Silicon",
                                "Alligator skin",
                                "Brass",
                                "Gold-plated"
                            ]
                        },
                        "default": []
                    },
                    "braceletColor": {
                        "title": "Band Color",
                        "type": "array",
                        "description": "Filter by bracelet or strap color. Select one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "601",
                                "602",
                                "603",
                                "604",
                                "605",
                                "606",
                                "607",
                                "608",
                                "609",
                                "610",
                                "611",
                                "612",
                                "615",
                                "616",
                                "617",
                                "618",
                                "619",
                                "620"
                            ],
                            "enumTitles": [
                                "Black",
                                "Brown",
                                "Silver",
                                "Gold",
                                "Steel",
                                "Beige",
                                "Blue",
                                "Bordeaux",
                                "Bronze",
                                "Yellow",
                                "Grey",
                                "Green",
                                "Orange",
                                "Red",
                                "Purple",
                                "White",
                                "Pink",
                                "Gold/Steel"
                            ]
                        },
                        "default": []
                    },
                    "sellerType": {
                        "title": "Seller Type",
                        "enum": [
                            "",
                            "Dealer",
                            "PrivateSeller",
                            "C24Direct"
                        ],
                        "type": "string",
                        "description": "<i>Professional dealers</i> typically have more photos and return policies. <i>Private sellers</i> may offer lower prices. <i>Chrono24 Direct</i> ships from Chrono24's own warehouse.",
                        "default": ""
                    },
                    "stockInfo": {
                        "title": "Availability",
                        "enum": [
                            "",
                            "InStock",
                            "OnOrder",
                            "OnRequest"
                        ],
                        "type": "string",
                        "description": "Filter by stock status. Choose <i>In stock</i> for immediately available watches.",
                        "default": ""
                    },
                    "countryIds": {
                        "title": "Seller Country",
                        "type": "string",
                        "description": "Filter by seller location using two-letter ISO country codes. Separate multiple countries with commas. <br><br>Examples: <code>US</code>, <code>CH</code> (Switzerland), <code>DE</code> (Germany), <code>JP</code> (Japan)."
                    },
                    "trackingId": {
                        "title": "Tracking ID",
                        "type": "string",
                        "description": "An arbitrary string (e.g. a run ID, campaign name, or correlation key) that will be attached to every scraped listing in the output dataset. Use it to identify which job produced which results when running many scraping jobs in parallel. <br><br>Leave blank to omit the field from output (faster, less data).",
                        "default": "default"
                    },
                    "telegramBotToken": {
                        "title": "Telegram Bot Token",
                        "type": "string",
                        "description": "Your Telegram bot token from <a href='https://t.me/BotFather' target='_blank'>@BotFather</a>. Leave blank to skip Telegram alerts."
                    },
                    "telegramChatId": {
                        "title": "Telegram Chat ID",
                        "type": "string",
                        "description": "The chat/group/channel ID to send alerts to. Find it by messaging <a href='https://t.me/userinfobot' target='_blank'>@userinfobot</a>."
                    },
                    "discordWebhookUrl": {
                        "title": "Discord Webhook URL",
                        "type": "string",
                        "description": "A Discord webhook URL from your server's Integrations settings. Leave blank to skip Discord alerts."
                    },
                    "webhookUrl": {
                        "title": "Webhook",
                        "type": "string",
                        "description": "A custom HTTP endpoint to send listing data to. Leave blank to skip webhook alerts."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
