
Data, Not Opinions
We don't tell you what a card is "worth." Everyone wants "the comp" — but who decides which sales count? That's a judgment call, not a data question. We give you the raw market data — completed auction results and active listing prices from public marketplaces — and let you decide what qualifies. Every data point is traceable back to its source. You pick the comps. You set the value.
Two endpoints. One gives you historical sales. The other gives you what's available right now. Together, they give you the full picture of any card's market position.
10
Categories With Market Data
100
Cards Per Bulk Request
2
Endpoints
Every
Parallel Tracked
Why Data, Not Opinions
Most trading card pricing services hand you a comp and call it "the value." But who decided which sales count? Card values depend on context — and a single number can't answer every question.
Are you insuring a collection? You need replacement cost — what it would take to repurchase every card at current market prices. Are you selling? You need to know what buyers have actually paid recently, not what someone thinks the card should sell for. Evaluating a deal? You need both completed sales and current asking prices to gauge whether the offer is fair.
Same card. Four different questions. Four different answers. That's why we give you the underlying data instead of a single "value" — so you and your users can draw the right conclusion for the situation at hand.
You get every completed auction sale and every active listing price — sourced from public marketplaces, verifiable down to the individual listing. No other trading card price provider offers this level of transparency. What you do with it is up to you.
2026 Topps Series 1 #200 Shohei Ohtani — Illustrative Data
One card. 383 sales. $80 → $2,750.
In 30 days.
A single estimate would tell you "about $400" — a number invented by averaging away the grade tiers, the parallels, and the auction-vs-listing gap. Most pricing APIs hand you that number and move on. We hand you the raw spread instead. Every record below is a real, source-traceable sale returned by GET /v1/pricing/{card_id}?period=30d. Your application decides what the data means — insurance valuation, listing price, deal evaluation, market comp — because the right answer depends entirely on the question you're asking.
Shohei Ohtani
2018 Topps Update · Base Set · #US285
card_id: 23084701-7511-4aa3-8831-8dbddf4c2c8d

The spread, by grader
PSA 10s trade around $500. PSA 9s around $190. The same card raw goes for $150. SGC 10s fall between PSA 9 and PSA 10. CGC, ISA, TAG, and BGS each have their own market. Most pricing services collapse all of this into one "value" — and quietly pick a side. We don't. Every grading company, every grade, the actual low-to-high range, and the sample count are right here. If your users need PSA 9 comps you have them; if they're cross-shopping SGC 10 against PSA 10 you don't have to call a different endpoint. Your application decides which tier matters, because only you know the question being asked.
- PSA1087·$470–$2.45k1 outlier at $2,450
- PSA968·$148–$229excl. Gold /2018 at $2,750
- PSA814·$94–$200
- PSA71·$110
- PSA62·$103–$104
- PSA52·$125–$520
- PSA42·$104–$112
A separate sub-market within the same card. Most pricing services lump parallels in with the base card. We tag every listing with its parallel ID so your application doesn't have to guess.
One copy numbered /2018 sold this month, graded PSA 9. The kind of outlier that destroys any "average price" claim — and the reason we hand you the records instead of a number.
Every record links back to its source
When your users ask why your app says what it says, you can show them the source listing that backs every data point. No invented numbers, no smoothed averages, no opaque "valuation algorithm." The same response feeds a collection insurance tool, a marketplace pricer, and a deal-evaluator — three products, one API call, because the raw data lets each one apply its own logic on top. That kind of transparency isn't standard in this space. We think it should be.

2018 Topps Update Shohei Ohtani RC Rookie #US285 Angels
low end of the raw range
View on eBay

2018 Topps Update Shohei Ohtani Rookie Debut #US285 Angels MLB Baseball Card
Rainbow Foil parallel — different sub-market
View on eBay
2018 Topps Update Shohei Ohtani #US285 PSA 9 Rookie Gold /2018 Angels Baseball
the unicorn — Gold parallel, /2018 print run
View on eBayEvery record carries a thumbnail, source, and outbound URL. Your users can verify any data point in one click.
What's in the Data
Every data point is designed to give you and your users the information needed to make informed decisions — no guesswork required.
Parallel Awareness
Every listing is matched to the exact card variant — not just the base card. A PSA 10 Refractor and a PSA 10 Base are different markets. The API knows the difference and tags each listing with its parallel ID and name.
Raw & Graded Breakdown
Data is organized into raw (ungraded) and graded sections. Graded data breaks down further by grading company and individual grade. Compare PSA 10 prices to BGS 9.5 prices without any post-processing.
Bulk Pricing
Request pricing for up to 100 cards in a single API call — matching the catalog search page size. Price an entire collection page, a search result set, or an inventory batch without hammering the API with individual requests.
Source Transparency
All data comes from public marketplaces. Every sale and listing includes the source, the exact URL, and a listing image. Your users can verify any data point with a single click. No other trading card price provider lets you trace every number back to its source.
Listing Images
Each data point comes with the actual listing image from the marketplace. Show your users what was sold or what is available — not just numbers on a screen.
Context, Not Conclusions
The API gives you data and lets your application decide what it means. Build insurance valuations, deal evaluators, market dashboards, or price guides — the same data serves different purposes depending on your use case.
Two Endpoints, One Picture
Raw marketplace data — actual transaction prices and live listings — delivered through two complementary endpoints.
Data from public marketplaces. Auction results show what buyers actually paid. Buy-It-Now prices show what sellers are listing cards for. Think of it as bid versus ask — auctions tell you what the market will bear, BIN tells you what sellers are asking.
- Auction results (completed sales)
- Buy-It-Now listing prices (seller asking prices)
- Raw and graded sections
- Graded data organized by company and grade
- Source, price, URL, and image for every sale
- Parallel-aware: exact variant identified
What's available right now. Active auctions, Buy-It-Now listings with asking prices, and direct links to marketplace search results. See what's on the market for any card.
- Active auctions
- Buy-It-Now listings with asking prices
- Marketplace search links
- Raw and graded sections
- Graded data organized by company and grade
- Source, price, URL, and image for every listing
Last sold tells you where a card was. The spread tells you where it's heading.
Most collectors watch one number: the last sold price. It's real, but it's a look in the rear-view mirror. For a card that sells once a week, the "current" price can be a week old. That's why we return Buy It Now asking prices alongside sold auctions, and why the time series endpoint charts both, side by side, over time. No finance background required.
Sold auctions
What buyers actually paid. It's the hardest evidence there is, but it only updates when a card sells, and plenty of cards sell once a week or less.
Buy It Now listings
What sellers want today. Asking prices move first: when sellers sense demand, they raise prices before the next sale happens. That makes asks a leading indicator.
The gap between them
A narrow spread means buyers and sellers agree on what a card is worth. Asks climbing away from the last sale signal upward price pressure. Asks sliding toward it signal a cooling market.
Reading one card's week
Last sold
$40
7 days ago
If this is all you watch, the card looks flat.
Buy It Now asks
- Day 1$45
- Day 4$52
- Day 7$60
Asks up by a third
The last sale still says $40, but sellers are pricing in demand the sales haven't caught up with yet. The widening spread shows that pressure days before the next sale confirms it, or doesn't.
In the response
types.auction- Sold auctions, the bid
types.fixed- Buy It Now asks, the ask
ask − bid- The spread, per candle
Data, not a forecast: the API reports what happened in the market. Reading the pressure is up to you and your users.
Price Time Series
The same sold auctions and Buy It Now asks, rolled up into daily, weekly, or monthly summaries (candles), so you can chart the bid, the ask, and the spread for any card.
- Mean, median, high, low, and count for every bucket
- Sold auctions (bid) and Buy It Now asks (ask) as separate series
- Raw and every grade charted separately, never blended into one candle
- Filter to one parallel, base cards only, or a single grade
- Outliers filtered within each variant, with the filtered count reported
- Look back up to 365 days, 156 weeks, or 120 months from any date
// Weekly candles for the last 12 weeks, raw copies only
const series = await client.pricing.timeseries(cardId, {
interval: 'weekly',
periods: 12,
grade_id: 'null',
});
for (const candle of series.data?.raw.candles ?? []) {
const bid = candle.types.auction?.median; // sold
const ask = candle.types.fixed?.median; // Buy It Now
if (bid && ask) console.log(candle.period_start, ask - bid);
}Real Market Data in a Single Call
One API call returns completed sales and active listings, organized by raw and graded, with every parallel identified. The SDK handles authentication, pagination, and error handling so you can focus on what the data means for your users.
import { CardSightAI } from 'cardsightai';
const client = new CardSightAI({ apiKey: 'your_api_key' });
// Get historical sales data for a card
const pricing = await client.pricing.get("card_abc123");
// Raw (ungraded) sales
for (const sale of pricing.data.raw.records) {
console.log(`$${sale.price} - ${sale.date} (${sale.source})`);
}
// Graded sales by company and grade
for (const company of pricing.data.graded) {
for (const grade of company.grades) {
console.log(`${company.company_name} ${grade.grade_value}: ${grade.count} sales`);
}
}
// Get active marketplace listings
const listings = await client.marketplace.get("card_abc123");
console.log(`Ungraded listings: ${listings.data.raw.count}`);Pricing data you can build a business on
Most trading-card pricing providers license their data for personal, non-commercial use — even when you're paying for access — and block you from using it in the product you sell. CardSight AI is built the opposite way. As a pure infrastructure partner, built by collectors for collectors, our Terms of Service let you put real market pricing inside the commercial apps, tools, and platforms you ship to your own customers.
Commercial use, built in
Commercial use is a first-class right in our Terms of Service — not a gray area or a loophole. Build live market pricing into the product you sell, and charge your own customers for it.
Serve your own users
Show real, source-traceable comps to your end users right inside your app — and cache them for performance. The data powers your product, not just an internal dashboard.
You own what you build
Your application and your data remain yours. CardSight AI powers the pricing layer underneath — we're infrastructure, never a competitor to what you build on top.
The difference: most providers license pricing data for personal use and keep the commercial upside for themselves. CardSight AI is infrastructure — the product you build on our data is yours to sell.
Coverage & Roadmap
Market data is live for Baseball, Football, Basketball, Hockey, MMA, Soccer, Pokémon TCG, Magic: The Gathering, One Piece TCG, and Disney, with more sports and TCGs following as the catalog grows.
Baseball
Football
Basketball
Hockey
MMA
Soccer
Pokémon TCG
Magic: The Gathering
One Piece TCG
Disney
A Note on Coverage
How listings reach a card
All pricing data comes from public marketplaces, and every listing is traceable back to its source. Our AI matches those listings to the right card in our catalog. It's good, and it gets better every day, but you may still notice listings that haven't been matched yet, or the occasional mis-match. As matching improves, more listings surface on their cards automatically.
Search everything, matched or not
You don't have to wait for a match. Price search runs a free-text search over the titles of all the marketplace listings we collect, including ones never matched to a card, so a seller's unusual title or a card our matching struggles with still turns up. Results are ranked by relevance, can be filtered to sold auctions or Buy It Now asks, and carry the matched card when there is one. Marketplace search does the same for listings that are live right now.
Explore Our Platform
Price data is most powerful when combined with CardSight card identification, catalog, and collection management. Build a complete trading card platform.
CardSight
Snap a photo, get instant card identification. 99.5%accuracy across 10,000+ sets.
Slab Identification
Read the slab, not just the card. Grading company, grade, qualifiers, and cert number from any photo.
Streaming Video
Real-time card identification from live video streams. Enterprise only.
Card Catalog
15M+ trading cards from 1933 to present. The most comprehensive card database available via API.
Collection Management
Let your users track, organize, and manage their card collections. Powered by the full catalog.
Frequently Asked Questions
Common questions about CardSight AI's price data, market coverage, data philosophy, and API endpoints.
No — and that's by design. Everyone wants "the comp," but who decides which sales count? That's a judgment call, and it's not ours to make. The API provides the raw market data — completed auction results and active listing prices from public marketplaces — so you can pick the comps that make sense for your use case. Insuring a collection, pricing a sale, evaluating a deal — same card, different answers.
The pricing endpoint (/v1/pricing/{card_id}) returns historical data — completed auction results and Buy-It-Now listing prices from public marketplaces. Auctions reflect what buyers actually paid; Buy-It-Now prices reflect what sellers are asking. The marketplace endpoint (/v1/marketplace/{card_id}) returns what's available right now — active auctions, Buy-It-Now listings, and marketplace search links.
Both endpoints organize data into raw (ungraded) and graded sections. Graded data is further organized by grading company (PSA, BGS, SGC, etc.) and individual grade. This lets you compare PSA 10 sales to BGS 9.5 sales, or see how raw card prices differ from graded — without any data manipulation on your end.
Yes. Every listing includes the exact parallel ID and parallel name from the CardSight AI catalog. A base card and a refractor are tracked separately, even if they show the same player from the same set. This parallel-level granularity is critical for accurate pricing — a Topps Chrome base and a Topps Chrome Gold Refractor /50 are entirely different markets.
The bulk pricing endpoint accepts up to 100 card IDs per request, matching the catalog search page size. This lets you price an entire page of search results, a collection inventory, or a batch import without making 100 individual API calls.
Market data is live for Baseball, Football, Basketball, Hockey, MMA, Soccer, Pokémon TCG, Magic: The Gathering, One Piece TCG, and Disney. Price data coverage follows the same expansion pattern as the rest of the CardSight AI platform — same API, same pricing, new sports and TCGs added over time.
Our AI pipeline matches marketplace listings to the correct cards in the CardSight AI catalog. Matching keeps improving, but some cards may have limited or no pricing data — particularly obscure parallels or low-volume cards. Coverage broadens automatically over time as matching improves and as we expand marketplace sources.
All data comes from public marketplaces — eBay, Fanatics Collect, COMC, and others. Auction results reflect completed sales (what buyers actually paid). Buy-It-Now prices reflect active seller listings (what sellers are asking). Every data point includes the source, the listing URL, and the listing image so anyone can verify it. We don't synthesize, interpolate, or estimate prices. No other trading card price provider offers this level of transparency — most give you a number with no way to see where it came from.
Yes. Commercial use is a core permitted use — you can incorporate CardSight AI pricing into the application you offer your own customers, show comps to your end users inside that app, and charge for it. You keep ownership of your application and your data. See our Terms of Service for the full details.
Tap any question to expand
No — and that's by design. Everyone wants "the comp," but who decides which sales count? That's a judgment call, and it's not ours to make. The API provides the raw market data — completed auction results and active listing prices from public marketplaces — so you can pick the comps that make sense for your use case. Insuring a collection, pricing a sale, evaluating a deal — same card, different answers.
The pricing endpoint (/v1/pricing/{card_id}) returns historical data — completed auction results and Buy-It-Now listing prices from public marketplaces. Auctions reflect what buyers actually paid; Buy-It-Now prices reflect what sellers are asking. The marketplace endpoint (/v1/marketplace/{card_id}) returns what's available right now — active auctions, Buy-It-Now listings, and marketplace search links.
Both endpoints organize data into raw (ungraded) and graded sections. Graded data is further organized by grading company (PSA, BGS, SGC, etc.) and individual grade. This lets you compare PSA 10 sales to BGS 9.5 sales, or see how raw card prices differ from graded — without any data manipulation on your end.
Yes. Every listing includes the exact parallel ID and parallel name from the CardSight AI catalog. A base card and a refractor are tracked separately, even if they show the same player from the same set. This parallel-level granularity is critical for accurate pricing — a Topps Chrome base and a Topps Chrome Gold Refractor /50 are entirely different markets.
The bulk pricing endpoint accepts up to 100 card IDs per request, matching the catalog search page size. This lets you price an entire page of search results, a collection inventory, or a batch import without making 100 individual API calls.
Market data is live for Baseball, Football, Basketball, Hockey, MMA, Soccer, Pokémon TCG, Magic: The Gathering, One Piece TCG, and Disney. Price data coverage follows the same expansion pattern as the rest of the CardSight AI platform — same API, same pricing, new sports and TCGs added over time.
Our AI pipeline matches marketplace listings to the correct cards in the CardSight AI catalog. Matching keeps improving, but some cards may have limited or no pricing data — particularly obscure parallels or low-volume cards. Coverage broadens automatically over time as matching improves and as we expand marketplace sources.
All data comes from public marketplaces — eBay, Fanatics Collect, COMC, and others. Auction results reflect completed sales (what buyers actually paid). Buy-It-Now prices reflect active seller listings (what sellers are asking). Every data point includes the source, the listing URL, and the listing image so anyone can verify it. We don't synthesize, interpolate, or estimate prices. No other trading card price provider offers this level of transparency — most give you a number with no way to see where it came from.
Yes. Commercial use is a core permitted use — you can incorporate CardSight AI pricing into the application you offer your own customers, show comps to your end users inside that app, and charge for it. You keep ownership of your application and your data. See our Terms of Service for the full details.