MySlabs Scraper - Graded Sports Card & Pokemon Slab Marketplace
MySlabs Scraper — Graded Sports Card & Pokemon Slab Marketplace
Extract sold comps and active listings from MySlabs.com, the largest multi-grader peer-to-peer graded-slab marketplace. Covers PSA, BGS, SGC, CGC, TAG, and HGA slabs across sports cards, Pokemon, and other collectibles.
What you get
Each record includes:
| Field | Description |
|---|---|
slab_id |
MySlabs internal numeric ID |
listing_url |
Canonical listing URL |
title |
Full listing title (YEAR SET #CARD_NO PLAYER GRADE_LABEL) |
grader |
Grading company (PSA, BGS, SGC, CGC, TAG, HGA) |
grade |
Grade label as displayed (e.g. "PSA 10 GEM MINT") |
grade_numeric |
Parsed numeric grade (e.g. 10, 9.5) |
year |
Card year (extracted from title) |
listing_status |
sold, active, ended, or pulled |
sale_price |
Final sale price in USD (sold listings) |
asking_price |
Current asking price in USD (active listings) |
sold_at |
Sale date / timestamp string |
description |
Seller description text |
watchers_count |
Number of watchers / trackers |
image_urls |
Array of full-resolution slab image URLs |
Three scraping modes
archive — Sold comps (default)
Walks the sold archive at /browse/archive/. Over 150,000 sold listings, growing ~50/day. Use this mode to pull historical sale prices for comparables research.
Optional filters:
- query — keyword search (player name, set, card number)
- sport — filter by sport or category keyword (baseball, basketball, pokemon)
- grader — filter by grading company
active — Current listings
Walks active listings at /browse/. Same data shape as archive mode but for slabs currently on sale.
slab — Single slab lookup
Fetch one or more specific slabs by ID or URL. Pass bare numeric IDs or full /slab/view/<id>/ URLs in slabIds.
{
"mode": "slab",
"slabIds": ["1545016", "1500000"]
}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | archive |
Scrape mode: archive, active, or slab |
query |
string | — | Keyword search (player, set, card number) |
sport |
string | — | Sport / category filter keyword |
grader |
string | — | Grader filter: PSA, BGS, SGC, CGC, TAG, HGA |
slabIds |
array | — | Slab IDs or URLs (mode=slab only) |
maxItems |
integer | 10 |
Maximum records to return. 0 for unlimited. |
proxyConfiguration |
object | Apify residential | Proxy settings. Residential proxy required. |
Example inputs
Sold comps for Michael Jordan PSA cards:
{
"mode": "archive",
"query": "Michael Jordan",
"grader": "PSA",
"maxItems": 100
}
Active Pokemon listings:
{
"mode": "active",
"sport": "pokemon",
"maxItems": 50
}
Full archive crawl (unlimited):
{
"mode": "archive",
"maxItems": 0
}
Dataset views
Two pre-configured views are available on the output dataset:
- Sold Comps — title, sport, player, year, set, grader, grade, sale_price, sold_at, listing_url
- Full Slab Detail — all fields including sub-grades, cert number, watchers, images
Notes
- Seller usernames are behind a login wall on MySlabs and are not available without authentication.
- BGS sub-grades (centering/corners/edges/surface) are not exposed in the page HTML; they require cert verification API calls which are out of scope.
- Images are sourced from the LD+JSON Product schema for full resolution; the listing thumbnail is used as a fallback.
- Residential proxy is required for reliable access — MySlabs uses Cloudflare and datacenter IPs are frequently challenged.
- The archive contains 150k+ sold listings. Full crawls at
maxItems: 0will take several hours and consume significant compute units. Usequeryfilters to narrow the scope for comp research.