PriceCharting Collection Scraper
Pricing
from $10.00 / 1,000 collection results
PriceCharting Collection Scraper
Scrape an entire PriceCharting collection/console page (e.g. a full Pokemon set or game console) in one record: the collection's historical value and median-price time series, plus every product in the set with its name, ID, image and listed prices. Failed lookups are never billed.
Pricing
from $10.00 / 1,000 collection results
Rating
0.0
(0)
Developer
Elena Vance
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
PriceCharting Collection Scraper — Whole-Set Prices, History & Product Lists
Turn any PriceCharting collection page (a full Pokémon set, a game console, a comic run, a coin series) into one clean JSON record: the collection's historical index value and median-price time series, plus every product in the set with its name, ID, image and current prices.
Paste a collection URL (or bare slug) and get back one tidy record per collection — ready for a spreadsheet, database, dashboard, or app. No browser automation, and you are never billed for failed lookups.
Companion to the PriceCharting Product Scraper, which scrapes individual product pages (full grade ladder, per-condition price history, sold listings, POP report, gallery images). Use this actor when you want the whole set at once; use that one when you want deep detail on specific products.
What it does
Given https://www.pricecharting.com/console/pokemon-1999-topps-movie, it:
- Reads the collection header — name, category, the PriceCharting Index value and median card price, and the full historical time-series behind the page's chart (both the index-value and median series).
- Pages through the entire product table (the site loads 150 at a time; this actor follows the "more results" pagination to the end automatically) and captures every product: name, numeric ID, canonical URL, full-resolution image, and the three listed prices.
- Emits one dataset record per collection, with all products nested inside.
Non-collection pages (typos, removed sets) are reported in the run SUMMARY and
are never written to the dataset or billed.
Input
| Field | Type | Default | Description |
|---|---|---|---|
| Collections (required) | list | – | One per line: a /console/<slug> URL or a bare slug (e.g. pokemon-1999-topps-movie). |
| Include the product list | boolean | true | Scrape every product in the set into the products array. Turn off for collection stats + history only (one page, much faster on huge consoles). |
| Include the collection price history | boolean | true | Include the full value/median history series. The current value & median are always included. |
| Max products per collection | integer | 0 | Cap products scraped per collection (0 = whole set). |
| Proxy configuration | object | Automatic | Datacenter is reliable and cheapest; switch to residential only on failures. |
| Max concurrency | integer | 3 | Collections fetched in parallel (pagination within a collection is always sequential). |
| Delay between requests | integer | 1 | Politeness delay (seconds) before each request, pagination included. |
| Max collections | integer | 0 | Stop after N collection records (0 = unlimited). |
| Max run seconds | integer | 210 | Stop the run gracefully after N seconds, keeping every collection already scraped. 0 = no time limit. |
Run length. A single large console can page through thousands of products, so Max run seconds (
210) bounds the run's wall-clock time. When it is reached the Actor stops gracefully — every collection already scraped is kept,SUMMARYrecordsstoppedOnTimeBudget: true, and the run finishes successfully. Raise it (or set0) for very large consoles, and give the run a matching Apify run timeout. Turning off Include the product list is the other way to keep a big console fast.
Output
Each collection becomes one dataset record:
| Field | Description |
|---|---|
collectionUrl, collectionName | The page URL and clean set/console name |
category, consoleUid, breadcrumb | PriceCharting category, internal UID, and the breadcrumb trail |
currency | Always USD |
priceColumns | Maps the stable price keys to this category's on-site labels (cards: used=Ungraded, cib=Grade 9, new=PSA 10; games: Loose / CIB / New) |
productCount | Number of products scraped (null if the product list was disabled) |
currentValue, currentMedian | Latest index value and median card price (USD) |
valueHistory, medianHistory | Per-series arrays of { "date": "YYYY-MM-DD", "price": 12.34 } points |
products | One entry per product: { productId, productName, url, imageUrl, prices: { used, cib, new } } |
source, scrapedAt | scrape; ISO timestamp |
Example (products & history truncated)
{"collectionUrl": "https://www.pricecharting.com/console/pokemon-1999-topps-movie","collectionName": "Pokemon 1999 Topps Movie","category": "pokemon-cards","consoleUid": "G52737","breadcrumb": ["Trading Cards", "Pokemon Card", "Pokemon 1999 Topps Movie"],"currency": "USD","priceColumns": { "used": "Ungraded", "cib": "Grade 9", "new": "PSA 10" },"productCount": 201,"currentValue": 24.70,"currentMedian": 2.23,"valueHistory": [ { "date": "2022-07-02", "price": 4.62 }, "…", { "date": "2026-06-02", "price": 24.70 } ],"medianHistory": [ { "date": "2022-07-02", "price": 2.44 }, "…", { "date": "2026-06-02", "price": 2.23 } ],"products": [{"productId": 3560849,"productName": "Pikachu's Vacation #42","url": "https://www.pricecharting.com/game/pokemon-1999-topps-movie/pikachu%27s-vacation-42","imageUrl": "https://storage.googleapis.com/images.pricecharting.com/…/1600.jpg","prices": { "used": 3.64, "cib": 33.73, "new": 154.81 }}],"source": "scrape","scrapedAt": "2026-06-17T06:27:41+00:00"}
For the per-condition price history, full grade ladder (PSA/BGS/CGC/…), sold
listings and gallery images of an individual product, feed its url or
productId into the PriceCharting Product Scraper.
HTTP API (one collection per request)
This Actor can also be called over HTTP as a REST API — useful when an app or agent needs a single collection lookup without starting a batch run. Paste a list of collections, or use bulk volume pricing across many sets, still uses the Input interface above.
Authenticate with your Apify API token (prefer the header form):
curl -X POST "https://incognito_mode--pricecharting-collection-scraper.apify.actor/scrape" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"collection": "pokemon-1999-topps-movie","includeProducts": true,"includePriceHistory": true}'
| Field | Default | Description |
|---|---|---|
| collection (required) | – | /console/<slug> URL or bare slug |
| includeProducts | true | Full product list (pages the set) |
| includePriceHistory | true | Full value/median history series |
| maxProductsPerCollection | 0 | Cap products (0 = no limit) |
| requestDelaySecs | 1 | Delay between page requests |
| maxRunSecs | 180 | Soft wall-clock budget for this request (capped at 240) |
A successful response is the same JSON record shape as a dataset item from an Input run. Failed lookups return an error and are not billed. Copy the stable hostname from the Actor’s Endpoints tab in Apify Console (do not hard-code username–name URLs if the Console shows an ID-based host).
Notes
- Prices are normalized to USD (the
currency=usdcookie pins it regardless of run geo). - The three per-product price columns are whatever PriceCharting shows for that
category — read
priceColumnsto know whatused/cib/newmean for your set. - This project is not affiliated with, endorsed by, or sponsored by PriceCharting. Please scrape responsibly — keep concurrency low and delays reasonable.
