PriceCharting Product Scraper
Pricing
from $5.00 / 1,000 product results
PriceCharting Product Scraper
Scrape PriceCharting prices for video games, Pokemon and other TCG cards, comics and coins: every grade (PSA, BGS, CGC, SGC, TAG, ACE), full price history, recent sold listings, POP report and 1600px images. Clean JSON/CSV by product URL or ID. Failed lookups are never billed.
Pricing
from $5.00 / 1,000 product results
Rating
0.0
(0)
Developer
Elena Vance
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
PriceCharting Product Scraper — Prices, Price History, Graded Values & Images
Turn any PriceCharting product page into clean, structured JSON: current prices for every condition and grade — including PSA, BGS, CGC, SGC, TAG and ACE graded card values — the complete price-history time series, recent sold listings, and full-resolution product images — for video games, Pokémon / Magic / Yu-Gi-Oh! and other trading cards, comics, coins, Funko Pops, and LEGO sets.
Paste a list of product URLs or numeric product IDs and get back one tidy record per item, ready to drop into a spreadsheet, database, dashboard, or app. No browser automation, no HTML wrangling, no $49/month subscription — and you are never billed for failed lookups.
Why this Actor
- Full price history — not just today's price. The entire time series behind PriceCharting's charts (often hundreds of data points per product), per condition. PriceCharting's own official API does not return history; this Actor does.
- Full-resolution product images. The cover photo plus every gallery image (card backs, box / cartridge / manual shots) as direct 1600 px URLs — ready for your storefront, app, or catalog.
- Every price point, one record. Loose / CIB / new / graded / box-only /
manual-only for games; Ungraded → PSA 10 grade tiers for cards (see the
mapping table below). Missing conditions come back as
null, never a crash. - The complete grading ladder (
fullPrices). Every row of PriceCharting's Full Price Guide with the site's own labels: for cards that means Grade 1-9.5 plus TAG 10, ACE 10, SGC 10, CGC 10, CGC 10 Pristine, PSA 10, BGS 10 and BGS 10 Black Label; for games, hybrid conditions like Item & Box and Graded CIB. Neither the official API nor other scrapers return these. - Sales volume, POP report, and optional sold listings. Per-grade counts of recent sales, the PSA/CGC population chart for cards, and (opt-in) the actual recent sold listings — date, title, sale price, and link per eBay / TCGPlayer / Goldin / PWCC / Heritage sale — the raw comps behind every price.
- You never pay for failures. A dead link, typo, or removed product is reported in the run summary — it is not written to your dataset and not billed. You pay only for product records you actually receive.
- Fast and cheap by design. Lightweight HTTP scraping — no headless browser — so runs are quick and compute stays minimal.
- Flexible input. Full product URLs, bare numeric IDs, or
category/slugpaths — mix them freely in one run. - Optional official-API mode. Bring your own PriceCharting API token and
numeric IDs are resolved through the sanctioned
/api/productendpoint. - Clean, consistent USD output. Prices normalized to USD floats (2 decimals) regardless of where you run from.
Problems this Actor solves
| If you are… | Your problem | How this Actor solves it |
|---|---|---|
| A reseller / game or card shop | Pricing inventory by hand from the website takes hours and goes stale immediately | Re-price your whole inventory in one scheduled run; per-condition prices map directly to what you stock |
| A collector | You want your collection's value and its trend, not a single snapshot | Full price history per condition lets you chart gains/losses over any period |
| A developer building an app or store | The official API needs a $49/month subscription and still returns no history and no images | Pay cents per product on demand, get history and 1600 px images in one call |
| A market researcher / data analyst | Chart data is locked inside the site's JavaScript | The exact chart series arrives as dated JSON points you can load into pandas, Sheets, or BI tools |
| An eBay / marketplace seller | Guessing listing prices leaves money on the table | Pull current prices for every grade plus the actual recent sold comps (date, final price, link) for every item before you list |
| A card grader / submitter | Is grading this card worth the fee? | The full grade ladder in one record — e.g. raw vs Grade 9 vs PSA 10 vs BGS 10 — plus the PSA/CGC POP report and per-grade sales volume to judge the value jump and liquidity |
Efficiency, concretely: valuing a 1,000-item collection by hand at ~30 seconds per lookup is ~8 hours of clicking. This Actor does it in one run of about 15 minutes, for a few dollars, and gives you the history and images the website lookup never would.
What data you get
Each product becomes one dataset record:
| Field | Description |
|---|---|
productId | PriceCharting's numeric product ID |
productName, consoleName | Product and console / set name (e.g. Charizard #4, Pokemon Base Set) |
category | PriceCharting category (e.g. video-games, pokemon-cards) |
url | Canonical product page URL |
releaseDate, genre, upc, epid, asin | Catalog metadata where available |
imageUrl | Cover photo, full-resolution (1600 px) |
images | All product photos (cover + gallery: card backs, box/cart/manual shots), 1600 px |
flags | Product-type booleans: isCard, isComic, isCoin, isSystem, isFunkoPop, isLegoSet, … |
currency | Always USD |
prices | Current price per condition slot (see mapping below) |
fullPrices | Every row of the on-page Full Price Guide, labels verbatim — cards: Ungraded, Grade 1…Grade 9.5, TAG 10, ACE 10, SGC 10, CGC 10, PSA 10, BGS 10, BGS 10 Black, CGC 10 Pristine; games: Loose, Item & Box, Graded CIB, … (null = grade tracked, no sales yet) |
salesVolume | Number of recent sold listings per grade/condition, same labels as the site |
populationReport | Cards only: PSA and CGC population counts per grade 1–10 (the site's POP Report chart) |
recentSales | Opt-in (see input): recent sold listings per grade — { date, title, price, source, itemId, url } per sale, from eBay, TCGPlayer, Goldin, PWCC, Heritage |
priceHistory | Per-condition arrays of { "date": "YYYY-MM-DD", "price": 12.34 } points |
source | scrape or api |
scrapedAt | ISO timestamp |
What the six price slots mean
PriceCharting reuses the same six columns with different labels per category — this Actor keeps stable keys and you read them per category:
| Key | Video games | Trading cards |
|---|---|---|
prices.loose | Loose (cart / disc only) | Ungraded |
prices.cib | Complete in box | Grade 7 |
prices.new | New / sealed | Grade 8 |
prices.graded | Graded | Grade 9 |
prices.boxOnly | Box only | Grade 9.5 |
prices.manualOnly | Manual only | PSA 10 |
(Comics, coins, and other categories follow the same pattern with their own
on-site labels.) priceHistory uses the same keys, so for a card,
priceHistory.manualOnly is the PSA 10 price over time.
If the six slots are not enough, read fullPrices instead: it carries the
site's complete price guide with the labels exactly as shown on the page — no
mapping table needed, and for cards it includes every grading company
(TAG / ACE / SGC / CGC / PSA / BGS, plus Black Label and Pristine variants).
History exists only for the six slots above — PriceCharting publishes no time
series for the company-specific grades, so fullPrices is their current
market value.
Example output
{"productId": 630417,"productName": "Charizard #4","consoleName": "Pokemon Base Set","category": "pokemon-cards","url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4","releaseDate": "January 9, 1999","imageUrl": "https://storage.googleapis.com/images.pricecharting.com/hpgpcpsd42huitud/1600.jpg","images": ["https://storage.googleapis.com/images.pricecharting.com/hpgpcpsd42huitud/1600.jpg","https://storage.googleapis.com/images.pricecharting.com/kmwn5qjyipwzbuwm/1600.jpg"],"flags": { "isCard": true, "isComic": false, "isCoin": false },"currency": "USD","prices": {"loose": 338.42, // Ungraded"cib": 749.50, // Grade 7"new": 1199.03, // Grade 8"graded": 3175.04, // Grade 9"boxOnly": 3403.50, // Grade 9.5"manualOnly": 30085.73 // PSA 10},"fullPrices": { // the complete on-page price guide, labels verbatim"Ungraded": 338.42,"Grade 1": 354.00, "Grade 2": 277.50, "Grade 3": 325.00,"Grade 4": 330.60, "Grade 5": 450.00, "Grade 6": 504.81,"Grade 7": 749.50, "Grade 8": 1199.03, "Grade 9": 3175.04,"Grade 9.5": 3403.50,"TAG 10": null, // tracked, no sales yet"ACE 10": null,"SGC 10": 18051.00,"CGC 10": 7605.63,"PSA 10": 30085.73,"BGS 10": 39111.00,"BGS 10 Black": 195555.00,"CGC 10 Pristine": 27475.00},"salesVolume": { "Ungraded": 48, "PSA 10": 30, "CGC 10": 30, "Grade 9": 30, "…": 0 },"populationReport": {"PSA": { "1": 20, "2": 19, "…": 0, "9": 9, "10": 0 },"CGC": { "…": 0, "9": 2, "10": 4 }},"recentSales": { // only with "Include recent sold listings" enabled"PSA 10": [{ "date": "2026-05-04", "title": "1999 Pokemon Base Set Charizard #4 Holo PSA 10","price": 30100.00, "source": "ebay", "itemId": "157…", "url": "https://www.ebay.com/itm/157…" }],"…": []},"priceHistory": {"used": [ { "date": "2020-09-01", "price": 180.00 }, { "date": "2020-10-01", "price": 210.50 }, "…" ],"graded": [ "…" ]},"source": "scrape","scrapedAt": "2026-06-11T04:24:21+00:00"}
Inputs that could not be fetched are not written to the dataset (and are
never billed). They are listed in the run's SUMMARY record in the key-value
store — { "failures": [ { "input": "…", "source": "scrape", "error": "…" } ] }
— so you can inspect and retry them, and the run's status message tells you at
a glance how many succeeded.
How to use it (60 seconds)
- Click Try for free / Start.
- In Products, add one entry per line — a product page URL or a numeric ID:
https://www.pricecharting.com/game/super-nintendo/super-mario-worldhttps://www.pricecharting.com/game/pokemon-base-set/charizard-47141
- (Optional) Toggle Scrape full product details off if you only need current prices without the history series.
- Click Save & Start. Download results as JSON, CSV, Excel, or via API from the Dataset tab; check the Key-value store → SUMMARY for run totals and any failed inputs.
Tip — finding a product ID: open any product on PriceCharting and hover over its title — the numeric ID appears. Or just paste the page URL.
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
| Products (required) | list | – | One per line: product page URL or numeric product ID. |
| Scrape full product details | boolean | true | Include the full price-history series. Images are always included for scraped products. |
| Include recent sold listings | boolean | false | Adds recentSales (up to ~30 sold listings per grade with date, title, price, link). Increases item size ~5x; leave off if you only need prices. |
| PriceCharting API token | secret | – | Optional. Resolves numeric IDs through the official API when full details are off (see below). |
| Proxy configuration | object | Automatic | Proxy used for scraping. Automatic (datacenter) is reliable and the cheapest; switch to residential only if you ever see failed requests. |
| Max concurrency | integer | 3 | Parallel requests (kept low to be respectful). |
| Delay between requests | integer | 1 | Politeness delay in seconds (max 10). |
| Max items | integer | 0 | Stop after N results (0 = unlimited). |
Pricing — what a run actually costs
This Actor uses transparent pay-per-event pricing with a built-in volume discount: a small Actor-start fee, a fixed price per successful product record for the first 10,000 results of a run, and a ~70% cheaper rate for every result beyond that. No subscription, no minimums, no charges for failures.
| Per run | Rate |
|---|---|
| Results 1 – 10,000 | $5.00 / 1,000 |
| Results 10,001 and up | $1.50 / 1,000 (automatic volume discount) |
| Example job | Approximate cost |
|---|---|
| Value 50 cards | ≈ $0.27 (start fee + 50 results) |
| Re-price a 500-item store inventory | ≈ $2.52 |
| 1,000 products with full history + images | ≈ $5.02 |
| 100,000 products (bulk tier kicks in) | ≈ $185 |
- Failed lookups are free. Dead links and removed products are reported in the summary, not billed.
- Bigger runs cost less. The discount tier resets per run, so one large run is much cheaper than the same job split into many small runs — batch large jobs accordingly.
- Try it free: an Apify free account includes $5 of monthly platform credit — enough to scrape roughly 1,000 products with this Actor before paying anything.
- Compare: PriceCharting's own API requires the $49/month Legendary subscription and still returns no price history, no images, no graded values beyond the basic slots, and no sold listings. Here you pay per result, get all of it, and there is no commitment.
- Stay in control: set a maximum charge per run (Apify's built-in spending limit) and the Actor stops gracefully at your cap, keeping everything already scraped.
Bulk runs (10,000+ products) — best practices
- Input bare numeric IDs instead of full URLs — hundreds of thousands of IDs fit in a single run's input.
- Set the run timeout to unlimited, keep memory at 1 GB, raise Max concurrency to 10–15 and set the delay to 0 — roughly 7–12 products/sec. The request queue survives restarts and migrations.
- Set
maxItemsand a maximum charge as guardrails; datasets reach several GB at this scale with history included (export promptly or read via the API).
Compared to the alternatives
| This Actor | Official API ($49/mo) | Build your own scraper | Manual lookups | |
|---|---|---|---|---|
| Current prices, all conditions | Yes | Yes | You maintain it | Slow |
| Price history series | Yes | No | You reverse-engineer the charts | No |
| Graded values: PSA / BGS / CGC / SGC / TAG / ACE (incl. Black Label, Pristine) | Yes — fullPrices | No | You maintain it | One grade at a time |
| Recent sold listings (eBay, TCGPlayer, Goldin, PWCC, Heritage) | Yes — opt-in | No | Hard: affiliate links to unwrap | Copy-paste |
| POP report & per-grade sales volume | Yes | No | You maintain it | No |
| Product images (1600 px) | Yes | No | You maintain it | Manual saves |
| Cost for 1,000 products / month | ≈ $5 | $49 flat | Your dev time + proxies | ~8 hours of your life |
| Setup time | 60 seconds | Subscription + coding | Days, breaks on site changes | – |
| Export JSON / CSV / Excel / API | Yes, built-in | DIY | DIY | DIY |
Integrate the data
- Exports: JSON, CSV, Excel, XML from the dataset tab — or fetch
programmatically:
GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
- Run on a schedule: use Apify Schedules to re-price daily or weekly, and webhooks to push finished runs into your pipeline (Sheets, Slack, your backend).
- From code: call the Actor with the Apify API or SDKs (Python / JavaScript) and read the dataset when the run finishes.
- Run summary: every run writes a
SUMMARYrecord (key-value store) with totals, per-source counts, and the list of failed inputs — ideal for monitoring automated pipelines.
Optional: official API token mode
If you have a paid PriceCharting subscription, add your API token in the
input. When Scrape full product details is off, numeric-ID inputs are
fetched through PriceCharting's official, sanctioned /api/product endpoint
(rate-limited to 1 request/second) and marked "source": "api".
Note: the official API returns current prices but no price history and no images. Because of that, while full details are enabled (the default) the Actor scrapes every input — including numeric IDs — so history and images are never silently missing. URL inputs are always scraped.
FAQ
Which products are supported? Anything with a PriceCharting product page: video games (every console generation), Pokémon / Magic / Yu-Gi-Oh! / Lorcana / One Piece / Star Wars / Marvel and other TCG cards, comic books, coins, Funko Pops, and LEGO sets.
Do I get product images?
Yes — every scraped record includes the cover (imageUrl) and all gallery
photos (images) as full-resolution 1600 px URLs.
What about graded card prices?
Every card record includes the complete grading ladder in fullPrices:
Ungraded, Grade 1 through 9.5, and the company-specific top grades — TAG 10,
ACE 10, SGC 10, CGC 10, CGC 10 Pristine, PSA 10, BGS 10 and BGS 10 Black
Label — exactly as PriceCharting publishes them. The six headline slots
(Ungraded → PSA 10) additionally come with full price history;
company-specific grades are current market values (the site publishes no time
series for them, so this is everything that exists).
Do I get the actual sold listings (comps)?
Yes — turn on Include recent sold listings and every record gains
recentSales: the most recent sales per grade with date, listing title, final
sale price (best-offer sales report the accepted price, not the asking price),
the marketplace (eBay, TCGPlayer, Goldin, PWCC, Heritage), and a direct,
tracking-free link to the listing. Cards also always include salesVolume
(how many recent sales per grade) and the PSA/CGC populationReport.
How fresh is the data? Each run fetches live pages, so you get exactly what PriceCharting shows at that moment. Schedule the Actor to keep your dataset as fresh as you need.
What happens with broken or wrong URLs? They're skipped, listed in the run summary with the error, and never billed. You pay only for successful product records.
Can I scrape a whole console or set at once?
v1 takes individual product URLs/IDs. Search-keyword and full-set (/console/…)
modes are on the roadmap — open an issue if you want them prioritized.
Do I need a PriceCharting account? No. The optional token mode only changes how numeric IDs are fetched.
Are prices in my local currency? Prices are normalized to USD consistently, regardless of run location.
What formats can I export? JSON, CSV, Excel, XML — from the Console or via the Apify API.
Roadmap & support
Planned: search-keyword input, full-set/console bulk mode, per-grade PSA/BGS tables, marketplace (eBay sold) listings. Found a bug or need a field? Open an issue from the Actor's Issues tab — feedback directly shapes the roadmap.
Disclaimer
This Actor is intended for personal and research use. You are responsible for ensuring your use complies with PriceCharting's Terms of Service and applicable law. For high-volume or commercial use, PriceCharting's official paid API (token mode) is the sanctioned data source. Please scrape responsibly — keep concurrency low and delays reasonable. This project is not affiliated with, endorsed by, or sponsored by PriceCharting.