# CHRONEXT Watch Scraper (`solidcode/chronext-scraper`) Actor

\[💰 $1.1 / 1K] Extract luxury watch listings from CHRONEXT: brand, model, reference, condition, year, case size, movement, materials, dial colour, price and images. Filter by 56 brands, price, year, size and features across 8 country storefronts in EUR, GBP or CHF.

- **URL**: https://apify.com/solidcode/chronext-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.10 / 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## CHRONEXT Watch Scraper

Pull luxury watch listings from CHRONEXT at scale — live prices in EUR, GBP or CHF, manufacturer reference codes, condition grade, year of manufacture, box-and-papers provenance, full case and movement specifications, and every listing photo. Built for watch dealers, resellers, collectors, market analysts, and insurance and valuation teams who need a clean, structured inventory feed without hand-crafting search links or checking listings one page at a time.

### Why This Scraper?

- **8 country storefronts in 3 currencies** — International (EUR), United Kingdom (GBP), Switzerland (CHF), plus Germany, Austria, France, Italy and the Netherlands. Prices, condition labels and delivery text come back in that store's own currency and language.
- **161 filter values across 14 filter families, every one verified live** — 56 brands, 5 condition grades, 3 movement types, 22 case materials, 24 strap and bracelet materials, 23 dial colours and 25 complications, plus price, year and case-size ranges. Unknown values are dropped with a warning instead of silently zeroing your run.
- **25 named complications to filter on** — chronograph, perpetual and annual calendar, moon phase, GMT second time zone, world time, power reserve indicator, tachymeter, flyback, helium escape valve, co-axial escapement, and more.
- **13 extra specification fields on demand** — turn on full specifications and every watch also returns case shape, clasp type, crystal, dial index type, movement, taxation scheme and warranty status: 44 attributes per watch instead of the 23 a listing card carries.
- **120 watches with full specifications in 33.6 seconds** — measured, not estimated. Watch pages are collected in parallel, so depth costs you very little time.
- **Manufacturer reference codes on every row** — both the short reference (`126710BLNR`) and the dial-specific long reference (`126710BLNR-0003`), ready to join against price guides, auction records or your own stock list.
- **Human-readable prices with a computed discount** — `17270.00` in the store's currency alongside the raw minor-unit value, the crossed-out `strikePrice`, and a calculated `discountPercent` so markdowns are one column, not arithmetic.
- **Filters run on CHRONEXT's own index, not after collection** — narrowing to "Rolex, very good, with papers, under €20,000" means you collect and pay for that subset only, never the full catalogue.
- **Whole catalogue in a single run** — around 2,000 watches on each EUR storefront, about 1,350 in Switzerland and about 380 in the UK, walked page by page with automatic de-duplication.

### Use Cases

**Dealer & Reseller Operations**

- Rebuild your competitor inventory sheet every morning with current asking prices
- Spot new arrivals by reference code before they appear on aggregator sites
- Track which references sell through fastest by watching stock disappear
- Filter to ready-to-ship stock only when you need a watch in hand this week

**Pricing & Market Intelligence**

- Compare the same reference across EUR, GBP and CHF storefronts for arbitrage gaps
- Measure the price premium of box-and-papers examples over bare watches
- Chart price against year of manufacture for a single model line
- Watch discount depth across the catalogue using `strikePrice` and `discountPercent`

**Insurance, Valuation & Appraisal**

- Build replacement-cost tables by reference code and condition grade
- Support appraisals with live retail comparables rather than stale guide prices
- Document specifications — case size, material, movement, crystal — for policy schedules
- Track vintage pieces separately using the Vintage condition filter

**Collector & Enthusiast Research**

- Hunt a specific complication across all 56 brands at once
- Find every 36–40 mm steel piece with a black dial and a date
- Filter to unworn examples with original papers only
- Track a grail reference across every storefront until the price drops

**Data Products & Integration**

- Feed a watch price-comparison site with structured, deduplicated listings
- Enrich a CRM or marketplace catalogue with images and full specifications
- Power dashboards on luxury watch supply, pricing and condition mix
- Schedule daily runs and pipe new listings straight into Slack or a spreadsheet

### Getting Started

#### Simple Keyword Search

```json
{
    "searchTerms": ["submariner"],
    "maxResults": 100
}
```

#### Brand and Condition, in Pounds

```json
{
    "marketplace": "co.uk",
    "brands": ["Rolex", "Omega"],
    "condition": ["Unworn - New", "Like New"],
    "maxResults": 200
}
```

#### Cheapest Chronographs with Full Specifications

```json
{
    "features": ["Chronograph"],
    "minPrice": 3000,
    "maxPrice": 12000,
    "sortBy": "priceAsc",
    "includeSpecs": true,
    "maxResults": 250
}
```

#### Advanced — Vintage Steel, Papers Required

```json
{
    "searchTerms": ["daytona", "speedmaster"],
    "startUrls": ["https://www.chronext.com/rolex/submariner"],
    "marketplace": "com",
    "condition": ["Vintage", "Very Good"],
    "movement": ["Manual Wind"],
    "caseMaterial": ["Stainless Steel"],
    "dialColor": ["Black", "Silver"],
    "minYear": 1960,
    "maxYear": 1990,
    "minCaseSize": 36,
    "maxCaseSize": 42,
    "originalPapers": "yes",
    "immediateDeliveryOnly": true,
    "sortBy": "priceDesc",
    "includeSpecs": true,
    "maxResults": 500
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchTerms` | string\[] | `["submariner"]` | Plain-word searches such as "daytona ceramic" or "omega speedmaster". Each term runs separately and all matches are returned. Leave empty to browse the whole catalogue. |
| `startUrls` | string\[] | `[]` | Paste CHRONEXT web addresses directly — a listing page, a brand page, a brand-and-model page, or a single watch page. The country store is read from each address, so a `.co.uk` link returns prices in GBP. Filters, search words and sort order already in the address are read and applied, so a link copied from a filtered CHRONEXT page returns that same selection. |
| `marketplace` | select | `International — EUR` | Which country store to read: International (EUR), United Kingdom (GBP), Germany (EUR), Austria (EUR), Switzerland (CHF), France (EUR), Italy (EUR), Netherlands (EUR). Sets both the currency and the label language. |

#### Brand, Condition & Movement

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `brands` | select\[] | `[]` | Pick from 56 brands — Rolex, Omega, Patek Philippe, Audemars Piguet, Cartier, Tudor, IWC, Hublot, Breitling, Grand Seiko and more. Empty means every brand. |
| `condition` | select\[] | `[]` | Unworn – New, Like new, Very good, Good, or Vintage. |
| `gender` | select\[] | `[]` | Men's, Women's or Unisex sizing. |
| `movement` | select\[] | `[]` | Automatic (self-winding), Quartz (battery) or Manual wind. |

#### Price, Year & Size Ranges

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `minPrice` | integer | empty | Lowest price to include, in the currency of the country store you picked. |
| `maxPrice` | integer | empty | Highest price to include, in the same currency. |
| `minYear` | integer | empty | Oldest year of manufacture. CHRONEXT currently stocks watches from 1954 onwards. |
| `maxYear` | integer | empty | Newest year of manufacture. |
| `minCaseSize` | integer | empty | Smallest case diameter in millimetres. Stock ranges from 20 mm to 52 mm. |
| `maxCaseSize` | integer | empty | Largest case diameter in millimetres. |

#### Materials, Dial & Complications

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `caseMaterial` | select\[] | `[]` | 22 case materials — stainless steel, steel and yellow/rose/white gold, platinum, titanium, ceramic, carbon, bronze and more. |
| `braceletMaterial` | select\[] | `[]` | 24 strap and bracelet materials — steel, gold, titanium, ceramic, rubber, silicone, textile, and calf, alligator, lizard or ostrich leather. |
| `dialColor` | select\[] | `[]` | 23 dial colours including mother of pearl, skeletonised, champagne, anthracite, Tiffany blue and pavé (diamond set). |
| `features` | select\[] | `[]` | 25 features and complications — chronograph, chronometer certified, day and date, annual and perpetual calendar, moon phase, GMT, world time, power reserve, tachymeter, flyback, helium escape valve, co-axial escapement and more. |

#### Provenance & Availability

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `originalBox` | select | `Doesn't matter` | Require the original box, exclude it, or ignore the question entirely. |
| `originalPapers` | select | `Doesn't matter` | Require original papers and certificate, exclude them, or ignore. |
| `immediateDeliveryOnly` | boolean | `false` | Only return watches CHRONEXT can ship immediately, rather than ones with a longer lead time. |

#### Results

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | select | `Best match` | Result order: Best match, Price low to high, Price high to low, Brand A–Z, Brand Z–A, Model A–Z, or Model Z–A. |
| `maxResults` | integer | `100` | How many watches to return per search. Leave it out and you get 100. Set it to 0 to collect everything that matches — around 2,000 watches on the EUR stores, about 1,350 in Switzerland and about 380 in the UK, which is the most expensive setting. Results arrive in pages of 24, so the last page may take you slightly past your number. |
| `includeSpecs` | boolean | `false` | Open each watch's own page to add 13 specification fields — case size, case material, case shape, strap material, clasp, crystal, dial colour, dial index type, movement, who it's worn by, complications, taxation scheme and warranty. If a watch's page can't be opened in time it still comes back with all of its basic details, and the log says how many were affected. |

### Output

One flat row per watch. Here's a representative result with full specifications enabled:

```json
{
    "watchId": "V1098853",
    "sku": "A35139_V1098853",
    "productKey": "A35139",
    "productId": "6c1f0f3a-4b21-4a8e-9d0c-2f7b51a9e004",
    "name": "Rolex GMT-Master II 126710BLNR",
    "brand": "Rolex",
    "brandSlug": "rolex",
    "model": "GMT-Master",
    "submodel": "II",
    "referenceCode": "126710BLNR",
    "detailedReferenceCode": "126710BLNR-0003",
    "url": "https://www.chronext.com/rolex/gmt-master/126710blnr/V1098853",
    "price": 17270.0,
    "priceCents": 1727000,
    "currency": "EUR",
    "strikePrice": 18500.0,
    "discountPercent": 6.65,
    "condition": "Very Good",
    "year": 2019,
    "hasOriginalBox": true,
    "hasOriginalPapers": true,
    "caseSize": 40,
    "caseMaterial": ["Stainless Steel"],
    "caseForm": "Round",
    "braceletMaterial": ["Stainless Steel"],
    "braceletClasp": "Folding Clasp",
    "dialColor": ["Black"],
    "dialIndexType": "Dot Indexes",
    "crystal": "Sapphire",
    "movement": "Automatic",
    "gender": "Male",
    "features": ["Date", "Second Timezone", "Screw Down Crown", "Luminescent Hands"],
    "taxation": "Diff Taxation",
    "hasWarranty": true,
    "inStock": true,
    "stockType": "onStock",
    "deliveryTime": "2-3 days",
    "fastDelivery": true,
    "imageUrl": "https://cdn.chronext.com/watches/rolex-gmt-master-ii-126710blnr-1.jpg",
    "images": [
        "https://cdn.chronext.com/watches/rolex-gmt-master-ii-126710blnr-1.jpg",
        "https://cdn.chronext.com/watches/rolex-gmt-master-ii-126710blnr-2.jpg"
    ],
    "marketplace": "com",
    "locale": "en_DE.UTF-8@EUR",
    "itemCategory": "Watch",
    "searchTerm": "gmt-master",
    "scrapedAt": "2026-08-02T14:30:00+00:00"
}
```

#### Identity

| Field | Type | Description |
|-------|------|-------------|
| `watchId` | string | Stable identifier for this individual watch |
| `sku` | string | Full stock keeping unit |
| `productKey` | string | Catalogue key for the product |
| `productId` | string | Internal catalogue product identifier |
| `name` | string | Full listing title |
| `brand` | string | Brand display name, e.g. "Rolex" |
| `brandSlug` | string | Brand name in web-address form, e.g. "rolex" |
| `model` | string | Model line, e.g. "GMT-Master" |
| `submodel` | string | Sub-line, e.g. "II" |
| `referenceCode` | string | Manufacturer reference, e.g. "126710BLNR" |
| `detailedReferenceCode` | string | Full reference including the dial variant |
| `url` | string | Direct link to the watch on CHRONEXT |

#### Pricing

| Field | Type | Description |
|-------|------|-------------|
| `price` | number | Asking price in whole currency units, e.g. `17270.00` |
| `priceCents` | integer | The same price in minor units, as the store serves it |
| `currency` | string | EUR, GBP or CHF, depending on the country store |
| `strikePrice` | number | Crossed-out reference price when the watch is discounted |
| `discountedPrice` | number | Explicit discounted price when the store publishes one (rarely populated — use `strikePrice` and `discountPercent` instead) |
| `discountPercent` | number | Saving against `strikePrice`, calculated for you |

#### Condition & Provenance

| Field | Type | Description |
|-------|------|-------------|
| `condition` | string | Unworn – New, Like New, Very Good, Good or Vintage |
| `year` | integer | Year of manufacture |
| `hasOriginalBox` | boolean | Comes with its original box |
| `hasOriginalPapers` | boolean | Comes with original papers and certificate |

#### Specifications

Populated when `includeSpecs` is on.

| Field | Type | Description |
|-------|------|-------------|
| `caseSize` | integer | Case diameter in millimetres, rounded to the nearest millimetre |
| `caseMaterial` | string\[] | Case material or combination of materials |
| `caseForm` | string | Case shape, e.g. Round or Tonneau |
| `braceletMaterial` | string\[] | Strap or bracelet material |
| `braceletClasp` | string | Clasp type |
| `dialColor` | string\[] | Dial colour or colours |
| `dialIndexType` | string | Index style on the dial |
| `crystal` | string | Crystal type, e.g. Sapphire |
| `movement` | string | Automatic, Quartz or Manual Wind |
| `gender` | string | Who the watch is sized for |
| `features` | string\[] | Complications and features on this watch |
| `taxation` | string | Taxation scheme applied to the sale |
| `hasWarranty` | boolean | Covered by the CHRONEXT warranty |

#### Availability & Media

| Field | Type | Description |
|-------|------|-------------|
| `inStock` | boolean | Stock flag as published by the store |
| `stockType` | string | Availability type, e.g. "onStock" |
| `deliveryTime` | string | Stated delivery window |
| `fastDelivery` | boolean | Ready to ship immediately |
| `imageUrl` | string | Primary listing photo |
| `images` | string\[] | Every listing photo — up to 5 per watch |

#### Run Metadata

| Field | Type | Description |
|-------|------|-------------|
| `marketplace` | string | Country store this row came from |
| `locale` | string | Language and currency the store actually served for this row |
| `itemCategory` | string | Catalogue category, always "Watch" |
| `searchTerm` | string | Which of your search terms produced this row |
| `scrapedAt` | string | Timestamp of collection |

Fields with no value are left out of the row rather than returned empty, so a row for a brand-new watch with no strike price simply has no `strikePrice` key.

### Tips for Best Results

- **Pick the country store before you set a price range.** `minPrice` and `maxPrice` are read in that store's currency, so a €5,000 floor becomes a £5,000 floor the moment you switch to the UK store.
- **Multi-value filters widen, they don't narrow.** Choosing both Moon phase and Chronograph returns watches with either one. To narrow, add a filter from a *different* family — brand plus condition plus movement all intersect.
- **The UK store carries about 380 watches and Switzerland about 1,350**, against roughly 2,000 on each EUR storefront. A tight filter can empty the smaller stores completely — start on the International store, then re-run against a country store once you know the filter returns results.
- **Turn on full specifications only when you need them.** The 13 extra fields are worth it for valuation and catalogue work; for a price sweep the listing fields alone are faster.
- **Sort by price ascending with a small `maxResults`** to get "the ten cheapest Speedmasters" in one run instead of collecting everything and sorting afterwards.
- **Join on `referenceCode` for market comparisons and `watchId` for tracking a single piece.** The reference groups every example of a model; the watch identifier stays stable for one specific physical watch across runs, which is how you detect that a listing has sold or changed price.
- **Start with `maxResults` at 24 to preview.** Results arrive in pages of 24, so 24 is exactly one page — enough to confirm the filters do what you expect before you scale up.

### Pricing

**From $1.10 per 1,000 results** — one of the lowest rates for structured luxury watch inventory. Bronze, Silver and Gold subscribers pay progressively less; the table below shows the total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.13 | $0.125 | $0.115 | $0.11 |
| 1,000 | $1.30 | $1.25 | $1.15 | $1.10 |
| 10,000 | $13.00 | $12.50 | $11.50 | $11.00 |
| 100,000 | $130.00 | $125.00 | $115.00 | $110.00 |

A "result" is one watch row in your dataset. **No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.** Turning on full specifications costs nothing extra; the price per watch is the same either way.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications when new watches appear
- **Webhooks** — Trigger your own systems when a run finishes
- **Apify API** — Full programmatic access and scheduled runs

### Legal & Ethical Use

This actor is built for legitimate market research, pricing analysis, valuation, and catalogue enrichment. You are responsible for complying with applicable laws and CHRONEXT's Terms of Service. Collect only what you need, keep request volumes reasonable, and do not use the data for spam, misrepresentation, or any unlawful purpose. Listing content and photographs remain the property of their respective owners.

# Actor input Schema

## `searchTerms` (type: `array`):

What to look for, in plain words — for example 'submariner', 'daytona ceramic' or 'omega speedmaster'. Each term is searched separately and all matches are returned. Leave empty to browse the whole catalogue.

## `startUrls` (type: `array`):

Paste CHRONEXT web addresses to scrape directly. This can be a listing page (for example .../buy), a brand page (.../rolex), a brand-and-model page (.../rolex/submariner), or a single watch page. The country store is taken from each address, so a .co.uk link returns prices in GBP. Any filters, search words or sort order already in the address are read and applied, so a link copied straight from a filtered CHRONEXT page gives you that same selection — where an address and a filter field below disagree, the address wins for that one filter. CHRONEXT's own on-site search result pages are not supported — use Search Terms for those.

## `marketplace` (type: `string`):

Which CHRONEXT country store to read. This decides the currency you get back and the language of labels such as condition. Stock differs slightly between stores.

## `brands` (type: `array`):

Only return watches from these brands. Leave empty to include every brand.

## `condition` (type: `array`):

Only return watches in these conditions.

## `gender` (type: `array`):

Only return watches sized for these wearers.

## `movement` (type: `array`):

How the watch is powered.

## `minPrice` (type: `integer`):

Lowest price to include, in the currency of the country store you picked above. Leave empty for no lower limit.

## `maxPrice` (type: `integer`):

Highest price to include, in the currency of the country store you picked above. Leave empty for no upper limit.

## `minYear` (type: `integer`):

Oldest year of manufacture to include. CHRONEXT currently stocks watches from 1954 onwards.

## `maxYear` (type: `integer`):

Newest year of manufacture to include.

## `minCaseSize` (type: `integer`):

Smallest case diameter in millimetres. CHRONEXT stock ranges from 20 mm to 52 mm.

## `maxCaseSize` (type: `integer`):

Largest case diameter in millimetres.

## `caseMaterial` (type: `array`):

What the watch case is made of.

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

What the strap or bracelet is made of.

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

Colour of the watch face.

## `features` (type: `array`):

Only return watches that offer these features. Picking several returns watches matching any of them, so more choices means more results — not fewer.

## `originalBox` (type: `string`):

Whether the watch must come with its original box.

## `originalPapers` (type: `string`):

Whether the watch must come with its original papers and certificate.

## `immediateDeliveryOnly` (type: `boolean`):

Only return watches CHRONEXT can ship immediately, rather than ones with a longer lead time.

## `sortBy` (type: `string`):

The order results come back in. 'Best match' uses CHRONEXT's own ranking.

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

How many watches to return for each search. Leave this box empty and you get 100, the same as the number shown here. Set it to 0 to collect everything that matches — that is around 2,000 watches on the International, German, Austrian, French, Italian and Dutch stores (about 1,350 in Switzerland and about 380 in the United Kingdom), so it is the most expensive setting. There is no hidden limit of our own; the ceiling is simply how much the store carries. Results arrive in pages of 24, so the last page may take you slightly past your number.

## `includeSpecs` (type: `boolean`):

Open each watch's own page to also collect case size, case material, case shape, strap material, clasp, crystal, dial colour, dial index type, movement, who it's worn by, complications, taxation scheme and warranty. This makes the run slower but adds 13 extra details per watch. If a watch's own page can't be opened in time, that watch still comes back with all of its basic details and the log tells you how many were affected.

## Actor input object example

```json
{
  "searchTerms": [
    "submariner"
  ],
  "startUrls": [],
  "marketplace": "com",
  "brands": [],
  "condition": [],
  "gender": [],
  "movement": [],
  "caseMaterial": [],
  "braceletMaterial": [],
  "dialColor": [],
  "features": [],
  "originalBox": "any",
  "originalPapers": "any",
  "sortBy": "relevance",
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Every watch collected, with brand, model, reference, condition, year and price.

## `specifications` (type: `string`):

Case, dial, movement and bracelet details. Populated when 'Include Full Specifications' is enabled.

## `pricing` (type: `string`):

Price, discounts, stock and delivery information for each watch.

# 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 = {
    "searchTerms": [
        "submariner"
    ],
    "startUrls": [],
    "marketplace": "com",
    "brands": [],
    "condition": [],
    "gender": [],
    "movement": [],
    "caseMaterial": [],
    "braceletMaterial": [],
    "dialColor": [],
    "features": [],
    "originalBox": "any",
    "originalPapers": "any",
    "immediateDeliveryOnly": false,
    "sortBy": "relevance",
    "maxResults": 100,
    "includeSpecs": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/chronext-scraper").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 = {
    "searchTerms": ["submariner"],
    "startUrls": [],
    "marketplace": "com",
    "brands": [],
    "condition": [],
    "gender": [],
    "movement": [],
    "caseMaterial": [],
    "braceletMaterial": [],
    "dialColor": [],
    "features": [],
    "originalBox": "any",
    "originalPapers": "any",
    "immediateDeliveryOnly": False,
    "sortBy": "relevance",
    "maxResults": 100,
    "includeSpecs": False,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/chronext-scraper").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 '{
  "searchTerms": [
    "submariner"
  ],
  "startUrls": [],
  "marketplace": "com",
  "brands": [],
  "condition": [],
  "gender": [],
  "movement": [],
  "caseMaterial": [],
  "braceletMaterial": [],
  "dialColor": [],
  "features": [],
  "originalBox": "any",
  "originalPapers": "any",
  "immediateDeliveryOnly": false,
  "sortBy": "relevance",
  "maxResults": 100,
  "includeSpecs": false
}' |
apify call solidcode/chronext-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/h4ok9R0HmhYnYVZ9a/builds/bE5FxZkiHlBkt03My/openapi.json
