Population Data · Beta

The Official Census, On Tap

Population reports are the closest thing the hobby has to ground truth on rarity — every card the grader has ever certified, broken down by grade. We deliver pop counts straight from the grading company's published census. No estimates, no inference, no opinions.

Population reports are in beta: card-level and set-level endpoints are live, starting with PSA pop on Baseball. Other graders and other sports — Basketball, Hockey, Football, and Pokemon — are coming soon.

Beta

Now Available

Card

Level Endpoint

Set

Level Endpoint

Baseball

PSA Live Today

Pop Data, Not Estimates

Population is one of the few numbers in the hobby that isn't a judgment call. It's the grader's official census — and we deliver exactly what's published, nothing more.

Most "rarity" labels in the hobby are vibes. "Rare," "scarce," "tough" — these are conclusions, not data. Pop reports are different. When PSA publishes that 142 copies of a card exist at PSA 10, that's the number. There's no modeling, no algorithm, no opinion. It's a count.

That's why pop is the foundation of every serious rarity, comp, and investment view. It's also why we built it into the same API as the rest of the catalog: pop counts are keyed to CardSight AI card and parallel IDs, so they join with identification and price data without translation.

Card-level and set-level endpoints are in beta today, starting with PSA on Baseball. The numbers come directly from the grader. What you build with them is up to you.

Why Pop Matters

Same card, different grades:

PSA 9 pop4,218
PSA 10 pop18

Result:

A 234× scarcity gap between PSA 9 and PSA 10 — the kind of context that explains why a one-grade jump can carry a 10× price premium. Without pop, the price gap looks arbitrary. With pop, it's defensible.

Illustrative example. Real counts returned per card by the API.

Two Endpoints, Full Census Coverage

Card-level for individual rarity context. Set-level for registry, completion, and inventory views. Both in beta today.

GET /v1/population/card/{card_id}
Beta
Card-Level Population

The full grade-by-grade census for a single card. Every grade the grading company has assigned, the count at that grade, qualifiers, and the calculated gem rate. Parallel-aware so a base card and its refractor return distinct populations.

  • Per-grade counts across every published grade
  • Qualifier breakdowns (OC, MK, MC, ST, etc.)
  • Gem rate (PSA 10 / total graded)
  • Parallel-aware: base and refractor tracked separately
  • Includes last-updated timestamp from the grader
  • Beta: PSA on Baseball live today
GET /v1/population/set/{set_id}
Beta
Set-Level Population

Aggregate population across an entire set. The full grade distribution at the set level — useful for registry tools, set completion views, and identifying low-pop chases inside a release. Returns one census per grading company.

  • Set-wide grade distribution
  • Card-by-card pop with low-pop callouts
  • Useful for set completion and registry views
  • Aligned to CardSight AI's catalog set IDs
  • Includes last-updated timestamp from the grader
  • Beta: PSA on Baseball live today

What App Builders Do With Pop

Pop reports unlock three of the highest-leverage features in any trading card application — rarity, comp justification, and market analysis. All built on the same two endpoints.

Rarity & Scarcity Context

Surface defensible rarity claims on every card view. "Only 142 PSA 10s exist" is a far stronger signal than "rare" — and it's the kind of context that turns a casual app into a tool collectors trust. Pop counts let your application explain why a card matters at a given grade.

Pricing Context & Comp Justification

Pair population with sales data and your app can finally answer the question users actually ask: why does this card cost what it costs? A PSA 10 priced 10× the PSA 9 makes sense when the pop is 18 versus 4,200. Pop is the missing context that makes a comp defensible.

Investment & Market Analysis

Build investor-grade dashboards on a foundation of census data. Gem rates, grade distributions, and pop growth over time are the metrics analysts use to evaluate scarcity and supply. Pop reports are the raw material for any serious market analysis tool.

Source Transparency

Every count is sourced directly from the grading company's published census. We don't synthesize, estimate, or interpolate. The number you get is the number the grader published — and the API includes the timestamp so your users know exactly how fresh the data is.

Parallel-Aware

Population is tracked at the parallel level, mirroring what each grader publishes. A Topps Chrome base, a Refractor, and a Gold Refractor /50 return separate pop counts — keyed to CardSight AI's parallel IDs so you can join pop with the rest of the catalog without translation.

In Beta, Built With You

Population reports are in beta. PSA pop on Baseball is live today, and more graders and sports roll out in the order on the coverage roadmap below. Feedback from builders using the beta shapes what ships next.

Developer Integration

Pop Counts in a Single Call

Two endpoints, both in beta. Card-level for rarity context on individual cards; set-level for registry, completion, and inventory tooling. Pair them with the price data API to justify comps with the census behind them.

population-example.ts
import { CardSightAI } from 'cardsightai';

const client = new CardSightAI({ apiKey: 'your_api_key' });

// Card-level population (beta)
const pop = await client.population.card("card_abc123");

for (const company of pop.data.graded) {
  for (const grade of company.grades) {
    console.log(`${company.company_name} ${grade.grade_value}: ${grade.count}`);
  }
  console.log(`Gem rate: ${(company.gem_rate * 100).toFixed(2)}%`);
}

// Set-level population (beta)
const setPop = await client.population.set("set_xyz789");
console.log(`Total cards graded across set: ${setPop.data.total}`);

// Pair pop with sales data to justify a comp
const pricing = await client.pricing.get("card_abc123");
// A PSA 10 with pop 18 and recent sales over $5,000
// tells a very different story than pop 4,200.

Coverage & Roadmap

PSA pop data is live for Baseball today. Same approach as our price data rollout — we get it right with one sport and one grader before we scale, so you can trust the numbers from day one.

Graders covered: PSA (Professional Sports Authenticator), TAG (Technical Authentication & Grading), Beckett Grading Services, Sportscard Guaranty Corporation (SGC), and Certified Guaranty Company (CGC).

Baseball

PSA: Live
TAG: Soon
Beckett: Soon
SGC: Soon
CGC: Soon

Basketball

PSA: Soon
TAG: Soon
Beckett: Soon
SGC: Soon
CGC: Soon

Hockey

PSA: Soon
TAG: Soon
Beckett: Soon
SGC: Soon
CGC: Soon

Football

PSA: Soon
TAG: Soon
Beckett: Soon
SGC: Soon
CGC: Soon

Pokemon

PSA: Soon
TAG: Soon
Beckett: Soon
SGC: Soon
CGC: Soon

A Note on Coverage

Baseball + PSA is live today. Other graders on Baseball come next — TAG, then Beckett, then SGC, then CGC — each added only when the data is ingested, validated, and matches the grader's published numbers. New sports follow the same playbook: we onboard the data, prove it out on Baseball, and roll out from there. We won't announce a date until coverage is actually live.

Population Reports Are in Beta

Both pop endpoints, card-level and set-level, are live and returning real census data today. While in beta, we're expanding grader and sport coverage and refining the endpoints around what builders need. Have a pop-data use case we should know about? Tell us.

Frequently Asked Questions

Common questions about CardSight AI's population reports — what they are, where the data comes from, and what the beta covers today.

Tap any question to expand

What is a population report?

A population report is a grading company's official census of every card it has graded — broken down by grade. If PSA has graded 142 copies of a card as PSA 10, the pop report shows 142. It's the closest thing the hobby has to ground truth on rarity. Pop reports are why the difference between a PSA 9 and a PSA 10 can be a 10× price gap on a low-pop card.

What does beta mean for population reports?

It means the endpoints are live and returning real census data today, starting with PSA on Baseball, while we expand coverage and refine the API. Expect more graders and more sports as the beta continues, along with refinements to the endpoints. Tell us what your app needs from pop data: beta feedback shapes what we build next.

Where does the population data come from?

Population counts come directly from grading company census reports — not estimates or inferences. PSA (Professional Sports Authenticator) is supported at launch for Baseball. TAG, Beckett, SGC, and CGC will roll out on Baseball first as each grader's pipeline is onboarded. Basketball, Hockey, Football, and Pokemon follow once Baseball is solid across all graders. We don't synthesize, estimate, or interpolate pop counts — what each grader publishes is what the API returns.

How often is the data refreshed?

PSA pop data is refreshed on a regular cadence to track new submissions. Pop reports are inherently historical — every card the grader has ever certified — so refreshes accumulate rather than replace. The API response includes a last-updated timestamp so your application can show users when the count was last reconciled with the grader's published numbers.

Can I get pop counts for parallels?

Yes — to the extent the grading company publishes them. PSA tracks population separately for parallels and special editions, so a Topps Chrome base and a Topps Chrome Gold Refractor /50 return distinct pop counts. The API mirrors the grader's parallel granularity using CardSight AI's parallel IDs, so a base card and its refractor are tracked separately.

When will TAG, Beckett, SGC, and CGC be live? What about other sports?

Each grading company has its own data pipeline, and each sport has its own catalog scope to validate. We're getting Baseball + PSA right first, then onboarding the other graders for Baseball in order — TAG, then Beckett, then SGC, then CGC. Once Baseball is solid across all graders, we'll roll out Basketball, Hockey, Football, and Pokemon following the same playbook. We won't announce a date until coverage is actually live.

How do I combine pop data with sales data?

Population and price data are the natural pair — pop tells you how rare a grade is, and price tells you what that rarity is worth. Pull the card-level pop counts, then pull recent sales and live listings from the Price Data API for the same card. Apps use this pairing to justify a low-pop PSA 10 premium, surface gem-rate context, or build investor-grade scarcity views.

Add Real Rarity Context to Your App

Now in beta. PSA pop live today. Card and set level, both endpoints.

Beta · Card & set level · PSA on Baseball live today

We use cookies to improve your experience and analyze site traffic. By clicking 'Accept', you agree to our use of cookies for analytics.