TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1{2 "id": "hodinkee-shop",3 "displayName": "HODINKEE Shop",4 "sourceId": "hodinkee-shop",5 "sourceName": "HODINKEE Shop",6 "sourceType": "dealer",7 "sourceUrl": "https://shop.hodinkee.com",8 "module": "api/hodinkee-shop",9 "enginePriority": [10 "api"11 ],12 "categories": [13 "rolex",14 "omega",15 "patek_philippe",16 "audemars_piguet",17 "other_watches"18 ],19 "regions": [20 "US"21 ],22 "country": "US",23 "languages": [24 "en"25 ],26 "currency": [27 "USD"28 ],29 "supportsListings": true,30 "supportsSold": false,31 "supportsAuctions": false,32 "supportsImages": true,33 "supportsCatalog": false,34 "supportsPopulation": false,35 "supportsLookup": true,36 "refreshFrequencyMinutes": 1440,37 "priority": "medium",38 "trustScore": 0.75,39 "attributionRequired": true,40 "termsUrl": "https://shop.hodinkee.com/policies/terms-of-service",41 "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.",42 "enabled": true,43 "schemaVersion": "1.0",44 "acquisitionMethod": "Shopify storefront products.json (public JSON)",45 "historicalDepth": "none",46 "requires": [],47 "config": {48 "currency": "USD",49 "seller": "HODINKEE Shop",50 "location": null,51 "collections": [52 {53 "handle": "vintage-watches",54 "categorySlug": null55 },56 {57 "handle": "vintage-rolex",58 "categorySlug": null59 },60 {61 "handle": "rolex-brand",62 "categorySlug": null63 },64 {65 "handle": "omega-brand",66 "categorySlug": null67 },68 {69 "handle": "vintage-omega-watches",70 "categorySlug": null71 },72 {73 "handle": "cartier-brand",74 "categorySlug": null75 },76 {77 "handle": "grand-seiko-brand",78 "categorySlug": null79 },80 {81 "handle": "vintage-patek-philippe",82 "categorySlug": null83 },84 {85 "handle": "vintage-audemars-piguet-watches",86 "categorySlug": null87 },88 {89 "handle": "vintage-tudor-watches",90 "categorySlug": null91 },92 {93 "handle": "vintage-tag-heuer-watches",94 "categorySlug": null95 },96 {97 "handle": "vintage-universal-geneve-watches",98 "categorySlug": null99 },100 {101 "handle": "vintage-zenith-watches",102 "categorySlug": null103 },104 {105 "handle": "vintage-vacheron-constantin-watches",106 "categorySlug": null107 },108 {109 "handle": "pre-owned-new-additions",110 "categorySlug": null111 },112 {113 "handle": "dress-watches",114 "categorySlug": null115 },116 {117 "handle": "chronograph-watches",118 "categorySlug": null119 },120 {121 "handle": "aviation-watches",122 "categorySlug": null123 },124 {125 "handle": "avant-garde-watches",126 "categorySlug": null127 }128 ],129 "rules": [130 {131 "match": "^(?=.*(?:Watches : |New Watch))(?=.*\\brolex\\b)",132 "categorySlug": "rolex",133 "brand": "Rolex"134 },135 {136 "match": "^(?=.*(?:Watches : |New Watch))(?=.*\\bomega\\b)",137 "categorySlug": "omega",138 "brand": "Omega"139 },140 {141 "match": "^(?=.*(?:Watches : |New Watch))(?=.*patek)",142 "categorySlug": "patek_philippe",143 "brand": "Patek Philippe"144 },145 {146 "match": "^(?=.*(?:Watches : |New Watch))(?=.*(audemars|royal oak))",147 "categorySlug": "audemars_piguet",148 "brand": "Audemars Piguet"149 },150 {151 "match": "Watches : |New Watch",152 "categorySlug": "other_watches"153 }154 ],155 "defaultCategory": null,156 "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",157 "keepOutOfStock": true,158 "titlePattern": "^(?<name>.+?) Ref\\.? (?<number>[\\w./-]+)",159 "pageSize": 250,160 "fetchBarcodes": false,161 "wholeShop": false162 }163}164