WatchBase Scraper — Watch Reference Specs (Caliber, Case, Dial)
Pricing
from $6.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
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
specsobject with every field WatchBase publishes for that watch. - Reliable by design: reads only public WatchBase pages (allowed by its
robots.txtfor standard browser traffic), plain server-rendered HTML — no login, no JS rendering, no CAPTCHA farms.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
brands | array of strings | – | WatchBase 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. |
referenceUrls | array of strings | – | Optional. Specific https://watchbase.com/<brand>/<family>/<reference> URLs, instead of or alongside whole brands. |
maxItems | integer | 0 | Cap on total reference records returned across all brands. 0 = no limit. |
includeMovement | boolean | true | Include caliber name, caliber page URL and movement/complications text. |
includeCaseSpecs | boolean | true | Include case material, bezel, glass, back, shape, diameter, height, lug width, water resistance. |
includeDialSpecs | boolean | true | Include dial color, finish, indexes, hands. |
maxConcurrency | integer | 5 | Parallel requests. Keep low to stay polite to WatchBase. |
proxyConfiguration | object | Apify Proxy | Proxy 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
| Field | Description |
|---|---|
brand / family / reference | Brand name, model family (e.g. Daytona), and the manufacturer reference number. |
akaReference | Alternate reference number WatchBase lists (e.g. Rolex's M-prefixed full reference), if any. |
name | Full model name / dial description. |
produced | Production year or year range, as published (not always a clean single year). |
limited | Whether WatchBase flags this as a limited edition. |
caliber / caliberUrl / movement | Movement caliber name, WatchBase's caliber detail page, and the raw movement/complications text. |
material, bezel, glass, back, shape, diameterMm, heightMm, lugWidthMm, waterResistanceM | Case specifications. Not every field is published for every watch (older/rare references have thinner data); missing fields are null. |
dialColor, dialFinish, indexes, hands | Dial specifications. |
specs | Every 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). |
url | Canonical WatchBase reference URL. |
scrapedAt | ISO 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. specskeys vary slightly across watches (e.g.MaterialvsMaterials). The flattened top-level fields normalize the common cases;specshas 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
maxItemsto cap a run, or pass specificreferenceUrlsif 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).