psa-cert — PSA certificate verification
Verifies PSA cert numbers against the public page https://www.psacard.com/cert/<cert> (Firecrawl render, Scrapfly
fallback; the site serves a Cloudflare challenge to plain HTTP). One request per cert — the cert space is never
enumerated. APR and the population report proper are login-gated and never touched.
- Input:
ctx.options.seeds(cert numbers orpsacard.com/cert/...URLs),config.certs, orlookup(url).certUrl(cert)builds the canonical verify URL;certFromUrl(url)accepts/cert/<n>,/cert/<n>/psa,/en-CA/cert/<n>. - Output:
catalog_item(description, set/brand, subject, card number, year, category, grade + qualifier,identifiers.psa_cert+psa_spec_id, cert images, PSA Estimate in metadata) and a partialpopulation_report(byGrade = { <grade>: n, higher: m },metadata.population_scope = grade_and_higher). - Not found → zero records, no throw.
- Fixtures:
data/fixtures/psa-cert/(live captures, trimmed<main>). Rebuild:pnpm tsx connectors/firecrawl/_g2-grading-lib/capture.ts psa-cert charizard-psa10=69211238 not-found=99999999.