PSA Population Report Lookup & Change Tracker
Pricing
from $15.00 / 1,000 results
PSA Population Report Lookup & Change Tracker
Get PSA population reports by set, card or cert. Track a card watchlist over repeated runs with changes in total population, PSA 10, PSA 9 and gem rate. Export grade breakdowns and timestamped comparisons to JSON, CSV or Excel.
PSA Population Reports & Change Tracking
Get grade-by-grade population data for an entire PSA card set, or track selected cards over time. Export JSON, CSV, or Excel for your own research, inventory tools, and dashboards.
New: population-change tracking. Save a watchlist once, then run it again to get net changes in total population, PSA 10, PSA 9, and the historical PSA 10 population share. Your baseline and observations are stored in your own Apify account.
Start with a set report
{"setUrl": "https://www.psacard.com/pop/tcg-cards/2024/pokemon-ssp-en-surging-sparks/285178","maxResults": 10}
A direct set URL is the most reliable input. setName searches for a matching set and can choose the wrong edition when names overlap; check its selectedUrl. Set reports do not require a PSA API token.
Sets containing only PSA/DNA autograph-certified cards return their counts in psaDnaPop, with populationType: "PSA_DNA" and psaPop: null. These counts are separate from regular PSA populations. Population-change tracking currently supports regular PSA cards only. When an API request uses maxResults or limit, that cap applies to card records; search details are saved as SEARCH-RESULTS in the run's key-value store.
Track a card or a set
Use a specID returned by the set report. This example follows one card:
{"setUrl": "https://www.psacard.com/pop/tcg-cards/2024/pokemon-ssp-en-surging-sparks/285178","trackPopulationChanges": true,"watchlistName": "surging-sparks-watchlist","watchSpecIds": [12168745]}
- The first successful run establishes a baseline. Change fields are
null. - Run the same input again to compare against the previous successful observation.
- To repeat automatically, save an Apify task and schedule it daily or weekly. This Actor does not create schedules or send messages itself.
- Download results or use an Apify integration to send the rows to your own workflow.
Leave watchSpecIds empty to track every card in the set. Each returned card is billed, including unchanged cards and the first baseline. Use watchSpecIds for an inexpensive small watchlist. Changing the watchlist name or selected IDs starts an independent baseline. For tracking, leave maxResults at 0/unset; selecting cards explicitly keeps comparisons consistent. Do not run the same watchlist concurrently.
What you get
Every card retains specID, cardNumber, subject, variety, setName, year, psaPop, and the source observation timestamp. The population object includes grades, half grades, qualifiers, and total counts as available from PSA.
Tracking adds:
| Field | Meaning |
|---|---|
populationChangeStatus | BASELINE, UNCHANGED, CHANGED, CORRECTION, or NEW_TO_SET |
deltaTotal | Signed difference in total reported population |
deltaGrade10, deltaGrade9 | Signed differences in these grade populations |
gemRatePct | PSA 10 count divided by total population, as a percentage |
gemRateChangePp | Change in that share, in percentage points |
totalGrowthPct | Net total change divided by the previous total |
baselineAt, observedAt, elapsedDays | The actual comparison window |
netPopulationPerDay | Net total change divided by elapsed days |
setUrl | Source set used for this observation |
The run's key-value store includes POPULATION-CHANGE-SUMMARY. It records card counts, corrections, and previously present IDs missing from the current set. Complete observations are retained in your named psa-population-tracking-v1 store. They are accessible to subsequent runs of this Actor in your account.
Missing records are not reported as zero. Empty, incomplete, invalid, or mismatched snapshots fail tracking without replacing the baseline. Negative changes are preserved as corrections; they are not silently clamped.
Cert and spec-ID lookup
Single-cert, batch-cert, and direct-spec lookups are available through certNumber, certNumbers, and specID. An optional secret apiToken lets you supply your own PSA API token. Access depends on availability and, when using your token, your PSA plan. An Actor fee does not buy a PSA subscription.
Cert and spec lookup results may reflect earlier population observations; the run timestamp does not guarantee that those populations were observed at that time. Use a direct set report or tracking for current set observations. Normal Actor result charges apply to all returned cards.
Pricing
See this Actor's Pricing tab for the current rate and any plan discounts. Tracking uses the same per-result price: one returned card is one result. For example, at $15 per 1,000 results, tracking 10 cards once a day for 30 days produces 300 results ($4.50 before applicable discounts or separately listed charges). Tracking 400 cards daily produces 12,000 results ($180). Named storage retention and subsequent downloads may incur Apify storage charges.
Limitations and troubleshooting
If a lookup returns no usable records, the run fails and saves its details under LOOKUP-ERROR in the run's storage. Error messages are not added to the result dataset. Batches that return some records keep those results and report failed or unattempted lookups in LOOKUP-SUMMARY.
- Tracking history starts when you first run the watchlist. No earlier history is invented or backfilled.
- PSA may correct, merge, split, or remove records. Population changes are net differences in reports, not a count of new submissions or unique physical cards.
- Gem rate is an observed population share, not the probability that an ungraded card will receive PSA 10.
- Different printings and varieties have different spec IDs. Check the set, card number, and variety before comparing cards.
- PSA site changes, blocking, or outages may prevent a run. Tracking requires a complete response and will keep the previous baseline if it cannot obtain one.
- If an ID is missing, retrieve a current set report and verify that it belongs to this exact set.
- Keep the named tracking store to retain baselines. Deleting it starts new baselines on later runs.
This independent tool is not affiliated with or endorsed by PSA or Collectors. PSA is a trademark of its owner. Data is provided for research and workflow automation.