WatchBase Scraper — Watch Reference Specs (Caliber, Case, Dial) avatar

WatchBase Scraper — Watch Reference Specs (Caliber, Case, Dial)

Pricing

from $6.00 / 1,000 results

Go to Apify Store
WatchBase Scraper — Watch Reference Specs (Caliber, Case, Dial)

WatchBase Scraper — Watch Reference Specs (Caliber, Case, Dial)

Turn a watch brand (or a list of specific reference URLs) into clean JSON: caliber/movement, case material, bezel, glass, dimensions, water resistance, dial color, indexes and hands for every model reference on WatchBase. Ideal for resellers, valuation and catalog normalization.

Pricing

from $6.00 / 1,000 results

Rating

0.0

(0)

Developer

Liu Hao

Liu Hao

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Turn a watch brand (or a list of specific WatchBase reference URLs) into clean, structured JSON: every model reference's caliber/movement, case material, bezel, glass, shape, dimensions, water resistance, and dial color, finish, indexes, hands — sourced from WatchBase, the reference-grade watch specification database.

Built for watch e-commerce, valuation/insurance, price comparison apps, and collection/inventory tools that already have a reference number (from a listing, an invoice, a trade-in) and need the full authoritative spec sheet behind it.

Why this actor exists: watch resale marketplaces (Chrono24) have several dedicated Apify scrapers — the top one has 16,000+ runs — proving buyers pay for watch data. But those scrapers only get listing prices. The reference-number → full spec layer those same buyers need to normalize and enrich that data had zero dedicated actors. This actor fills that gap.


What it does

  • Input: one or more brand slugs (rolex, omega, patek-philippe, …) and/or specific reference-page URLs.
  • Discovery: for each brand, the actor walks WatchBase's own hierarchy — brand → model family → individual reference — so you don't need to know reference numbers in advance.
  • Output: one clean record per watch reference — brand, family, reference number, name, caliber/movement, case specs, dial specs, and a full flexible specs object with every field WatchBase publishes for that watch.
  • Reliable by design: reads only public WatchBase pages (allowed by its robots.txt for standard browser traffic), plain server-rendered HTML — no login, no JS rendering, no CAPTCHA farms.

Input parameters

FieldTypeDefaultDescription
brandsarray of stringsWatchBase brand slugs, e.g. ["rolex", "omega"]. Find the slug in the brand's URL: watchbase.com/<slug>. The actor scrapes every family and every reference for each brand.
referenceUrlsarray of stringsOptional. Specific https://watchbase.com/<brand>/<family>/<reference> URLs, instead of or alongside whole brands.
maxItemsinteger0Cap on total reference records returned across all brands. 0 = no limit.
includeMovementbooleantrueInclude caliber name, caliber page URL and movement/complications text.
includeCaseSpecsbooleantrueInclude case material, bezel, glass, back, shape, diameter, height, lug width, water resistance.
includeDialSpecsbooleantrueInclude dial color, finish, indexes, hands.
maxConcurrencyinteger5Parallel requests. Keep low to stay polite to WatchBase.
proxyConfigurationobjectApify ProxyProxy settings. Default datacenter proxy is enough.

Example input

{
"brands": ["rolex"],
"maxItems": 200,
"includeMovement": true,
"includeCaseSpecs": true,
"includeDialSpecs": true
}

Output

One dataset record per watch reference. Real output for Rolex Daytona 126500LN-0001, captured live:

{
"brand": "Rolex",
"family": "Daytona",
"reference": "126500LN-0001",
"akaReference": null,
"name": "Cosmograph Daytona Stainless Steel - Cerachrom / White / Oyster",
"produced": "2023",
"limited": false,
"caliber": "Rolex caliber 4131",
"caliberUrl": "https://watchbase.com/rolex/caliber/4131",
"movement": "Rolex caliber 4131 Hours, Minutes, Small Seconds | Chronograph, Column wheel | Chronometer",
"material": "Ceramic, Stainless Steel",
"bezel": "Tachymeter",
"glass": "Sapphire",
"back": "Closed",
"shape": "Round",
"diameterMm": 40,
"heightMm": 11.9,
"lugWidthMm": 20,
"waterResistanceM": 100,
"dialColor": "White",
"dialFinish": null,
"indexes": "Stick / Dot",
"hands": "Stick",
"specs": { "...": "every raw label/value pair WatchBase shows for this reference" },
"url": "https://watchbase.com/rolex/daytona/126500ln-0001",
"scrapedAt": "2026-07-24T00:00:00.000Z"
}

Output field reference

FieldDescription
brand / family / referenceBrand name, model family (e.g. Daytona), and the manufacturer reference number.
akaReferenceAlternate reference number WatchBase lists (e.g. Rolex's M-prefixed full reference), if any.
nameFull model name / dial description.
producedProduction year or year range, as published (not always a clean single year).
limitedWhether WatchBase flags this as a limited edition.
caliber / caliberUrl / movementMovement caliber name, WatchBase's caliber detail page, and the raw movement/complications text.
material, bezel, glass, back, shape, diameterMm, heightMm, lugWidthMm, waterResistanceMCase specifications. Not every field is published for every watch (older/rare references have thinner data); missing fields are null.
dialColor, dialFinish, indexes, handsDial specifications.
specsEvery raw label → value pair from WatchBase's spec tables for this reference, unfiltered. Use this if you need a field not promoted to the top level, or the exact original text (e.g. "41.00 mm" instead of the parsed 41).
urlCanonical WatchBase reference URL.
scrapedAtISO timestamp of capture.

Pages that don't resolve are returned as { "url": "...", "error": "not_found" } so a bad reference never silently disappears from your run.

Typical use cases

  • Marketplace / dealer listing enrichment: you have a reference number from a trade-in or a scraped listing (e.g. from a Chrono24 dataset) and need the full spec sheet — movement, case, dial — to build a complete product page.
  • Valuation & insurance: authoritative case material, diameter and movement data to normalize condition/value assessments across references.
  • Watch comparison / recommendation apps: structured, comparable specs across brands instead of scraping marketing copy.
  • Collection & inventory tools: bulk-hydrate a collection by brand instead of looking up each reference by hand.

How to choose brands

Browse watchbase.com/watches for the full brand list, or use the brand slug from any WatchBase URL you already have (watchbase.com/<slug>). Popular brands: rolex, omega, patek-philippe, audemars-piguet, cartier, breitling, tudor, seiko, tag-heuer.

Limitations (read before buying)

  • Field coverage varies by watch. WatchBase's data depth differs by reference (a current Rolex has more fields than a 1960s vintage piece); missing fields are null, not fabricated.
  • specs keys vary slightly across watches (e.g. Material vs Materials). The flattened top-level fields normalize the common cases; specs has the raw truth.
  • Discovery is brand → family → reference, WatchBase's own navigation. There is no keyword search input — this keeps the actor on stable, allowed content pages.
  • A full brand (e.g. Rolex, ~30 families × 100+ references each) can be several thousand records. Use maxItems to cap a run, or pass specific referenceUrls if you only need a handful.

FAQ

Do I need a WatchBase account or API key? No. The actor reads public reference pages only.

Is this allowed? The actor requests only public content pages, which WatchBase's robots.txt permits for standard browser traffic, at low volume. It collects factual product specifications — no personal data, no logged-in content.

What if a reference doesn't exist / the page is empty? You get a record with "error": "not_found" for that URL; the rest of the run continues.

Can I scrape just one specific watch instead of a whole brand? Yes — use referenceUrls with the exact WatchBase reference URL(s).

How many watches can I scrape? As many as exist for the brands you request. Use maxItems to cap large brands, and keep maxConcurrency modest (default 5).