Bob's Watches Listings Scraper avatar

Bob's Watches Listings Scraper

Pricing

Pay per event

Go to Apify Store
Bob's Watches Listings Scraper

Bob's Watches Listings Scraper

โŒš Scrape public Bob's Watches listings for Rolex prices, availability, references, images, SKUs, and product URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape public Bob's Watches luxury watch listings for pricing, availability, model references, images, and product URLs. Use it to monitor Rolex inventory, compare resale pricing, and export clean ecommerce product data from Bob's Watches category pages.

What does Bob's Watches Listings Scraper do?

Bob's Watches Listings Scraper extracts structured product data from public pages on bobswatches.com. It is built for category pages such as Rolex, Submariner, Daytona, Datejust, GMT-Master, and filtered Bob's Watches inventory pages. The actor reads the static HTML and schema.org Product data available in the page response, so it does not need a browser for the MVP.

Who is it for?

  • โŒš Watch dealers tracking comparable inventory.
  • ๐Ÿ“ˆ Resale analysts monitoring public luxury-watch prices.
  • ๐Ÿ›’ Ecommerce teams comparing used Rolex product listings.
  • ๐Ÿ”Ž Market researchers building watch-reference datasets.
  • ๐Ÿงพ Operators who need repeatable exports for spreadsheets, BI tools, or alerts.

Why use this actor?

Bob's Watches exposes useful public product metadata, but manually checking pages is slow. This actor turns those pages into a dataset with product URL, name, price, currency, availability, condition, reference number, SKU, image URL, and scrape timestamp.

Data you can extract

FieldDescription
nameProduct listing name
priceNumeric listing price when available
priceCurrencyCurrency code from the product offer
availabilityIn-stock status from schema.org
conditionUsed/pre-owned condition metadata
brandBrand inferred or provided by structured data
referenceNumberReference / MPN when present
skuBob's Watches SKU
productIdBob's Watches product identifier
imageUrlPrimary product image URL
productUrlAbsolute product URL
sourceUrlCategory or page URL where the item was found
scrapedAtISO timestamp for monitoring workflows

How much does it cost to scrape Bob's Watches listings?

This actor uses pay-per-event pricing. You pay a small start fee and a per-listing result fee. The input prefill is intentionally small, so your first run is cheap. Exact live prices are shown on the Apify Store page before you run the actor.

Input

The actor accepts Bob's Watches start URLs and simple limits.

{
"startUrls": [{ "url": "https://www.bobswatches.com/rolex/" }],
"maxItems": 25,
"maxPagesPerUrl": 2
}

Output

Each dataset item represents one watch listing or product.

{
"name": "Used Rolex Submariner Starbucks ref 126610LV Green Bezel",
"price": 16995,
"priceCurrency": "USD",
"availability": "InStock",
"condition": "UsedCondition",
"referenceNumber": "126610LV",
"productUrl": "https://www.bobswatches.com/used-rolex-submariner-starbucks-ref-126610lv-green-bezel.html"
}

How to run

  1. Open the actor on Apify.
  2. Add one or more Bob's Watches category or product URLs.
  3. Set maxItems to the number of listings you need.
  4. Set maxPagesPerUrl if you want pagination.
  5. Start the run and export the dataset as JSON, CSV, Excel, or through the API.
  • https://www.bobswatches.com/rolex/
  • https://www.bobswatches.com/rolex-submariner-1.html
  • https://www.bobswatches.com/rolex-daytona-1.html
  • https://www.bobswatches.com/rolex-datejust-1.html
  • https://www.bobswatches.com/rolex-gmt-master-1.html

Tips for reliable runs

  • Start with a low maxItems value to validate your target page.
  • Use category pages for broad inventory monitoring.
  • Use filtered category URLs when you only need one model, material, or reference family.
  • Keep maxPagesPerUrl modest for frequent monitoring jobs.
  • Store the dataset between runs if you want to compare price changes.

Integrations

You can connect the output to:

  • Google Sheets or Excel for price trackers.
  • Airtable for dealer inventory research.
  • BI dashboards for market trends.
  • Webhooks for inventory alerts.
  • Your own backend through the Apify API.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/bobs-watches-listings-scraper').call({
startUrls: [{ url: 'https://www.bobswatches.com/rolex/' }],
maxItems: 25,
maxPagesPerUrl: 2,
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/bobs-watches-listings-scraper').call(run_input={
'startUrls': [{'url': 'https://www.bobswatches.com/rolex/'}],
'maxItems': 25,
'maxPagesPerUrl': 2,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~bobs-watches-listings-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://www.bobswatches.com/rolex/"}],"maxItems":25,"maxPagesPerUrl":2}'

MCP usage

Use this actor from Claude Code or Claude Desktop through Apify MCP:

https://mcp.apify.com/?tools=automation-lab/bobs-watches-listings-scraper

Add the MCP server in Claude Code:

$claude mcp add apify-bobs-watches "https://mcp.apify.com/?tools=automation-lab/bobs-watches-listings-scraper"

Claude Desktop JSON configuration example:

{
"mcpServers": {
"apify-bobs-watches": {
"url": "https://mcp.apify.com/?tools=automation-lab/bobs-watches-listings-scraper"
}
}
}

Example prompts:

  • "Run Bob's Watches Listings Scraper for the Rolex category and summarize the lowest priced watches."
  • "Export Bob's Watches Submariner listings and identify references under $20,000."
  • "Compare today's Bob's Watches Rolex inventory with yesterday's dataset."

Legality and data source notes

This actor scrapes public web pages. It does not log in, bypass authentication, or access private account data. You are responsible for using the output in accordance with applicable laws, Bob's Watches terms, and your own compliance requirements.

Troubleshooting

If a run returns fewer listings than expected, check whether the selected category has fewer public products or reduce filters on the Bob's Watches URL. If a URL fails, verify that it opens publicly in a browser and starts with https://www.bobswatches.com/.

FAQ

Does it require a Bob's Watches account?

No. The actor uses public category and product pages.

Does it scrape sold listings?

The MVP focuses on public available product listings exposed on category and product pages. If Bob's Watches changes sold-listing visibility, test a sold URL before relying on it.

Can it monitor prices over time?

Yes. Schedule runs and compare price, productUrl, sku, and scrapedAt across datasets.

Can I scrape all Rolex models?

Yes, start with the main Rolex category and increase maxItems and maxPagesPerUrl as needed.

Explore related actors from Automation Lab:

Changelog

Initial build extracts Bob's Watches listing-level Product JSON-LD with price, availability, condition, reference, SKU, image, source URL, and scrape timestamp.

Support

If you need a field that is visible on Bob's Watches but missing from the dataset, open an issue with a sample URL and the exact field name. Detail-page enrichment can be added in a later version if listing pages do not expose enough metadata.

Helpful issue details include:

  • The Bob's Watches URL you used.
  • The field you expected.
  • A screenshot or page label for that field.
  • Your run ID.
  • Whether the page is a category, filtered category, search page, or product page.