Pokemon Cards Scraper - Prices, Population & Grades avatar

Pokemon Cards Scraper - Prices, Population & Grades

Pricing

from $17.14 / 1,000 price records

Go to Apify Store
Pokemon Cards Scraper - Prices, Population & Grades

Pokemon Cards Scraper - Prices, Population & Grades

Scrape Pokemon card prices by grade (Ungraded, Grade 7 to PSA 10) from PriceCharting.com, plus PSA/CGC population reports, card details, price history and sold comps. Export CSV, Excel, JSON. No login or API key. Maps all 6 real grade prices for every card.

Pricing

from $17.14 / 1,000 price records

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

RecordsData

๐ŸŽด Pokemon Cards Scraper - Prices, Population & Grades

Pokemon Cards Scraper is an Apify Actor that extracts Pokemon card prices from PriceCharting.com. Search by card name, read whole sets, or paste URLs and product IDs. Each row has the full grading ladder (up to 19 grades, from Ungraded to PSA 10 and BGS 10 Black), sales volume, a 1600 px image and the six classic grade fields. Optional add-ons return PSA/CGC population, card details, price history and sold comps. Monitor mode returns only new or changed cards. Export to CSV, Excel or JSON. No login or API key needed.

The Pokemon Cards Scraper turns a card name, set name or PriceCharting page into structured data. In a real test on 2 Base Set cards with every add-on, one Charizard [1st Edition] #4 row came back with 6 grade prices, 11 population rows, 122 sold comps and 6 price-history series in about 10 seconds.

PriceCharting stores trading cards in the same generic price table it uses for video games, with raw names like loose, cib and manual only. This Actor maps them to the real grade (Ungraded, Grade 7 to 9.5, PSA 10), so your spreadsheet says psa10. It reads Pokemon only; other pages are refused with a free error row.

๐ŸŽฏ What does the Pokemon Cards Scraper do?

You can feed it five kinds of source, alone or mixed in one run:

  • Search by name. searchQueries such as "charizard base set"; every word must appear in the card title or set name.
  • Sets by name. sets takes "Base Set", "Jungle", "Scarlet & Violet 151", a slug or "all" (about 300 sets, including Japanese and Chinese ones).
  • URLs and IDs. startUrls takes set and card pages, productIds takes numeric IDs.
  • Monitor mode. onlyChanged skips cards whose prices did not move since the last run.

Each card is one row with the price at every grade. Four optional add-ons are billed separately, only when they return data.

๐Ÿ“ฆ What data does the Pokemon Cards Scraper return?

FieldDescription
title, cardNumber, setName, setUrlCard name with number, for example "Charizard [1st Edition] #4", and set name and link
url, productId, imageUrl, images, upcCard URL, numeric ID, 1600 px image, extra photos and UPC when the page has them
currency, scrapedAtAlways USD, and the ISO timestamp
ungraded, grade7, grade8, grade9, grade9_5, psa10The six classic grade prices in USD
fullPricesThe whole ladder with the site's labels (Grade 1 to 9.5, TAG 10, SGC 10, CGC 10, PSA 10, BGS 10, BGS 10 Black), only grades with a price
salesVolume, salesPerYear, searchQuerySales volume per grade as the page words it and as a number per year, and the search that found the card
populationOptional. PSA and CGC population count plus market price for each grade 1 to 10
cardDetails, priceHistoryOptional. Genre, release date, publisher, print run, eBay ePID, TCGPlayer ID; monthly price series per grade
soldCompsOptional. Recent eBay and TCGPlayer sales with grade, link and price

A grade with no market price is left out of the row, never written as null. Cards with no price at any of the six grades are skipped and not billed. ASIN is not offered: PriceCharting leaves it empty on Pokemon pages.

๐Ÿงพ Sample output (real run)

Real cloud row with all four add-ons on, arrays shortened. It predates the newer columns listed above.

{
"title": "Charizard [1st Edition] #4",
"ungraded": 8022.5,
"grade9": 31020,
"grade9_5": 70401,
"psa10": 343098,
"cardDetails": { "genre": "Pokemon Card", "releaseDate": "January 9, 1999", "publisher": "Wizards of the Coast (WOTC)", "ebayEpid": "715593", "tcgplayerId": "106999" },
"population": [ { "grade": "1", "psaPopulation": 215, "cgcPopulation": 11, "totalPopulation": 226, "priceAtGrade": 9100 } ],
"soldComps": [ { "grade": "ungraded", "date": "2026-08-31", "price": 7500, "source": "eBay" } ]
}

๐Ÿ’ฐ How much does it cost to scrape Pokemon card prices?

Pay-per-event pricing. Free-tier prices from the live Actor page, read on 2026-10-10. Paid plans get a small discount on the price record (down to $0.01714).

EventPriceBilled when
Price record$0.02One card row with real per-grade prices is saved
Population record$0.01One population row (one grade) is returned
Card details record$0.01Card details were found for the card
Price history record$0.01One grade series is returned (up to 6 per card)
Sold comps record$0.01One sold listing is returned

The newer columns (full ladder, sales volume, image, product ID, set fields) are part of the price record at no extra cost. A search that matches nothing charges nothing and ends with one free scan-budget notice row.

At free-tier prices, base price records only: 10 cards cost $0.20, 100 cards cost $2.00 and 1,000 cards cost $20.00. On Gold, Platinum and Diamond plans 1,000 cards cost $17.14. Every add-on is billed on top, per row returned, at $0.01 each.

Example from real runs: two cards with every add-on produced 2 price, 22 population, 2 card details, 12 price history and 322 sold comps records. That is 358 events, about $3.62, or roughly $1.81 per card. includeAllGradeSoldComps can bill 280 to 400 comps ($3 to $4) on one card, so it is off by default.

You are never billed for error rows, notice rows, empty results, cards with no data for an add-on, or runs that fail. The Actor stops cleanly when your maximum charge per run is reached.

๐Ÿš€ How to scrape Pokemon card prices in 3 steps

  1. Pick a source. Type a card name, name a set, or paste URLs. With no source, the Actor reads the Base Set page.
  2. Set Max Items. The default is 10 cards, and free users are capped at 10 per run.
  3. Pick add-ons and click Start. Download JSON, CSV, Excel or XML.

โš™๏ธ Pokemon Cards Scraper input

FieldTypeDefaultWhat it does
searchQueriesarrayemptyCard names or keywords, for example "charizard". Every word must match the title or set name.
setsarrayemptyPokemon sets by name, slug or set URL, or "all". Combine with search to search inside those sets.
startUrls, productIdsarrayemptyPriceCharting Pokemon set or card pages, and numeric product IDs
maxResultsPerQueryinteger10Cards each search may return (1 to 500)
maxScanSecondsinteger180Time cap for reading set pages during a name search (10 to 230)
maxItemsinteger10Maximum cards across all sources. Free users: 10.
includePopulationbooleanfalseAdd PSA and CGC population at grades 1 to 10. Billed per row.
includeCardDetailsbooleanfalseAdd release date, publisher, eBay ePID and TCGPlayer ID. Billed once per card.
includePriceHistorybooleanfalseAdd the monthly price series per grade. Billed per series.
includeSoldCompsbooleanfalseAdd recent eBay and TCGPlayer sold listings. Billed per listing.
includeAllGradeSoldCompsbooleanfalseWith Sold comps, also return the other grade tabs. Billed per listing.
onlyChangedbooleanfalseOnly cards not returned before by this search, or whose price moved. Skipped cards are free.
stateKey, resetSeenstring, booleanempty, falseOptional monitor name, and clear the monitor memory before the run
{ "searchQueries": ["charizard"], "maxResultsPerQuery": 5, "maxItems": 5, "includePopulation": true }

URLs that are not Pokemon PriceCharting set or card pages produce one free invalid-input error row before anything is charged. A search by name reads set pages one after another: a common name ("charizard base set") comes back in about 6 to 8 seconds, a rare name can take 80 to 150 seconds. Narrow the search with sets if the time cap ends it. Failed pages are saved as an unbilled { "error": "..." } row.

๐Ÿ†š How does it compare to other PriceCharting scrapers?

Read on 2026-10-10 from the public Store listings; "not stated" means the listing does not show the feature.

FeatureRecordsData (this Actor)incognito_modecrawloop
Keyword searchYes, Pokemon only, plus set namesNo, URLs and IDs onlyYes, all categories
Grading ladderUp to 19 grades plus six named fieldsfullPrices, same ladderFull ladders in details mode
Population and sold compsBoth, every grade tab optionalBoth, sales opt-inBoth, in details mode
Monitor modeYes, only new or changed cardsNo, schedules and summaryNot stated in their listing
Price per 1,000$20 (Free), $17.14 (Gold), add-ons extra$5, then $1.50 after 1,000From $1 for listings

Others read the same day: gio21 ($5 per 1,000, keyword search, UPC, ASIN and ePID, price history) and powerai (about $5 per 1,000 plus $0.09 per run, only three grades).

Plainly: we cost about 4x the main rival per card at the Free tier, before their start fee. The price buys the only Pokemon-focused keyword search with set names, PSA/CGC population and sold comps in one run, and monitor mode with free skipped cards. incognito_mode also covers BGS, SGC, images and ASIN. If you only need flat prices, a cheaper actor fits better.

๐Ÿ”Œ How do I use it through the API?

Call RecordsData/pokemon-cards-scraper with curl or apify-client using the same input as above. It works with Make, Zapier, n8n, Google Sheets and Airbyte. Use the Apify Scheduler with onlyChanged for only cards whose price moved.

๐Ÿค– Pokemon Cards Scraper MCP server for AI agents

Agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/pokemon-cards-scraper, which loads only this Actor as a tool.

Add this to your MCP client configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=RecordsData/pokemon-cards-scraper"
}
}
}

Example agent prompt:

Use the Pokemon Cards Scraper to search "charizard base set", return up to 5 cards with their Ungraded and PSA 10 prices, and tell me which has the biggest gap. Skip sold comps.

The tool description is: extract Pokemon card prices from PriceCharting by search, set, URL or product ID, with the full grading ladder and optional population, history and sold comps. It takes the same fields as the Input table above.

๐Ÿ’ผ What can you do with Pokemon card price data?

  • Grading ROI. Compare ungraded with psa10 and the population counts before you submit a card.
  • Collection valuation, price alerts and set research across a full set such as Base Set.

The Actor reads only publicly visible pricing pages and does not log in. Check PriceCharting's terms of service. The Actor is independent and not affiliated with PriceCharting, PSA or CGC.

โ“ FAQ

Why does the Pokemon Cards Scraper output use grade7, grade8 and psa10?

PriceCharting reuses its video-game price table for Pokemon cards, so its own labels read loose, cib, new, graded, box only and manual only. The Pokemon Cards Scraper maps each column to the real grade: Ungraded, Grade 7, 8, 9, 9.5 and PSA 10. The wider ladder (TAG, ACE, SGC, CGC, BGS) comes in fullPrices.

Why did my Pokemon card scrape return 0 results?

Three cases cause this. If the PriceCharting page was blocked or changed, the run fails with a clear message and nothing is charged. If a name search found no match inside the maxScanSeconds budget, the run succeeds with one free scan-budget notice row; narrow the search with Sets or raise the budget. A 404 page ends with a status message and no charge.

What happens if I send an empty or invalid input?

An empty {} input falls back to the PriceCharting Base Set page and 10 cards. If a URL is not a Pokemon page (video games, LEGO and consoles are refused), the run ends as SUCCEEDED with one free invalid-input error row and a hint, and nothing is charged.

Yes, by card name. PriceCharting's own search page is blocked by Cloudflare from the cloud, so this Actor reads the Pokemon set listings (302 sets) and matches every word of your query against the card title plus set name. Put a set name in the query for a faster result, or use sets.

What is a Pokemon card population report?

A population report shows how many copies PSA and CGC have graded at each grade from 1 to 10, plus the market price at that grade. The Pokemon Cards Scraper returns it as the optional population field with includePopulation, billed per grade row returned.

Do I need a login, API key or proxy to scrape PriceCharting Pokemon cards?

No. The Pokemon Cards Scraper needs no PriceCharting login, no API key and no proxy configuration. It reads the public PriceCharting pages directly. You only need an Apify account, and free accounts can try it with the 10 card preview limit.

How many Pokemon cards can I scrape in one run?

Free Apify users get up to 10 cards per run as a preview. Paid users can raise maxItems up to 1,000,000 cards per run. Cost scales with the cards returned: 1,000 price records cost $20 at the free tier price, plus any add-on rows.

Will a duplicate PriceCharting URL be billed twice?

No. The Pokemon Cards Scraper tracks the cards it has already saved during a run, so each card is saved and billed once per run, even if it appears in two start URLs, a search and a set, or as its own card URL. Error rows and failed runs are never billed.

Can I schedule the Pokemon Cards Scraper to track prices over time?

Yes. Use the Apify Scheduler or the API to run it daily or weekly. Turn on onlyChanged and a repeat run returns only cards that are new or whose price moved at any grade, so an unchanged run returns 0 rows and costs nothing. Each row carries a scrapedAt timestamp.

๐ŸŽฎ Want more game and collectible data?

๐Ÿ†˜ Support

Write to contact.punkrecordsdata@gmail.com or open an issue.

Last updated: 2026-10-11