Bob's Watches Pre-Owned Listings Scraper
Pricing
Pay per event
Bob's Watches Pre-Owned Listings Scraper
Scrapes certified pre-owned luxury watch listings from Bob's Watches — the largest US pre-owned Rolex dealer. Extracts brand, model, reference number, price, condition, materials, and availability across Rolex, Patek Philippe, AP, Omega, Cartier, and Tudor.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrapes certified pre-owned luxury watch listings from Bob's Watches — the largest US pre-owned Rolex dealer. Returns structured records including brand, model, reference number, price, condition, case material, and availability for listings across Rolex, Patek Philippe, Audemars Piguet, Omega, Cartier, and Tudor collections.
What it does
The scraper crawls Bob's Watches brand collection pages (e.g., /rolex/, /patek-philippe/) and extracts the full schema.org Product JSON-LD embedded in each listing card. Each page shows up to 45 watches; the scraper follows pagination automatically until maxItems is reached or the collection is exhausted.
No authentication, no CAPTCHA, no residential proxy required — the site serves complete product data in structured markup accessible via standard HTTP.
Use cases
- Dealer arbitrage — compare Bob's Watches retail asks against Chrono24, grey-market, and other dealer listings by reference number
- Insurance / appraisal comps — use price and condition fields as US certified retail reference data
- Inventory monitoring — track availability changes on specific references by scheduling regular runs
- Market research — analyze pricing trends across Rolex model lines, materials, and condition grades
Example output
{"listingId": "189935","title": "Used Yellow Gold Rolex Daytona ref 116518 Champagne Dial","brand": "Rolex","model": "Daytona","referenceNumber": "116518","priceUsd": 45995,"condition": "UsedCondition","caseMaterial": "Yellow Gold","availability": "InStock","productUrl": "https://www.bobswatches.com/used-yellow-gold-rolex-daytona-ref-116518-champagne-dial.html","imageUrls": "https://www.bobswatches.com/images/zUsed-Rolex-Daytona-116518-SKU189935.jpg","scrapedAt": "2026-06-11T03:53:46.848Z"}
Input
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | — | Maximum number of listings to return. Required. |
brands | array of strings | ["rolex"] | Brand collection slugs to scrape. Valid values: rolex, patek-philippe, audemars-piguet, omega, cartier, tudor. Pass an empty array to scrape all brands. |
Example input
{"maxItems": 500,"brands": ["rolex", "patek-philippe"]}
To scrape all available brands:
{"maxItems": 5000,"brands": []}
Output fields
| Field | Type | Description |
|---|---|---|
listingId | string | Bob's Watches internal listing / SKU identifier |
title | string | Full listing title |
brand | string | Watch brand (Rolex, Patek Philippe, etc.) |
model | string | Watch model line (Submariner, Daytona, Nautilus, etc.) |
referenceNumber | string | Manufacturer reference number / MPN (e.g., 116610LN) |
priceUsd | number | Listed retail price in USD |
condition | string | Item condition — UsedCondition or NewCondition |
caseMaterial | string | Case material or color (e.g., Stainless Steel, Yellow Gold) |
availability | string | Stock status — InStock or OutOfStock |
productUrl | string | Canonical listing URL on bobswatches.com |
imageUrls | string | Pipe-separated list of product image URLs |
scrapedAt | string | ISO-8601 scrape timestamp |
Notes
- The scraper respects Bob's Watches
robots.txtcrawl-delay directive and does not hammer the server. - Bob's Watches carries ~3,000–6,000 live listings across all supported brands. A full-catalog run with
maxItems: 10000andbrands: []will complete within the default timeout. - The
referenceNumberfield (MPN) is the key for cross-dealer arbitrage joins — it matches the standard Rolex reference format used by Chrono24, WatchBox, and other platforms.