{
  "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": "bBRROExXLasbGxcSs"
  },
  "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": "Brand, model or reference number, as you'd type it into Chrono24's search bar. Examples: <code>Rolex Submariner 124060</code>, <code>Tudor Black Bay 58</code>, <code>Omega Speedmaster Professional</code>.<br><br>Leave empty to watch everything that matches the filters below."
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Only alert about listings at or above this price, in the currency chosen below. Useful to skip parts, straps and fakes listed at silly prices. Leave empty for no lower limit."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Only alert about listings at or below this price, in the currency chosen below. This is the simplest way to say \"tell me when one appears under $X\". Leave empty for no upper limit."
          },
          "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": "Currency for prices, price filters and price-drop amounts.",
            "default": "USD"
          },
          "watchTypes": {
            "title": "New or used",
            "enum": [
              "",
              "U",
              "N"
            ],
            "type": "string",
            "description": "Include new watches, used watches, or both.",
            "default": ""
          },
          "alertOnNewListing": {
            "title": "Alert on new listings",
            "type": "boolean",
            "description": "Send an alert when a listing matching your search appears that wasn't there in an earlier run.",
            "default": true
          },
          "alertOnPriceDrop": {
            "title": "Alert on price drops",
            "type": "boolean",
            "description": "Send an alert when a listing you've already seen drops its price by at least the threshold below. Each drop is alerted once; the next drop is measured from the new price.",
            "default": true
          },
          "priceDropThreshold": {
            "title": "Price drop threshold",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Minimum drop, in percent, that counts as a price drop. <code>5</code> means a $10,000 watch must drop to $9,500 or less.",
            "default": 5
          },
          "priceDropMinAmount": {
            "title": "Minimum price drop amount",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Also require the drop to be at least this much money (in the chosen currency), e.g. <code>200</code> to ignore small cuts on cheap watches. <code>0</code> = only the percentage counts.",
            "default": 0
          },
          "notifyOnFirstRun": {
            "title": "Notify about current listings on the first run",
            "type": "boolean",
            "description": "Off (recommended): the first run only sends a short confirmation that the alert is set up and remembers the current listings. On: the first run also sends each current listing (up to the limit below).",
            "default": false
          },
          "maxNotificationsPerRun": {
            "title": "Max notifications per run",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Caps the messages sent per channel in one run, so a broad search can't flood your chat. Extra alerts are summarized in one message and still saved to the dataset and the webhook.",
            "default": 20
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Create a bot with <a href='https://t.me/BotFather' target='_blank'>@BotFather</a> (<code>/newbot</code>) and paste the token it gives you, e.g. <code>123456789:AAH...</code>."
          },
          "telegramChatId": {
            "title": "Telegram chat ID",
            "type": "string",
            "description": "Where the bot should post: your user ID, a group ID (starts with <code>-</code>) or a channel <code>@username</code>. Send any message to your bot first, then open <code>https://api.telegram.org/bot&lt;TOKEN&gt;/getUpdates</code> and copy <code>chat.id</code>."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "In Discord: <b>Server Settings → Integrations → Webhooks → New Webhook</b>, pick a channel, then <b>Copy Webhook URL</b>."
          },
          "webhookUrl": {
            "title": "Webhook URL (JSON POST)",
            "type": "string",
            "description": "Any URL that accepts a JSON POST: Zapier, Make, n8n, Slack workflow, your own server. Called once per run that has alerts, with all alerts in one request. See the README for the payload."
          },
          "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. Most people don't need this: a search query like <code>Rolex Datejust 36</code> works just as well."
          },
          "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."
          },
          "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)."
          },
          "includeDetails": {
            "title": "Add watch details to alerts",
            "type": "boolean",
            "description": "Fetch each alerted listing's detail page to add the reference number, year, box & papers, seller rating and description. One extra request per alert (not per checked listing), so it's cheap for normal use.",
            "default": false
          },
          "maxListings": {
            "title": "Listings to check per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many search results to look at each run, newest first (30 per request). New listings show up at the top, so 60 is plenty for most schedules. To catch price drops on <i>every</i> matching watch, make the search narrow and set this above the number of matches.",
            "default": 60
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "0",
              "1",
              "5",
              "11",
              "15",
              "42"
            ],
            "type": "string",
            "description": "Keep <b>Newest first</b> for alerts: new listings appear at the top of the results, so they are always within the checked listings.",
            "default": "5"
          },
          "trackingId": {
            "title": "Tracking ID",
            "type": "string",
            "description": "Optional name for this alert's memory. By default the memory is tied to the search itself (query, currency and filters), so changing the search starts a fresh baseline. Set a tracking ID to keep the same memory while you tweak filters, or to run two separate alerts on the same search."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}