{
  "id": "hodinkee-shop",
  "displayName": "HODINKEE Shop",
  "sourceId": "hodinkee-shop",
  "sourceName": "HODINKEE Shop",
  "sourceType": "dealer",
  "sourceUrl": "https://shop.hodinkee.com",
  "module": "api/hodinkee-shop",
  "enginePriority": [
    "api"
  ],
  "categories": [
    "rolex",
    "omega",
    "patek_philippe",
    "audemars_piguet",
    "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": 1440,
  "priority": "medium",
  "trustScore": 0.75,
  "attributionRequired": true,
  "termsUrl": "https://shop.hodinkee.com/policies/terms-of-service",
  "accessNotes": "HODINKEE Shop (shop.hodinkee.com) is a Shopify shop; we read only the public, unauthenticated storefront JSON the shop serves to every visitor: /collections/<handle>/products.json?limit=250&page=N for the configured collections and /products/<handle>.json for URL lookups (vintage-watches, vintage-rolex, rolex-brand, omega-brand, vintage-omega-watches, cartier-brand, grand-seiko-brand, vintage-patek-philippe, vintage-audemars-piguet-watches, vintage-tudor-watches, vintage-tag-heuer-watches, vintage-universal-geneve-watches, vintage-zenith-watches, vintage-vacheron-constantin-watches, pre-owned-new-additions, dress-watches, chronograph-watches, aviation-watches, avant-garde-watches). robots.txt (checked 2026-09-08) is the standard Shopify file: for User-agent * it disallows /admin, /cart, /orders, /checkout(s), /carts, /account, /search, /policies, /recommendations/products, sort_by / filter / \"+\" collection permutations, preview_theme_id, oseid, the -remote product variants and /cdn/wpm; it blocks AhrefsBot, AhrefsSiteAudit, MJ12bot, Bytespider, Nutch and Pinterest entirely. The /collections/<handle>/products.json and /products/<handle>.json endpoints we read are not disallowed. Rate: 1 request per 1.5 s, one connection (connectors/domains.d/g4-shops-intl.json), honest RareIndexBot UA, once a day, 3 pages per collection per incremental run (backfill bounded by backfillMaxPages). Prices are the base currency USD (/meta.json currency USD, Shopify.currency rate 1.0). Sold vintage/pre-owned pieces stay published as out-of-stock products, so most watch listings arrive as availability \"ended\" with their last asking price — useful price history, but never treated as a realised sale. Only products whose product_type is \"Watches : …\" or \"… : New Watch\" are mapped; everything else in a watch collection (straps, pouches, books) is skipped. Dealer asking prices are stored as listings, never as sales (SPEC §111); out-of-stock variants are kept as ended listings for price-history audit. Deliberately not fetched: cart/checkout/account pages, customer names, reviews or any personal data, search and sort/filter permutations (robots-disallowed), /recommendations, blog pages, and images beyond the URLs already present in the JSON.",
  "enabled": true,
  "schemaVersion": "1.0",
  "acquisitionMethod": "Shopify storefront products.json (public JSON)",
  "historicalDepth": "none",
  "requires": [],
  "config": {
    "currency": "USD",
    "seller": "HODINKEE Shop",
    "location": null,
    "collections": [
      {
        "handle": "vintage-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-rolex",
        "categorySlug": null
      },
      {
        "handle": "rolex-brand",
        "categorySlug": null
      },
      {
        "handle": "omega-brand",
        "categorySlug": null
      },
      {
        "handle": "vintage-omega-watches",
        "categorySlug": null
      },
      {
        "handle": "cartier-brand",
        "categorySlug": null
      },
      {
        "handle": "grand-seiko-brand",
        "categorySlug": null
      },
      {
        "handle": "vintage-patek-philippe",
        "categorySlug": null
      },
      {
        "handle": "vintage-audemars-piguet-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-tudor-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-tag-heuer-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-universal-geneve-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-zenith-watches",
        "categorySlug": null
      },
      {
        "handle": "vintage-vacheron-constantin-watches",
        "categorySlug": null
      },
      {
        "handle": "pre-owned-new-additions",
        "categorySlug": null
      },
      {
        "handle": "dress-watches",
        "categorySlug": null
      },
      {
        "handle": "chronograph-watches",
        "categorySlug": null
      },
      {
        "handle": "aviation-watches",
        "categorySlug": null
      },
      {
        "handle": "avant-garde-watches",
        "categorySlug": null
      }
    ],
    "rules": [
      {
        "match": "^(?=.*(?:Watches : |New Watch))(?=.*\\brolex\\b)",
        "categorySlug": "rolex",
        "brand": "Rolex"
      },
      {
        "match": "^(?=.*(?:Watches : |New Watch))(?=.*\\bomega\\b)",
        "categorySlug": "omega",
        "brand": "Omega"
      },
      {
        "match": "^(?=.*(?:Watches : |New Watch))(?=.*patek)",
        "categorySlug": "patek_philippe",
        "brand": "Patek Philippe"
      },
      {
        "match": "^(?=.*(?:Watches : |New Watch))(?=.*(audemars|royal oak))",
        "categorySlug": "audemars_piguet",
        "brand": "Audemars Piguet"
      },
      {
        "match": "Watches : |New Watch",
        "categorySlug": "other_watches"
      }
    ],
    "defaultCategory": null,
    "exclude": "apple watch|smartwatch|gift card|\\bstraps?\\b(?!.*Watches :)|watch roll|pouch|travel case|storage|tool kit|spring bar|magazine|\\bbook\\b|assouline|\\bpen\\b|candle|umbrella|t-shirt|\\bcap\\b|\\bhat\\b|\\bbag\\b|wallet|notebook|puzzle|blanket|glass\\b|loupe|winder|cufflink|sunglasses|camera|leica|\\bfilm\\b|poster|\\bprint\\b|bundle",
    "keepOutOfStock": true,
    "titlePattern": "^(?<name>.+?) Ref\\.? (?<number>[\\w./-]+)",
    "pageSize": 250,
    "fetchBarcodes": false,
    "wholeShop": false
  }
}
