{
  "id": "psa-cert",
  "displayName": "PSA cert verification",
  "sourceId": "psa",
  "sourceName": "PSA (Professional Sports Authenticator)",
  "sourceType": "grading_company",
  "sourceUrl": "https://www.psacard.com/cert",
  "module": "firecrawl/psa-cert",
  "enginePriority": ["firecrawl", "scrapfly"],
  "categories": ["pokemon", "magic_the_gathering", "yugioh", "one_piece_card_game", "disney_lorcana", "trading_cards", "baseball_cards", "basketball_cards", "football_cards", "hockey_cards", "soccer_cards", "other_sports_cards", "non_sport_cards", "sports_memorabilia", "autographs", "video_games", "comics", "coins"],
  "regions": ["US"],
  "languages": ["en"],
  "currency": ["USD"],
  "supportsListings": false,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": true,
  "supportsPopulation": true,
  "supportsLookup": true,
  "capabilities": ["cert_lookup", "grading_population", "catalog", "url_lookup", "images"],
  "refreshFrequencyMinutes": 10080,
  "priority": "high",
  "trustScore": 0.95,
  "attributionRequired": true,
  "termsUrl": "https://www.collectors.com/terms-of-use",
  "acquisitionMethod": "Firecrawl render of the public cert page (Scrapfly fallback)",
  "historicalDepth": "none",
  "accessNotes": "Reads ONLY the public certificate-verification page https://www.psacard.com/cert/<cert> (also accepts the /cert/<cert>/psa and /en-CA/cert/… variants) for cert numbers supplied as seeds, config.certs or through lookup(); the cert space is never enumerated. psacard.com answers plain HTTP (incl. robots.txt) with a Cloudflare managed-challenge 403, so the page is rendered by Firecrawl (1 credit, ~4 s wait) with Scrapfly as fallback — the exact page any visitor sees, no login. PSA's own text on that page grants access to the database 'for the sole purpose of confirming data regarding authenticated items with a particular certification number', which is what we do. Fields read: headline description, Item Information (cert, grade, label type, year, brand/title, subject, card number, category), the two cert images, the PSA Estimate (kept in metadata, never used as a sale) and the per-grade 'PSA Population' / 'PSA Pop Higher' counts shown on the page (emitted as a partial population_report with population_scope=grade_and_higher). The 'Sales of Similar Items' table (eBay sales of OTHER certs) is deliberately dropped. Deliberately NOT fetched: PSA APR, the population report at /pop (both behind a Collectors sign-in) and the Set Registry. A not-found cert yields zero records.",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "grader": "psa",
    "certs": ["69211238", "25724592"],
    "maxPerRun": 50
  }
}
