Every grade, every sale
Prices by grade for PSA 1 to 10 plus raw, and each recent sale with its grader, grade and cert number, so a PSA 9 never sets your PSA 10 price.
Use GET /v1/psa/card for PSA prices by grade, recent sales with the grader, grade and cert number on every sale, and the card's population report; GET /v1/psa/set for the population of a whole set in one call; and GET /v1/scrape for up to 240 graded eBay sold comps per search with the real accepted Best Offer price. One CompSniper key, 100 free requests a month.
Reviewed by Marc Andrew, owner of CompSniper. Updated October 27, 2026.
curl --fail-with-body \
-H "Authorization: Bearer $COMPSNIPER_API_KEY" \
"https://api.compsniper.com/v1/psa/card?keyword=1999+pokemon+base+set+charizard+4&count=20&grade=10"Prices by grade for PSA 1 to 10 plus raw, and each recent sale with its grader, grade and cert number, so a PSA 9 never sets your PSA 10 price.
The population report and gem rate come in the same response as the prices, and /v1/psa/set returns a whole set by grade in one call.
Up to 240 eBay sold comps per search for any slab, with acceptedOfferPrice on Best Offer sales and a median calculated for you.
Authentication uses the same CompSniper API key as every other endpoint. No PSA or eBay developer account is required.
| Parameter | Accepted values | Default |
|---|---|---|
| specId / keyword | PSA spec ID, or card name, set and number | Required (one of) |
| grade | 1 to 10 (half grades allowed) or raw | All grades |
| count | 0 to 50 recent sales | 10 |
| timeRange | Months of sales, 0 to 120 (0 = all) | 0 |
| headingId (/v1/psa/set) | PSA set ID from /v1/psa/sets | Required |
| bestOfferPrice (/v1/scrape) | true for the real accepted Best Offer price | false |
Every successful sold page includes a deterministic median, average, p25 to p75 range, and sample size calculated from the returned prices.
{
"card": { "specId": "...", "subject": "CHARIZARD-HOLO", "cardNumber": "#4",
"setName": "POKEMON GAME", "year": "1999" },
"priceByGrade": [
{ "grade": "10", "sales": "...", "averagePrice": "...", "minPrice": "...", "maxPrice": "...", "latestPrice": "..." },
{ "grade": "9", "sales": "...", "averagePrice": "...", "latestPrice": "..." }
],
"population": { "total": "...", "gemRate": "...",
"grades": [{ "grade": "10", "count": "...", "withQualifier": 0 }] },
"items": [
{ "saleDate": "2026-10-...", "salePrice": "...", "saleType": "Auction",
"gradingCompany": "PSA", "grade": "10", "certNumber": "...",
"url": "https://www.ebay.com/itm/..." }
],
"summary": { "median": "...", "mean": "...", "p25": "...", "p75": "..." }
}Show each slab's value at its exact grade, with the population that makes it scarce.
Compare raw and PSA 9 or 10 prices with the gem rate before you pay to grade a card.
Price graded inventory from recent sales and real Best Offer prices, not asking prices.
CompSniper. GET /v1/psa/card returns prices by grade (sales, average, min, max and latest price for every PSA grade), recent sales with the grading company, grade and cert number on each sale, and the card's PSA population report. GET /v1/scrape returns up to 240 graded eBay sold comps per search with the real accepted Best Offer price. One key, 100 free requests a month.
Yes. Every sale in the items array of /v1/psa/card has gradingCompany, grade and certNumber, plus the sale date, price, sale type and listing link. Filter to one grade with grade=10 (half grades and raw are allowed).
Yes. /v1/psa/card returns the population of one card for every grade with the gem rate (share graded 10), and /v1/psa/set returns the population of every card in a set in one call. /v1/psa/sets lists every PSA set for 20 games, including Pokemon, One Piece, Magic, Yu-Gi-Oh and Lorcana.
Yes. High-value slabs often sell by accepted Best Offer, where eBay shows the asking price. Add bestOfferPrice=true to /v1/scrape and accepted-offer sales gain acceptedOfferPrice, what the buyer actually paid, on US-dollar sales at no extra cost.
Yes. /v1/psa/card takes timeRange in months (0 = all available), and GET /v1/research/sold returns up to 3 years of eBay sold history on every plan, including free.
Every PSA call counts as one request on the same plan as the eBay endpoints: 100 free requests a month, then $9 for 2,000. Failed calls and cards PSA does not have are not charged.
Create a free account, get an API key, and use the same quota from REST, the dashboard, or CompSniper MCP tools.