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%
38.2 KB · 631 lines json
Raw Blame History
1[2  {3    "id": "yahoo-auctions-jp",4    "name": "Yahoo! Auctions Japan (ヤフオク!)",5    "domain": "auctions.yahoo.co.jp",6    "country": "JP",7    "supportedCountries": ["JP"],8    "languages": ["ja"],9    "sourceType": "marketplace",10    "categories": ["pokemon", "yugioh", "one_piece_card_game", "trading_cards", "rolex", "omega", "other_watches", "nike_jordan", "sneakers", "action_figures", "gundam", "nintendo_games", "designer_toys"],11    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "The Yahoo! Auctions Web API was retired in 2020; the public HTML pages embed pageData JSON (live) and Next.js state (closed)." },12    "urls": { "search": "https://auctions.yahoo.co.jp/search/search?p={q}&b={offset}", "product": "https://auctions.yahoo.co.jp/jp/auction/{id}", "sold": "https://auctions.yahoo.co.jp/closedsearch/closedsearch?p={q}&b={offset}", "sitemap": null, "robots": "https://auctions.yahoo.co.jp/robots.txt" },13    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "months", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },14    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "low", "cloudflare": false, "robots": "Allow /closedsearch/closedsearch explicitly; /search/*?*n=, *mode=, *s1=, *o1=, *min=/*max= and /closedsearch/*?*istatus= etc. disallowed → only p, auccat and b are sent. /user/, /seller/, /members/ disallowed and never fetched.", "rateLimit": "self-imposed 4 s / request", "preferredEngine": "api" },15    "currency": ["JPY"],16    "freshness": "realtime",17    "priority": "wave1",18    "difficulty": "medium",19    "reliability": 0.75,20    "legal": "LY Corporation terms of service; public pages only, honest UA, robots respected; seller names are masked by the site; no bidding/login.",21    "status": "implemented",22    "connectors": ["yahoo-auctions-jp"],23    "statusReason": null,24    "verified": true,25    "verifiedAt": "2026-09-08",26    "notes": "Plain HTTPS with the bot UA returned full pages (200, ~0.9 MB) for search, closed search and item pages. 6 711 live / 83 670 closed lots for 'ポケモンカード PSA10'. Closed pages beyond the site window: see aucfree."27  },28  {29    "id": "buyee",30    "name": "Buyee (proxy shopping for Yahoo! Auctions / Mercari)",31    "domain": "buyee.jp",32    "country": "JP",33    "languages": ["en", "ja"],34    "sourceType": "marketplace",35    "categories": ["trading_cards", "action_figures", "watches"],36    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },37    "urls": { "search": "https://buyee.jp/item/search/query/{q}", "product": "https://buyee.jp/item/yahoo/auction/{id}", "sold": null, "sitemap": null, "robots": "https://buyee.jp/robots.txt" },38    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },39    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "high", "cloudflare": true, "robots": "robots.txt itself returns 403 to the bot UA", "rateLimit": null, "preferredEngine": "none" },40    "currency": ["JPY"],41    "freshness": "realtime",42    "priority": "later",43    "difficulty": "hard",44    "reliability": 0.5,45    "legal": null,46    "status": "rejected",47    "connectors": [],48    "statusReason": "Adds no access: Yahoo! Auctions serves its public pages directly to the bot UA (yahoo-auctions-jp). Buyee returns 403 to non-browser clients (even /robots.txt) and only mirrors Yahoo/Mercari items with a proxy fee.",49    "verified": true,50    "verifiedAt": "2026-09-08",51    "notes": null52  },53  {54    "id": "mercari-jp",55    "name": "Mercari Japan (メルカリ)",56    "domain": "jp.mercari.com",57    "country": "JP",58    "languages": ["ja", "en"],59    "sourceType": "marketplace",60    "categories": ["pokemon", "trading_cards", "action_figures", "sneakers", "watches"],61    "api": { "available": false, "docsUrl": null, "auth": "partner", "notes": "api.mercari.jp/v2/entities:search requires app-signed (DPoP) requests; unsigned calls return UnsupportedVersionException." },62    "urls": { "search": "https://jp.mercari.com/search?keyword={q}", "product": "https://jp.mercari.com/item/{id}", "sold": null, "sitemap": null, "robots": "https://jp.mercari.com/robots.txt" },63    "data": { "liveListings": true, "soldResults": true, "auctionResults": false, "historical": "months" },64    "access": { "pagination": "cursor", "jsRendering": true, "antiBot": "high", "cloudflare": false, "robots": "Disallows /v1/ and /v2/ (the API paths) plus account pages; search HTML allowed but is an empty SPA shell.", "rateLimit": null, "preferredEngine": "none" },65    "currency": ["JPY"],66    "freshness": "realtime",67    "priority": "wave1",68    "difficulty": "very_hard",69    "reliability": 0.7,70    "legal": "Mercari terms prohibit unauthorised automated access; API requires signed requests → circumvention would be needed.",71    "status": "blocked",72    "connectors": [],73    "statusReason": "Search HTML is a JS shell with zero item data (verified: 0 titles server-side); the JSON API needs DPoP-signed headers generated by the app (robots also disallows /v1/, /v2/). Sold prices are therefore not lawfully reachable without circumvention.",74    "verified": true,75    "verifiedAt": "2026-09-08",76    "notes": "Rakuma (fril.jp) checked too: robots.txt disallows /search/ with any parameter and every category/brand filter → no discovery path; rejected separately."77  },78  {79    "id": "rakuma",80    "name": "Rakuma (ラクマ, Rakuten flea market)",81    "domain": "fril.jp",82    "country": "JP",83    "languages": ["ja"],84    "sourceType": "marketplace",85    "categories": ["pokemon", "trading_cards", "sneakers", "watches"],86    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },87    "urls": { "search": "https://fril.jp/s?query={q}", "product": "https://item.fril.jp/{id}", "sold": null, "sitemap": null, "robots": "https://fril.jp/robots.txt" },88    "data": { "liveListings": true, "soldResults": true, "auctionResults": false, "historical": "none" },89    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "medium", "cloudflare": false, "robots": "Disallow /search/ (only /search/$ allowed) and every filter/sort/category/brand query parameter.", "rateLimit": null, "preferredEngine": "none" },90    "currency": ["JPY"],91    "freshness": "realtime",92    "priority": "later",93    "difficulty": "hard",94    "reliability": 0.6,95    "legal": null,96    "status": "rejected",97    "connectors": [],98    "statusReason": "robots.txt forbids every search/browse path with parameters, leaving no compliant discovery route to listings.",99    "verified": true,100    "verifiedAt": "2026-09-08",101    "notes": null102  },103  {104    "id": "rakuten-ichiba",105    "name": "Rakuten Ichiba (楽天市場) — Item Search API",106    "domain": "openapi.rakuten.co.jp",107    "country": "JP",108    "languages": ["ja"],109    "sourceType": "marketplace",110    "categories": ["pokemon", "yugioh", "one_piece_card_game", "trading_cards", "rolex", "omega", "other_watches", "nike_jordan", "sneakers", "gundam", "action_figures", "nintendo_games", "lego_sets"],111    "api": { "available": true, "docsUrl": "https://webservice.rakuten.co.jp/documentation/ichiba-item-search", "auth": "api_key", "notes": "Free application id; since API version 2026-07-01 an access key is also required (applicationId + accessKey). 1 request/s. JSON, formatVersion=2 recommended. Unauthenticated calls → 401 invalid_token." },112    "urls": { "search": "https://openapi.rakuten.co.jp/ichibams/api/IchibaItem/Search/20260701?applicationId=…&accessKey=…&keyword={q}", "product": "https://item.rakuten.co.jp/{shop}/{item}/", "sold": null, "sitemap": null, "robots": null },113    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "seller": true, "gtin": false },114    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "n/a (official API)", "rateLimit": "1 req/s per application id", "preferredEngine": "api" },115    "currency": ["JPY"],116    "freshness": "realtime",117    "priority": "wave2",118    "difficulty": "easy",119    "reliability": 0.75,120    "legal": "Rakuten Web Service terms: attribution required, 1 req/s, no redistribution of raw data beyond permitted use.",121    "status": "gated",122    "connectors": ["rakuten-ichiba"],123    "statusReason": "Needs RAKUTEN_APP_ID (+ RAKUTEN_ACCESS_KEY for new apps). Connector implemented against the documented response shape; fixture built from the documentation.",124    "verified": true,125    "verifiedAt": "2026-09-08",126    "notes": "Legacy endpoint app.rakuten.co.jp/services/api/IchibaItem/Search/20220601 still answers (401 without key) and is used when only an application id is available."127  },128  {129    "id": "yahoo-shopping-jp",130    "name": "Yahoo! Shopping Japan — itemSearch V3 API",131    "domain": "shopping.yahooapis.jp",132    "country": "JP",133    "languages": ["ja"],134    "sourceType": "marketplace",135    "categories": ["pokemon", "yugioh", "one_piece_card_game", "trading_cards", "rolex", "omega", "other_watches", "nike_jordan", "adidas_yeezy", "sneakers", "gundam", "action_figures", "nintendo_games", "lego_sets"],136    "api": { "available": true, "docsUrl": "https://developer.yahoo.co.jp/webapi/shopping/v3/itemsearch.html", "auth": "api_key", "notes": "Free Yahoo! JAPAN Client ID (appid). 50 results/page, start+results ≤ 1000, 1 query/s (429 beyond). Returns JAN codes, new/used condition, store, brand, genre." },137    "urls": { "search": "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch?appid=…&query={q}", "product": "https://store.shopping.yahoo.co.jp/{store}/{code}.html", "sold": null, "sitemap": null, "robots": null },138    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "seller": true, "gtin": true },139    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "n/a (official API)", "rateLimit": "1 query/s", "preferredEngine": "api" },140    "currency": ["JPY"],141    "freshness": "realtime",142    "priority": "wave2",143    "difficulty": "easy",144    "reliability": 0.75,145    "legal": "Yahoo! JAPAN Web API guidelines: credit display required; commercial use per guidelines.",146    "status": "gated",147    "connectors": ["yahoo-shopping-jp"],148    "statusReason": "Needs YAHOO_JP_APP_ID. Connector implemented against the documented response; fixture is the documentation's sample response.",149    "verified": true,150    "verifiedAt": "2026-09-08",151    "notes": "Unauthenticated call verified → 401 'Authentication parameters in your request incompleted'."152  },153  {154    "id": "snkrdunk",155    "name": "SNKRDUNK (スニーカーダンク)",156    "domain": "snkrdunk.com",157    "country": "JP",158    "languages": ["ja", "en"],159    "sourceType": "marketplace",160    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "pokemon", "trading_cards"],161    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "The SPA loads prices from /en/v1/* JSON endpoints." },162    "urls": { "search": null, "product": "https://snkrdunk.com/en/sneakers/{styleCode} · https://snkrdunk.com/en/trading-cards/{id}", "sold": null, "sitemap": "https://snkrdunk.com/en/sitemap/sitemap-index-en-product-sneaker.xml", "robots": "https://snkrdunk.com/robots.txt" },163    "data": { "liveListings": true, "soldResults": true, "auctionResults": false, "historical": "months" },164    "access": { "pagination": "sitemap", "jsRendering": true, "antiBot": "low", "cloudflare": false, "robots": "Disallow: /en/v1/* — the only place prices live. Product HTML (200) contains title/og tags but no price.", "rateLimit": null, "preferredEngine": "none" },165    "currency": ["JPY"],166    "freshness": "realtime",167    "priority": "wave2",168    "difficulty": "hard",169    "reliability": 0.7,170    "legal": null,171    "status": "blocked",172    "connectors": [],173    "statusReason": "Product pages are server-rendered without any price (verified on /en/sneakers/019332 and /en/trading-cards/843266); prices come from /en/v1/* which robots.txt disallows. Sitemaps (5 sneaker + 9 card shards) exist but yield only URLs/titles.",174    "verified": true,175    "verifiedAt": "2026-09-08",176    "notes": "Would be a strong JP sneaker + card source (lowest ask, recent sales) if SNKRDUNK ever opens the API or robots."177  },178  {179    "id": "ruten",180    "name": "Ruten (露天拍賣)",181    "domain": "ruten.com.tw",182    "country": "TW",183    "languages": ["zh"],184    "sourceType": "marketplace",185    "categories": ["pokemon", "one_piece_card_game", "yugioh", "trading_cards", "rolex", "other_watches", "nike_jordan", "sneakers", "action_figures", "gundam", "nintendo_games", "designer_toys"],186    "api": { "available": true, "docsUrl": null, "auth": "none", "notes": "Undocumented but public JSON used by the site: rtapi search (ids + TotalRows) and rapi items/v2/list (details, ≤ 30 ids)." },187    "urls": { "search": "https://rtapi.ruten.com.tw/api/search/v3/index.php/core/prod?q={q}&type=direct&sort=rnk/dc&offset={n}&limit=30", "product": "https://www.ruten.com.tw/item/show?{id}", "sold": null, "sitemap": null, "robots": "https://www.ruten.com.tw/robots.txt" },188    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "seller": true },189    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "www: /item/show? and /search/*.php disallowed (not fetched); rtapi: Allow / except /api/gsa/ and /api/feedback/; rapi: no robots.txt (404).", "rateLimit": "self-imposed 2 s", "preferredEngine": "api" },190    "currency": ["TWD"],191    "freshness": "realtime",192    "priority": "wave2",193    "difficulty": "easy",194    "reliability": 0.65,195    "legal": "Public storefront data only; sold_num is an aggregate counter (kept as metadata, never a sale).",196    "status": "implemented",197    "connectors": ["ruten"],198    "statusReason": null,199    "verified": true,200    "verifiedAt": "2026-09-08",201    "notes": "75 130 results for '寶可夢 PSA10'; item JSON carries TWD price, stock, post/update time, storefront name, images."202  },203  {204    "id": "shopee-tw",205    "name": "Shopee Taiwan (蝦皮購物)",206    "domain": "shopee.tw",207    "country": "TW",208    "languages": ["zh"],209    "sourceType": "marketplace",210    "categories": ["trading_cards", "sneakers", "action_figures"],211    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "api/v4/search/search_items answers 403 without browser fingerprint headers." },212    "urls": { "search": "https://shopee.tw/search?keyword={q}", "product": null, "sold": null, "sitemap": null, "robots": "https://shopee.tw/robots.txt" },213    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },214    "access": { "pagination": "offset", "jsRendering": true, "antiBot": "blocking", "cloudflare": false, "robots": "Crawl-delay 1 for *, search filters disallowed", "rateLimit": null, "preferredEngine": "none" },215    "currency": ["TWD"],216    "freshness": "realtime",217    "priority": "later",218    "difficulty": "very_hard",219    "reliability": 0.5,220    "legal": null,221    "status": "blocked",222    "connectors": [],223    "statusReason": "Anti-bot: JSON search endpoint returns 403 to non-browser clients; the site is a JS shell. Not retried.",224    "verified": true,225    "verifiedAt": "2026-09-08",226    "notes": null227  },228  {229    "id": "carousell",230    "name": "Carousell (SG / HK)",231    "domain": "carousell.sg",232    "country": "SG",233    "supportedCountries": ["SG", "HK", "MY", "PH"],234    "languages": ["en", "zh"],235    "sourceType": "marketplace",236    "categories": ["watches", "sneakers", "trading_cards"],237    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "api-service/filter/search/3.3/products/ is robots-allowed but answers 403 to the bot UA." },238    "urls": { "search": "https://www.carousell.sg/search/{q}", "product": "https://www.carousell.sg/p/{slug}", "sold": null, "sitemap": "https://www.carousell.sg/sitemap.xml", "robots": "https://www.carousell.sg/robots.txt" },239    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },240    "access": { "pagination": "cursor", "jsRendering": true, "antiBot": "high", "cloudflare": true, "robots": "Disallow /search/ and /*? for *; Allow /api-service/*? and /smart_render/*?", "rateLimit": null, "preferredEngine": "none" },241    "currency": ["SGD", "HKD"],242    "freshness": "realtime",243    "priority": "later",244    "difficulty": "very_hard",245    "reliability": 0.5,246    "legal": null,247    "status": "blocked",248    "connectors": [],249    "statusReason": "Search pages are robots-disallowed and the allowed api-service endpoint returns 403 (Cloudflare) to the bot UA.",250    "verified": true,251    "verifiedAt": "2026-09-08",252    "notes": null253  },254  {255    "id": "bunjang",256    "name": "Bunjang (번개장터)",257    "domain": "bunjang.co.kr",258    "country": "KR",259    "languages": ["ko"],260    "sourceType": "marketplace",261    "categories": ["pokemon", "yugioh", "one_piece_card_game", "trading_cards", "rolex", "other_watches", "nike_jordan", "adidas_yeezy", "sneakers", "action_figures", "gundam", "lego_sets", "designer_toys"],262    "api": { "available": true, "docsUrl": null, "auth": "none", "notes": "Undocumented public JSON used by m.bunjang.co.kr: api.bunjang.co.kr/api/1/find_v2.json (search, 100/page, 0-based) and /api/pms/v3/products-detail/{pid} (detail, not used)." },263    "urls": { "search": "https://api.bunjang.co.kr/api/1/find_v2.json?q={q}&order=date&page={n}&n=100", "product": "https://m.bunjang.co.kr/products/{pid}", "sold": null, "sitemap": null, "robots": "https://m.bunjang.co.kr/robots.txt" },264    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },265    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "m.bunjang.co.kr: Allow / for *, Disallow /login /apps /talk2; named AI-training bots disallowed. api host: 403 JSON for robots.txt (no rules).", "rateLimit": "self-imposed 2.5 s", "preferredEngine": "api" },266    "currency": ["KRW"],267    "freshness": "realtime",268    "priority": "wave2",269    "difficulty": "easy",270    "reliability": 0.6,271    "legal": "Terms page is a JS shell (not readable to the bot); public listing data only, no seller identifiers stored.",272    "status": "implemented",273    "connectors": ["bunjang"],274    "statusReason": null,275    "verified": true,276    "verifiedAt": "2026-09-08",277    "notes": "3 079 results for '포켓몬카드 PSA10'; rows carry KRW price, status, category id, tags, region label, favourites."278  },279  {280    "id": "kream",281    "name": "KREAM (크림, Naver)",282    "domain": "kream.co.kr",283    "country": "KR",284    "languages": ["ko"],285    "sourceType": "marketplace",286    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "new_balance_asics_other", "designer_toys", "trading_cards"],287    "api": { "available": false, "docsUrl": null, "auth": "partner", "notes": "api.kream.co.kr returns 403 unless the app's signed request headers (webRequestSecret) are sent." },288    "urls": { "search": "https://kream.co.kr/search?keyword={q}", "product": "https://kream.co.kr/products/{id}", "sold": null, "sitemap": "https://kream.co.kr/sitemap.xml", "robots": "https://kream.co.kr/robots.txt" },289    "data": { "liveListings": true, "soldResults": true, "auctionResults": false, "historical": "years" },290    "access": { "pagination": "cursor", "jsRendering": true, "antiBot": "medium", "cloudflare": false, "robots": "Allow / (disallow /my*, /history*, /bridge/)", "rateLimit": null, "preferredEngine": "none" },291    "currency": ["KRW"],292    "freshness": "realtime",293    "priority": "wave2",294    "difficulty": "very_hard",295    "reliability": 0.8,296    "legal": "이용약관 (/agreement) forbids abnormal use of the service functions via automated means; no explicit public-data crawling clause.",297    "status": "planned",298    "connectors": [],299    "statusReason": "Not implemented: the product API needs app-secret request headers (would be circumvention); the SSR HTML only exposes a Nuxt payload serialised as a JS function and an og:product:price meta whose meaning (last trade vs. lowest ask) is ambiguous — storing it would violate the data-honesty rule. Revisit if KREAM publishes a partner API.",300    "verified": true,301    "verifiedAt": "2026-09-08",302    "notes": "Product page /products/34586 carried product:price:amount 440000 KRW and '즉시 구매가 없음' (no instant-buy price) at the same time."303  },304  {305    "id": "watchcharts",306    "name": "WatchCharts",307    "domain": "watchcharts.com",308    "country": "US",309    "languages": ["en"],310    "sourceType": "analytics_provider",311    "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],312    "api": { "available": true, "docsUrl": "https://watchcharts.com/api", "auth": "partner", "notes": "Commercial data API (paid, partner agreement)." },313    "urls": { "search": null, "product": "https://watchcharts.com/watch_model/{id}", "sold": null, "sitemap": null, "robots": "https://watchcharts.com/robots.txt" },314    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "years" },315    "access": { "pagination": "none", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "Unreadable: /robots.txt itself returns 403 to the bot UA (as do / and /terms).", "rateLimit": null, "preferredEngine": "none" },316    "currency": ["USD"],317    "freshness": "daily",318    "priority": "wave2",319    "difficulty": "very_hard",320    "reliability": 0.85,321    "legal": "Terms could not be read (403); WatchCharts sells its market data commercially.",322    "status": "blocked",323    "connectors": [],324    "statusReason": "403 for every path with the honest UA (robots.txt, home, terms — re-verified 2026-09-08, also via Firecrawl → 404/403). Circumventing would require a browser fingerprint against an explicit block; market-index values are the company's paid product.",325    "verified": true,326    "verifiedAt": "2026-09-08",327    "notes": null328  },329  {330    "id": "loupe-this",331    "name": "Loupe This",332    "domain": "loupethis.com",333    "country": "US",334    "languages": ["en"],335    "sourceType": "auction_house",336    "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],337    "api": { "available": true, "docsUrl": null, "auth": "none", "notes": "Public JSON:API behind the site: api.loupethis.com/api/v1/auctions?status=closed|live&per_page=100&page=N&include=brand; meta.pagination gives total pages/count." },338    "urls": { "search": "https://api.loupethis.com/api/v1/auctions?status=closed&per_page=100&page={n}", "product": "https://loupethis.com/auctions/{slug}", "sold": "https://loupethis.com/results", "sitemap": null, "robots": "https://loupethis.com/robots.txt" },339    "data": { "liveListings": false, "soldResults": true, "auctionResults": true, "historical": "years", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": true, "grading": false, "certNumber": false, "itemId": true },340    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Disallow: (empty) on both loupethis.com and api.loupethis.com", "rateLimit": "self-imposed 1.5 s", "preferredEngine": "api" },341    "currency": ["USD"],342    "freshness": "realtime",343    "priority": "wave1",344    "difficulty": "easy",345    "reliability": 0.9,346    "legal": "Public auction results; sold price includes the 10 % buyer's premium (flagged). Bidder ids ignored.",347    "status": "implemented",348    "connectors": ["loupe-this"],349    "statusReason": null,350    "verified": true,351    "verifiedAt": "2026-09-08",352    "notes": "4 251 closed lots (43 pages) since 2021; ~30 live lots per week."353  },354  {355    "id": "chronext",356    "name": "CHRONEXT",357    "domain": "chronext.com",358    "country": "DE",359    "supportedCountries": ["DE", "GB", "US", "CH", "EU"],360    "languages": ["en", "de"],361    "sourceType": "dealer",362    "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],363    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Frontastic front end; pages return JSON when Accept: application/json is sent (not used). Category HTML is server-rendered with .product-tile elements; product pages carry schema.org Product." },364    "urls": { "search": "https://www.chronext.com/{brand}/{model}", "product": "https://www.chronext.com/{brand}/{model}/{reference}/V{id}", "sold": null, "sitemap": "https://www.chronext.com/sitemap.xml", "robots": "https://www.chronext.com/robots.txt" },365    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "seller": true },366    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Allow /; disallow checkout/cart/campaign and two-letter country prefixes", "rateLimit": "self-imposed 4 s (pages are ~3.7 MB)", "preferredEngine": "api" },367    "currency": ["USD", "EUR", "GBP", "CHF"],368    "freshness": "daily",369    "priority": "wave2",370    "difficulty": "easy",371    "reliability": 0.8,372    "legal": "Dealer asking prices, public pages, honest UA.",373    "status": "implemented",374    "connectors": ["chronext"],375    "statusReason": null,376    "verified": true,377    "verifiedAt": "2026-09-08",378    "notes": "Displayed currency follows the requester's geo (USD seen from North America) — stored as shown."379  },380  {381    "id": "european-watch-company",382    "name": "European Watch Company",383    "domain": "europeanwatch.com",384    "country": "US",385    "languages": ["en"],386    "sourceType": "dealer",387    "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],388    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Server-rendered Next.js inventory grid (/all) + schema.org Product on item pages; sitemap-products.xml lists the same ~750 URLs." },389    "urls": { "search": "https://www.europeanwatch.com/all", "product": "https://www.europeanwatch.com/watch/{slug}-{id}", "sold": null, "sitemap": "https://www.europeanwatch.com/sitemap-products.xml", "robots": "https://www.europeanwatch.com/robots.txt" },390    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "seller": true },391    "access": { "pagination": "none", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Allow /; disallow /private/ /api/ /app/ /profile/", "rateLimit": "self-imposed 3 s", "preferredEngine": "api" },392    "currency": ["USD"],393    "freshness": "daily",394    "priority": "wave2",395    "difficulty": "easy",396    "reliability": 0.8,397    "legal": "Dealer asking prices, public pages.",398    "status": "implemented",399    "connectors": ["european-watch-company"],400    "statusReason": null,401    "verified": true,402    "verifiedAt": "2026-09-08",403    "notes": "One ~5 MB page = whole inventory (750 watches)."404  },405  {406    "id": "wind-vintage",407    "name": "Wind Vintage",408    "domain": "windvintage.com",409    "country": "US",410    "languages": ["en"],411    "sourceType": "dealer",412    "categories": ["watches", "rolex", "other_watches"],413    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Squarespace site; /watch-listings?format=json-pretty works but is a blog collection with 3 posts." },414    "urls": { "search": "https://www.windvintage.com/watch-listings", "product": "https://www.windvintage.com/watch-listings/{slug}", "sold": null, "sitemap": "https://www.windvintage.com/sitemap.xml", "robots": "https://www.windvintage.com/robots.txt" },415    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },416    "access": { "pagination": "none", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Disallow /search, /config, /api/ (Squarespace default); AI-training bots disallowed", "rateLimit": null, "preferredEngine": "none" },417    "currency": ["USD"],418    "freshness": "weekly",419    "priority": "later",420    "difficulty": "medium",421    "reliability": 0.5,422    "legal": null,423    "status": "rejected",424    "connectors": [],425    "statusReason": "Inventory is 3 blog-style posts without structured prices (mostly sells by appointment); the 5 685-URL sitemap is editorial content. Not worth a connector.",426    "verified": true,427    "verifiedAt": "2026-09-08",428    "notes": null429  },430  {431    "id": "the1916company",432    "name": "The 1916 Company (WatchBox / Govberg)",433    "domain": "the1916company.com",434    "country": "US",435    "languages": ["en"],436    "sourceType": "dealer",437    "categories": ["watches", "rolex", "patek_philippe", "audemars_piguet", "omega", "other_watches"],438    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Salesforce Commerce Cloud storefront; /pre-owned-watches/rolex/ returns 404 for the bot UA; sitemaps list no product URLs." },439    "urls": { "search": null, "product": null, "sold": null, "sitemap": "https://www.the1916company.com/sitemap_index.xml", "robots": "https://www.the1916company.com/robots.txt" },440    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },441    "access": { "pagination": "unknown", "jsRendering": true, "antiBot": "medium", "cloudflare": true, "robots": "Disallow /search*, /api/*, ?q=, scroll/pmin/pmax params, demandware paths", "rateLimit": null, "preferredEngine": "none" },442    "currency": ["USD"],443    "freshness": "daily",444    "priority": "later",445    "difficulty": "hard",446    "reliability": 0.7,447    "legal": null,448    "status": "planned",449    "connectors": [],450    "statusReason": "No product sitemap (sitemap_0-pipeline/sitemap_1 hold 60 static pages) and the category URL returned 404 to the bot; inventory grid appears JS/API driven under /api/* (robots-disallowed). Needs a Scrapfly render experiment before deciding.",451    "verified": true,452    "verifiedAt": "2026-09-08",453    "notes": null454  },455  {456    "id": "restocks",457    "name": "Restocks",458    "domain": "restocks.net",459    "country": "NL",460    "languages": ["en", "nl", "de", "fr"],461    "sourceType": "marketplace",462    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "new_balance_asics_other"],463    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },464    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": "https://restocks.net/robots.txt" },465    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },466    "access": { "pagination": "unknown", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "unreachable", "rateLimit": null, "preferredEngine": "none" },467    "currency": ["EUR"],468    "freshness": "realtime",469    "priority": "later",470    "difficulty": "very_hard",471    "reliability": 0.6,472    "legal": null,473    "status": "blocked",474    "connectors": [],475    "statusReason": "TLS handshake rejected for the bot client (LibreSSL alert internal error on restocks.net and www) and Firecrawl scrape timed out — site unreachable to non-browser clients.",476    "verified": true,477    "verifiedAt": "2026-09-08",478    "notes": null479  },480  {481    "id": "wethenew",482    "name": "Wethenew",483    "domain": "wethenew.com",484    "country": "FR",485    "languages": ["fr", "en"],486    "sourceType": "marketplace",487    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "new_balance_asics_other"],488    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Shopify shop, but /products.json answers 403 to the bot UA." },489    "urls": { "search": null, "product": "https://wethenew.com/products/{handle}", "sold": null, "sitemap": null, "robots": "https://wethenew.com/robots.txt" },490    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },491    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "high", "cloudflare": true, "robots": "Standard Shopify robots (search, cart, sorted collections disallowed)", "rateLimit": null, "preferredEngine": "none" },492    "currency": ["EUR"],493    "freshness": "realtime",494    "priority": "later",495    "difficulty": "hard",496    "reliability": 0.65,497    "legal": null,498    "status": "blocked",499    "connectors": [],500    "statusReason": "Shopify storefront JSON (/products.json) returns 403 to the honest UA (bot protection); HTML home is 200 but products.json is the only structured route.",501    "verified": true,502    "verifiedAt": "2026-09-08",503    "notes": null504  },505  {506    "id": "kikikickz",507    "name": "Kikikickz",508    "domain": "kikikickz.com",509    "country": "FR",510    "languages": ["fr", "en"],511    "sourceType": "marketplace",512    "categories": ["sneakers", "nike_jordan", "adidas_yeezy"],513    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },514    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": "https://www.kikikickz.com/robots.txt" },515    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },516    "access": { "pagination": "unknown", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "unreachable (403)", "rateLimit": null, "preferredEngine": "none" },517    "currency": ["EUR"],518    "freshness": "realtime",519    "priority": "later",520    "difficulty": "very_hard",521    "reliability": 0.6,522    "legal": null,523    "status": "blocked",524    "connectors": [],525    "statusReason": "403 for the bot UA on every path including /robots.txt.",526    "verified": true,527    "verifiedAt": "2026-09-08",528    "notes": null529  },530  {531    "id": "sole-supplier",532    "name": "The Sole Supplier (Sole Market)",533    "domain": "thesolesupplier.co.uk",534    "country": "GB",535    "languages": ["en"],536    "sourceType": "analytics_provider",537    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "new_balance_asics_other"],538    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },539    "urls": { "search": null, "product": "https://thesolesupplier.co.uk/sole-market/{brand}/{model}/{slug}/", "sold": null, "sitemap": "https://thesolesupplier.co.uk/sitemaps/index.xml", "robots": "https://thesolesupplier.co.uk/robots.txt" },540    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },541    "access": { "pagination": "sitemap", "jsRendering": true, "antiBot": "low", "cloudflare": false, "robots": "Sole Market pages allowed at /sole-market/*/*/*/ but every filter (size, colour, sort, q, gender) disallowed", "rateLimit": null, "preferredEngine": "none" },542    "currency": ["GBP"],543    "freshness": "daily",544    "priority": "later",545    "difficulty": "medium",546    "reliability": 0.5,547    "legal": null,548    "status": "rejected",549    "connectors": [],550    "statusReason": "Affiliate aggregator of retailers' retail prices (not resale market data) — duplicates retailer feeds without adding transactions or asks.",551    "verified": true,552    "verifiedAt": "2026-09-08",553    "notes": null554  },555  {556    "id": "sneakers123",557    "name": "Sneakers123",558    "domain": "sneakers123.com",559    "country": "AT",560    "languages": ["en", "de", "ja"],561    "sourceType": "analytics_provider",562    "categories": ["sneakers", "nike_jordan", "adidas_yeezy", "new_balance_asics_other"],563    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },564    "urls": { "search": null, "product": null, "sold": null, "sitemap": "https://sneakers123.com/sitemap.xml", "robots": "https://www.sneakers123.com/robots.txt" },565    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none" },566    "access": { "pagination": "sitemap", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Allow / (search/sort/brand filters disallowed)", "rateLimit": null, "preferredEngine": "none" },567    "currency": ["EUR"],568    "freshness": "daily",569    "priority": "later",570    "difficulty": "medium",571    "reliability": 0.5,572    "legal": null,573    "status": "rejected",574    "connectors": [],575    "statusReason": "Retail price comparison of shop inventories (affiliate), not collectible resale/market data.",576    "verified": true,577    "verifiedAt": "2026-09-08",578    "notes": null579  },580  {581    "id": "sole-retriever",582    "name": "Sole Retriever",583    "domain": "soleretriever.com",584    "country": "US",585    "languages": ["en"],586    "sourceType": "analytics_provider",587    "categories": ["sneakers", "nike_jordan", "adidas_yeezy"],588    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },589    "urls": { "search": null, "product": null, "sold": null, "sitemap": "https://www.soleretriever.com/sitemap.xml", "robots": "https://www.soleretriever.com/robots.txt" },590    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "none" },591    "access": { "pagination": "sitemap", "jsRendering": true, "antiBot": "high", "cloudflare": true, "robots": "Allow /collections/*; disallow /api/*, /search?, user pages", "rateLimit": null, "preferredEngine": "none" },592    "currency": ["USD"],593    "freshness": "daily",594    "priority": "later",595    "difficulty": "hard",596    "reliability": 0.5,597    "legal": null,598    "status": "blocked",599    "connectors": [],600    "statusReason": "Release-date / raffle aggregator (no market prices) and the allowed /collections/* path returns 403 (Cloudflare) to the bot UA.",601    "verified": true,602    "verifiedAt": "2026-09-08",603    "notes": null604  },605  {606    "id": "watchuseek",607    "name": "WatchUSeek forums (sales corner)",608    "domain": "watchuseek.com",609    "country": "US",610    "languages": ["en"],611    "sourceType": "forum",612    "categories": ["watches"],613    "api": { "available": false, "docsUrl": null, "auth": "login", "notes": null },614    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": null },615    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "years" },616    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "medium", "cloudflare": true, "robots": null, "rateLimit": null, "preferredEngine": "none" },617    "currency": ["USD"],618    "freshness": "daily",619    "priority": "later",620    "difficulty": "hard",621    "reliability": 0.3,622    "legal": "User-generated forum posts with personal data (member names, PayPal details).",623    "status": "rejected",624    "connectors": [],625    "statusReason": "Forum classifieds: unstructured member posts with personal data, no reliable price/sale fields — out of scope per brief.",626    "verified": false,627    "verifiedAt": null,628    "notes": null629  }630]631