{
  "id": "fanatics-collect",
  "displayName": "Fanatics Collect (sold results)",
  "sourceId": "fanatics-collect",
  "sourceName": "Fanatics Collect",
  "sourceType": "marketplace",
  "sourceUrl": "https://www.fanaticscollect.com",
  "module": "api/fanatics-collect",
  "enginePriority": ["api"],
  "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"],
  "regions": ["US"],
  "country": "US",
  "languages": ["en"],
  "currency": ["USD"],
  "supportsListings": false,
  "supportsSold": true,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": false,
  "supportsPopulation": false,
  "supportsLookup": true,
  "refreshFrequencyMinutes": 360,
  "priority": "high",
  "trustScore": 0.9,
  "attributionRequired": true,
  "termsUrl": "https://help.fanaticscollect.com/hc/en-us/articles/18433319094045-Terms-of-Use",
  "acquisitionMethod": "sitemap + embedded RSC JSON on public item pages",
  "historicalDepth": "years",
  "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.",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "pagesPerRun": 300,
    "probePages": 3
  }
}
