{
  "id": "european-watch-company",
  "displayName": "European Watch Company (Boston dealer — inventory)",
  "sourceId": "european-watch-company",
  "sourceName": "European Watch Company",
  "sourceType": "dealer",
  "sourceUrl": "https://www.europeanwatch.com",
  "module": "api/european-watch-company",
  "enginePriority": ["api", "firecrawl"],
  "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],
  "regions": ["US"],
  "country": "US",
  "languages": ["en"],
  "currency": ["USD"],
  "supportsListings": true,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": false,
  "supportsPopulation": false,
  "supportsLookup": true,
  "refreshFrequencyMinutes": 720,
  "priority": "medium",
  "trustScore": 0.8,
  "attributionRequired": true,
  "termsUrl": "https://www.europeanwatch.com/terms-and-conditions",
  "acquisitionMethod": "server-rendered inventory grid + schema.org Product JSON-LD, direct HTTP",
  "historicalDepth": "none",
  "accessNotes": "One request per run: the public inventory grid `/all` (≈5 MB, server-rendered, ~750 watches) gives brand + model title, USD asking price, status badge (In Stock / New Arrival / Sale Pending), image and product URL (`/watch/<slug>-<id>`); parsed with cheerio from the card markup, no JS. Product pages (schema.org Product with sku, mpn = reference, price, availability, condition) are fetched only for URL lookup. robots.txt disallows only /private/, /api/, /app/, /profile/ (verified 2026-09-08); the sitemap `sitemap-products.xml` mirrors the same 750 URLs. Asking prices are listings, never sales; 'Sale Pending' is kept as metadata. No account, cart or customer pages are touched. 3 s between requests, concurrency 1.",
  "enabled": true,
  "schemaVersion": "1.0",
  "requires": [],
  "config": {
    "pages": ["/all"]
  }
}
