Card Ladder Graded Card Price Index Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
Card Ladder Graded Card Price Index Scraper
Scrape trending graded-card prices from Card Ladder — the card-investing industry's leading price index for sports and trading-card game collectibles.
What it does
Pulls Card Ladder's public "Ladder" price guide — the current top-trending cards per category — with real last-sale prices and dates, Card Ladder's own current index value, market cap, population counts, recorded sales volume, and 30-day price movement. Every row also carries the card's identity broken out into separate fields — year, set, player, variation, card number and image — so you can join it against your own inventory without parsing the card name. Covers all 11 categories Card Ladder tracks: Basketball, Baseball, Football, Hockey, Soccer, Pokemon, One Piece, Marvel, Wrestling, UFC, and Multi-Sport.
Input
| Field | Type | Description |
|---|---|---|
categories |
array | Which category ladders to scrape. Leave empty to scrape all 11 categories. |
maxItems |
integer | Maximum number of card records to scrape across the selected categories. |
resumeCursor |
string | Cursor from a previous run's Output. Supply it to continue a large crawl without re-fetching — you are not re-charged for records already received. |
Valid category values:
Basketball, Baseball, Football, Hockey, Soccer, Pokemon, OnePiece, Marvel, Wrestling, UFC, MultiSport
Output
Each record represents one card at a specific grade:
{
"card_name": "2000 Upper Deck Tom Brady #254",
"grade": "PSA 10",
"card_url": "https://www.cardladder.com/ladder/card/2000-upper-deck-tom-brady-star-rookie-base-254-psa-10",
"category": "Football",
"last_sale_usd": 8988,
"last_sale_date": "2026-08-31T10:00:00.000Z",
"index_value": 9083.79,
"pct_change_30d": 10.96,
"population": 179,
"sales_volume": 226,
"market_cap": 1625997.98,
"year": "2000",
"set_name": "Upper Deck",
"player": "Tom Brady",
"variation": "Star Rookie Base",
"card_number": "254",
"image_url": "https://firebasestorage.googleapis.com/v0/b/cardladder-71d53.appspot.com/o/cards%2Fthumb_L19V6BUUrBThIuL0iGHq?alt=media"
}
card_name— full card identity: year, set, player/character, and card number.grade— the grading company + grade for this specific listing (e.g.PSA 10,BGS 9.5), orRawfor ungraded cards.card_url— the card's page on Card Ladder.category— the category ladder this row came from, so a multi-category run stays sortable.last_sale_usd— the most recent recorded public sale price for this card/grade.last_sale_date— when that sale was recorded.index_value— Card Ladder's own current price index value for this card/grade. This can differ fromlast_sale_usd— it reflects Card Ladder's smoothed valuation rather than a single data point.pct_change_30d— percent price change over the trailing 30 days.population— grading-company population count for this card/grade.nullfor ungraded (Raw) cards, which have no population count to report.sales_volume— number of recorded public sales Card Ladder holds for this card/grade.market_cap— estimated total market value of the graded population.nullwhereverpopulationis.year,set_name,player,variation,card_number— the card's identity as separate fields, so you can match rows against your own inventory without parsingcard_name.variationisnullon cards with no parallel;card_numberisnullon the rare card that carries none.image_url— Card Ladder's thumbnail image for the card.
Card Ladder's 6-month / 1-year / 2-year / all-time price-change figures are gated to paid subscribers and are not available to this actor — only the 30-day change is included.
Resuming a large crawl
Every run emits a resumeCursor in its Output. If a run stops before finishing — because it hit maxItems,
a spend cap, or was aborted — start a new run with the same input plus that resumeCursor to continue
from the queued work the previous run didn't reach.
- You are not re-charged for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly the 10 most recent runs.
resumeCursoris opaque — supply it unmodified.
Example inputs
Scrape all categories (default):
{
"maxItems": 100
}
Scrape only Pokemon and Basketball trending cards:
{
"categories": ["Pokemon", "Basketball"],
"maxItems": 50
}
Resume a previous run:
{
"categories": ["Pokemon", "Basketball"],
"maxItems": 50,
"resumeCursor": "<paste the resumeCursor from the previous run's Output>"
}
Notes
- Card Ladder's per-category ladder page surfaces a curated top-trending list (around 20 cards per category per run) rather than its full catalog — there is no publicly reachable pagination beyond that list.
populationisnullfor ungraded (Raw) card rows — Card Ladder does not report a population count for raw cards.