eBay Card Comps: PSA, BGS, CGC Sold Prices
Pricing
from $2.25 / 1,000 results
eBay Card Comps: PSA, BGS, CGC Sold Prices
Sold prices for graded and raw trading cards from eBay, up to 3 years back. Filter by grader, grade, language and print run; the card number, grade and grader come parsed out of the title. Pokemon, sports cards, Magic, Yu-Gi-Oh.
Pricing
from $2.25 / 1,000 results
Rating
0.0
(0)
Developer
Sam Smith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
eBay Card Comps: Graded and Raw Trading Card Sold Prices
Real eBay sold prices for trading cards, filtered to the exact slab you are pricing. Pick the grader and the grade, and every sale comes back with the grader, grade, card number, year and language parsed out of the title, plus a median, quartiles and sale count per card. Up to 3 years of sold history. Pokemon, sports cards, Magic: The Gathering, Yu-Gi-Oh, One Piece and any other card sold on eBay.
Why a plain eBay search gives you the wrong comp
eBay matches words, not cards. We measured it on one search, charizard base set psa 10, over 3 years:
| What you price from | Median |
|---|---|
| Every single unit sale the keyword search returns (239 listings) | $14.73 |
| The same search with lots, accessories, replicas and keyword stuffed titles removed (60 sales) | $545.00 |
That is a 37x difference on the same words, same window. eBay matches words in any arrangement, so the search also returns a sleeve "fits PSA 10 Charizard Base Set", bulk lots advertised with the card's name, raw "PSA 10 contender" cards and fan art proxies. None of them is the card, and all of them are cheap. A median over that is the median of a junk drawer.
This Actor does the filtering for you: junk listings are dropped before you pay for them, the grade is read from the title, and only sales matching your grader and grade come back.
⚠ Even clean comps spread wide on a nominally identical card, because titles are written by sellers. Always look at the quartiles and the sale count, not only the median.
What you get per sale
{"search": "charizard base set","item_id": "900031309870","title": "1999 POKEMON BASE SET UNLIMITED #4 CHARIZARD-HOLO PSA 9","last_sold": "2026-10-30T01:21:00Z","price": 3252,"format": "AUCTION","bids": 77,"shipping_cost": null,"url": "https://www.ebay.com/itm/900031309870","image": "https://i.ebayimg.com/...","us_sale": true,"graded": true,"grader": "PSA","grade": "9","card_number": "4","card_year": 1999,"language": null,"first_edition": false,"card_flags": []}
A SUMMARY record in the run's key value store holds one line per card: count, median, p25, p75, min, max and how many sales were scanned to find them.
Input
| Field | Description |
|---|---|
cards | One card per line, the player or character plus the set: charizard base set, lebron james topps chrome. Keep it short and pin the rest with the filters below. |
graded | graded (default) for slabs only, raw for raw only, any for both. |
graders | Optional. PSA, BGS, CGC, SGC, TAG, ACE and others. |
grades | Optional. 10, 9.5, 9. Several lines keep any of them. |
days | 1 to 1095 days back. Default 365. |
maxResults | Max matching sales per card. Default 100. |
maxPages | Each page scans 240 sales. A narrow filter keeps a few per page, so raise this for rare grades. Default 5. |
language | en, ja, zh, ko and more, read from the title. Japanese Pokemon is ja. |
printRun | 25 keeps only /25 parallels. numbered keeps any serial numbered card. |
matchAllWords | On by default: every word of your search must be in the title. eBay otherwise pads a short result with other cards. |
mustInclude | Extra words every title must contain, for example red refractor or 1999. |
keepJunk | Off by default. Turn on to see every raw match. |
Tips that change the answer
- Do not pile words into the search. Adding the card number moved the Charizard median to $555.50 but left sales from $4 to $35,000 in the set: eBay widens a long query rather than narrowing it. Keep the search short and pin the rest with
graders,gradesandmustInclude. - Watch reissues that share a number.
4/102is both the 1999 Base Set card and a later anniversary reprint. Use thecard_yearfield to tell them apart, or put the year inmustInclude. - Rare grades need more pages. If a PSA 10 of your card sells twice a month, most scanned rows will be other grades. Raise
maxPages.
Who uses it
Card shops pricing buylists, breakers and flippers checking comps before a purchase, collection trackers and portfolio apps, and anyone building a card price guide from real sales instead of asking prices.
Related Actors
- eBay Sold Listings: 3 Years of History returns every sold listing for any item, not only cards.
- eBay Sold Price History gives a monthly median for a card or any other item, so you can chart it.
- eBay Best Offer Price Checker returns what buyers actually paid on accepted offers.
FAQ
Is this eBay's data? Yes, real completed eBay sales. No eBay login or developer account is needed on your side.
How far back does it go? Up to 3 years (1095 days). eBay's own sold search stops at 90 days.
Are Best Offer sales at the right price? Yes. When a sale went through as an accepted Best Offer, price is what the buyer paid, and best_offer is true.
Can I call this from my own code? Yes, through the Apify API, or as a REST API at compsapi.com with a free tier.
Measured details behind the numbers above: why your card comps are wrong.
Useful? A rating on this page helps other collectors find it.