SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
6.2 KB · 164 lines json
Raw Blame History
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