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%
2.7 KB · 37 lines json
Raw Blame History
1{2  "id": "fanatics-collect",3  "displayName": "Fanatics Collect (sold results)",4  "sourceId": "fanatics-collect",5  "sourceName": "Fanatics Collect",6  "sourceType": "marketplace",7  "sourceUrl": "https://www.fanaticscollect.com",8  "module": "api/fanatics-collect",9  "enginePriority": ["api"],10  "categories": ["baseball_cards", "basketball_cards", "football_cards", "hockey_cards", "soccer_cards", "other_sports_cards", "pokemon", "magic_the_gathering", "yugioh", "one_piece_card_game", "non_sport_cards", "sports_memorabilia"],11  "regions": ["US"],12  "country": "US",13  "languages": ["en"],14  "currency": ["USD"],15  "supportsListings": false,16  "supportsSold": true,17  "supportsAuctions": false,18  "supportsImages": true,19  "supportsCatalog": false,20  "supportsPopulation": false,21  "supportsLookup": true,22  "refreshFrequencyMinutes": 360,23  "priority": "high",24  "trustScore": 0.9,25  "attributionRequired": true,26  "termsUrl": "https://help.fanaticscollect.com/hc/en-us/articles/18433319094045-Terms-of-Use",27  "acquisitionMethod": "sitemap + embedded RSC JSON on public item pages",28  "historicalDepth": "years",29  "accessNotes": "Plain HTTPS with the RareIndex user agent (site is behind Cloudflare but serves the bot UA normally; no challenge seen). robots.txt (User-agent *) disallows only /login, /join, /i-am-not-a-robot, /share/ and /email/verify/* — none of which we touch. Discovery: /sitemap.xml (index) → sitemap/sales-history-weekly-auction-N.xml.gz and sitemap/sales-history-fixed-price-N.xml.gz (gzip url sets of ~50 000 URLs each with <lastmod>; 63 children in total, higher N = newer). Each public item page (/weekly/<uuid>, /fixed/<uuid>/<slug>) embeds the listing in its Next.js RSC payload (prefetchedItemData: title, listingType, status, bidCount, currentBid, collectSales[{soldDate, soldFor}], auction name/shortName/endsAt, lotString, images) plus a Product JSON-LD block; we read that HTML only — no GraphQL/API calls, no login, no bidding pages. A sale is recorded only when collectSales is non-empty; its soldFor INCLUDES the buyer's premium (observed: winning bid $230.00 → soldFor $276.00, +20 %), so buyerPremiumIncluded=true for auction listings with the hammer (currentBid) and derived premium % kept in metadata; fixed-price/best-offer sales have no premium concept (null). saleDate = collectSales.soldDate (never fetch time). Pages without a sale are skipped (anomaly if >30 % of a run). The Terms of Use are published on a client-rendered Zendesk page whose text is not readable over plain HTTP, so no automated-access clause could be verified — flagged here for legal review. 1.5 s politeness delay, 0 credits.",30  "enabled": true,31  "schemaVersion": "1.0",32  "config": {33    "pagesPerRun": 300,34    "probePages": 335  }36}37