OrbTop

Beckett Scraper - BGS Population Report & Online Price Guide

ECOMMERCEOTHER

Beckett BGS Population Report Scraper

Scrapes Beckett.com for BGS graded-card population data. Returns per-card grade counts — Pristine 10, Gem Mint 9.5, Mint 9, NM-Mint+ 8.5, and so on down to lower grades — plus cert-lookup mode for verifying individual BGS, BVG, or BCCG slabs by serial number.


Beckett BGS Population Report Scraper Features

  • Extracts the full BGS population table: grade-by-grade counts from Pristine 10 to lower grades for every card in a set
  • Filters by sport (Baseball, Basketball, Football, Hockey, Pokemon, and 30+ other categories), set name, and player
  • Returns the BGS-exclusive grade bands most scrapers ignore: 7, 7.5, 8, 8.5, 9, 9.5, Pristine 10, and Black Label 10
  • Cert Lookup mode verifies individual BGS / BVG / BCCG slabs by serial number
  • Respects maxItems so test runs stay cheap
  • No browser required. Beckett's pop-report serves results as server-rendered HTML — CheerioCrawler handles it

Who Uses BGS Population Data?

  • Slab investors — Track how many Pristine 10s exist for a specific parallel before bidding
  • Card dealers — Price slabs against the full grade distribution, not just the PSA pop equivalent
  • Set registry collectors — Identify low-pop cards in a set that are harder to complete than the checklist suggests
  • Market researchers — Compare BGS populations across years to find sets with constrained supply at high grades
  • Data aggregators — Join BGS pop data with PSA APR and CGC census for a complete graded-card supply picture

How Beckett BGS Population Report Scraper Works

  1. Submit the Beckett pop-report search form with your sport and set or player filter. The server returns a list of matching set pages.
  2. Cap the seed to a manageable number of sets based on your maxItems limit. No point crawling 3,000 sets when you want 50 records.
  3. Fetch each set's detail page. Each page contains the full population table — every card, every grade band, with first/last graded dates.
  4. Parse and save each card row as a structured record. Done.

Input

{
  "mode": "pop_report",
  "sport": "Baseball",
  "setName": "Topps Chrome",
  "playerName": "",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["DATACENTER"]
  }
}
Field Type Default Description
mode string pop_report pop_report for population data, cert_lookup for slab verification
sport string Baseball Sport filter — Baseball, Basketball, Football, Hockey, Pokemon, etc. Required for pop_report
sportId string `` Numeric Beckett sport ID (e.g. 185223 for Baseball). Overrides sport when set
setName string `` Keyword search for set name (Topps Chrome, Prizm, Pokemon Base)
playerName string `` Keyword search for player or card subject
certNumbers array `` List of cert serial numbers for cert_lookup mode
certType string BGS Grader for cert lookup: BGS, BVG, or BCCG
maxItems integer 10 Maximum card records to return. 0 = unlimited
proxyConfiguration object Datacenter Proxy settings — datacenter is sufficient

Cert Lookup mode:

{
  "mode": "cert_lookup",
  "certNumbers": ["0009876543", "0001234567"],
  "certType": "BGS",
  "maxItems": 0
}

Beckett BGS Population Report Scraper Output Fields

Population Report Mode

{
  "sport": "Baseball",
  "set_name": "2021 Topps Chrome",
  "set_year": 2021,
  "set_id": "5823401",
  "card_name": "Fernando Tatis Jr.",
  "card_number": "1",
  "player_or_subject": "Fernando Tatis Jr.",
  "total_graded": 482,
  "count_pristine_10": 4,
  "count_black_label_10": 0,
  "count_gem_mint_9_5": 187,
  "count_mint_9": 201,
  "count_nm_mint_plus_8_5": 63,
  "count_nm_mint_8": 19,
  "count_nm_plus_7_5": 5,
  "count_nm_7": 2,
  "count_lower_grades": 1,
  "first_graded_at": "October 12, 2021",
  "last_graded_at": "April 3, 2026",
  "pop_report_url": "https://www.beckett.com/grading/set_match/5823401"
}
Field Type Description
sport string Sport category
set_name string Full set name including year
set_year number Year of the set
set_id string Beckett internal set identifier
card_name string Card title as listed in pop report
card_number string Card number within the set
player_or_subject string Player or card subject name
total_graded number Total BGS-graded copies across all grades
count_pristine_10 number Count graded BGS Pristine 10
count_black_label_10 number Count graded BGS Black Label 10 (all sub-grades 10)
count_gem_mint_9_5 number Count graded BGS Gem Mint 9.5
count_mint_9 number Count graded BGS Mint 9
count_nm_mint_plus_8_5 number Count graded BGS NM-Mint+ 8.5
count_nm_mint_8 number Count graded BGS NM-Mint 8
count_nm_plus_7_5 number Count graded BGS NM+ 7.5
count_nm_7 number Count graded BGS NM 7
count_lower_grades number Count graded BGS 6.5 and below combined
first_graded_at string Date first copy was graded by BGS
last_graded_at string Date most recent copy was graded by BGS
pop_report_url string Beckett pop-report URL for this set

🔍 FAQ

How do I scrape the Beckett BGS population report?

Beckett BGS Population Report Scraper handles it. Set sport and setName (e.g. "Football" + "Prizm"), configure maxItems for the number of card records you want, and run. No account or subscription required — the pop report is public.

How much does Beckett BGS Population Report Scraper cost to run?

It charges $0.10 per actor start plus $0.0015 per card record. A run pulling 1,000 card records costs around $1.60. Large sweeps across a full set catalog run more but are still affordable relative to the data value.

Does the scraper require proxies?

Beckett BGS Population Report Scraper uses Apify datacenter proxies by default. Residential proxies are not needed — Beckett's pop-report runs on a standard Apache/PHP stack without Cloudflare protection.

Can I filter by both sport and player at the same time?

Yes. Set sport, setName, and/or playerName — they combine. Beckett requires a sport to return results, so always include sport. Adding a player or set name narrows the result list.

How is BGS population data different from PSA APR data?

BGS and PSA are separate grading services with separate populations. A card graded BGS 9.5 appears in the Beckett pop report; the same card graded PSA 10 appears in the PSA APR. They don't overlap. The BGS pop report covers 10M+ slabs — a different universe from PSA's dataset. Both are worth tracking.


Need More Features?

Need additional modes, more grade bands, or OPG pricing data? File an issue or get in touch.

Why Use Beckett BGS Population Report Scraper?

  • First BGS pop report actor on Apify — PSA has competition; Beckett has this one
  • Full grade breakdown — Returns all grade bands including Black Label 10, not just the top-grade headline count that most manual lookups surface
  • Affordable — ~$0.0015/record, which is less than the time it takes to copy a number out of a browser