Bulk PSA Population Export
Every PSA population number we track, as one CSV. 50,000+ cards, all ten grades, gem rates, and raw, PSA 9 and PSA 10 prices on every row. One request, no pagination.
One file, the whole database
curl -H "X-API-Key: your_key" \ https://www.pokeinvest.io/api/v1/pop-export.csv -o pops.csv pokeinvest_id,tcgplayer_id,name,set_name,number,raw_price, psa_9_price,psa_10_price,psa_1,...,psa_10,total_pop,gem_rate_pct, print_number,rarity,type,hp,attack_1,...,attack_4,language,set_id pi_65879,146695,Mewtwo GX,Pokemon Shining Legends,39,8.56, 42.08,278.01,3,...,1127,3026,37.24, 39/73,Ultra Rare,Psychic,190,[P] Full Burst (30x)...,English,sm35
- Joins to what you already have — every row carries a TCGplayer product ID alongside ours, so there's no matching step and no ID mapping to build.
- IDs that don't move — a
pokeinvest_idis never reused and never renumbered. If we ever merge two records the old ID keeps resolving. - Prices alongside the pops — raw, PSA 9 and PSA 10 on every row, so the grading math is in the same file as the odds.
- Every completed sale, too —
/api/v1/sales-export.csvstreams every clean sale we recorded since 2012: card, date, price, grader and grade, marketplace, sale type. Filter with?language=japanese,?since=2025-01-01or?grade=PSA+10. The Japanese file alone is 425,000 rows. - The card itself, not just the numbers — printed number, rarity, type, HP and attack text ride along, so you can build a card page off one file.
- A set code you can look up —
set_idis the public set id:xy7,sm12,SV9a. Join it straight to your own set table. - Pull it whenever — it's a live export, not a monthly drop. Re-download as often as you want.
The full file, as often as you like · cancel anytime
Card checkout via Stripe. Your key arrives by email within a minute of paying.
Questions
The API answers one card at a time, which suits an app or a watchlist. This is the whole table in one download, which suits analysis, a database load, or anything where you'd rather not make 50,000 requests.
Yes — raw, PSA 9 and PSA 10 on every row, next to that card's population at each grade.
English sets use pokemontcg.io ids (xy7, sm12, mcd18). Japanese sets use TCGdex ids (SV9a, PCG6, E4), falling back to the standard Japanese code where TCGdex has no entry — it carries nothing from the DP, Platinum or BW eras, so those read DP3, Pt1, BW7. It's on about 93% of rows (95% of English, 88% of Japanese). Sets no public catalog lists — Topps, Burger King, vending, the promo catch-alls — are left blank rather than given an id we made up. A code is only unique within a language: neo1 is Neo Genesis in English and 金、銀、新世界へ in Japanese, so key on set_id plus language.
Prices refresh daily. Populations refresh era by era, so modern sets are current and some older sets are months behind — ask and we'll tell you exactly where any era stands.
Use it in your own product, internally or with customers. Please don't redistribute the file itself as a dataset. If you want to publish figures from it, cite PokeInvest with a link and we're happy.
Reply to the email your key came in, or use the billing portal. Access stops at the end of the period you paid for.