# Pokemon Cards Scraper - Prices, Population & Grades (`punkrecordsdata/pokemon-cards-scraper`) Actor

Scrape Pokemon card prices by grade (Ungraded to PSA 10), PSA/CGC population reports, card details and sold comps from PriceCharting.com. The only scraper that reads real per-grade prices instead of relabeled video-game fields.

- **URL**: https://apify.com/punkrecordsdata/pokemon-cards-scraper.md
- **Developed by:** [PunkRecordsData](https://apify.com/punkrecordsdata) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 price records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner" alt="PunkRecordsData" width="100%" />
</p>

## 🎮 PriceCharting Scraper — PunkRecordsData

> 🚀 **Export collectible prices in seconds.** Scrape video game, Pokemon card, Funko Pop, LEGO, comic, coin, and sports card prices from PriceCharting.com with full price history and sold comps.

The **PriceCharting Scraper** extracts current market values and historical pricing data from [PriceCharting.com](https://www.pricecharting.com) — the internet's most comprehensive price guide for collectibles. It covers 73+ consoles and categories including video games, Pokemon cards, Magic cards, Yu-Gi-Oh cards, Funko Pops, LEGO sets, comics, coins, and sports cards.

**Coverage:** Each scrape returns item name, URL, and current prices across 6 conditions (Loose, CIB, New, Graded, Box Only, Manual Only). Optional enrichments add full price history arrays (monthly snapshots since 2020) and recent eBay sold listings with dates and prices.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Collectors & investors | Track portfolio values over time |
| Resellers & flippers | Find underpriced items and market gaps |
| Data analysts | Build pricing models and trend reports |
| Game stores & shops | Automate inventory valuation |

### 📋 What the PriceCharting Scraper does

> 💡 **Why it matters:** Manually checking prices across 73+ consoles and thousands of items is tedious. This scraper automates the entire process — just point it at a console or category page and get structured pricing data.

The scraper navigates PriceCharting's console listing pages (e.g., `/console/pokemon-base-set`, `/console/nes`), extracts every product with its current market prices, and optionally follows each product link to pull historical price charts and recent eBay sold data. Cursor-based pagination handles pages of 150+ items automatically.

### 📊 Output

Each record contains:

| Field | Description |
|---|---|
| `title` | Product name (e.g., "Charizard #4") |
| `url` | Full PriceCharting product URL |
| `loose` | Loose/ungraded price ($) |
| `cib` | Complete in box price ($) |
| `new` | Factory sealed price ($) |
| `graded` | Graded price ($) |
| `boxOnly` | Box only price ($) |
| `manualOnly` | Manual only price ($) |
| `scrapedAt` | ISO timestamp of scrape |
| `priceHistory` | (optional) Monthly price arrays per condition |
| `soldComps` | (optional) Recent eBay sold listings |

**Example output:**

```json
{
  "title": "Charizard #4",
  "url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4",
  "loose": 374.60,
  "cib": 737.37,
  "new": 1350.26,
  "graded": 2850.00,
  "boxOnly": 7264.29,
  "manualOnly": 12062.20,
  "scrapedAt": "2026-09-14T12:00:00.000Z"
}
```

### ✨ Why choose this Actor

- **Multi-category coverage** — video games, Pokemon, Funko, LEGO, comics, coins, sports cards in one actor
- **Browse-first design** — no search API needed, works with any PriceCharting console/category URL
- **Optional enrichments** — enable price history and sold comps per-run, pay only for what you use
- **Polite scraping** — respects rate limits, 1.2s delay between requests
- **Free tier** — 10 items per run at no cost; upgrade for unlimited

### 📈 How it compares to alternatives

| Feature | PriceCharting Scraper | jungle\_synthesizer's | lulzasaur's | powerai's |
|---|---|---|---|---|
| Multi-category | ✅ 73+ consoles | ✅ | ❌ Video games only | ❌ Pokemon only |
| Price history | ✅ Monthly arrays | ❌ | ❌ | ❌ |
| Sold comps | ✅ eBay sold data | ❌ | ❌ | ❌ |
| Events billed | 3 (record + history + comps) | 1 | 1 | 1 |
| Price per 1k items | $6.00 (tiered) | $3.00 | $10.00 | $4.99 |

### 🚀 How to use

1. **Create a free Apify account** at [console.apify.com/sign-up](https://console.apify.com/sign-up) — you get $5 credit monthly.
2. **Open the PriceCharting Scraper** in Apify Console.
3. **Add start URLs** — paste any PriceCharting console or category URL:
   - `https://www.pricecharting.com/console/pokemon-base-set`
   - `https://www.pricecharting.com/console/nes`
   - `https://www.pricecharting.com/console/funko-pop-star-wars`
   - `https://www.pricecharting.com/console/lego-star-wars`
4. **Set max items** — how many products to scrape (default: 1000).
5. **Optionally enable** Price History and/or Sold Comps for deeper data.
6. **Click Start** — results appear in the Output tab within minutes.
7. **Download** as JSON, CSV, Excel, or XML.

### 💼 Business use cases

#### Inventory valuation

Game stores can scrape their entire catalog to get current market values for insurance, pricing, or buying decisions.

#### Price tracking

Collectors can run the scraper weekly on their collection to track value changes over time.

#### Arbitrage finding

Resellers can compare loose vs. CIB vs. new prices to find the best ROI on grading or complete-in-box sourcing.

#### Market research

Analysts can pull historical price data to build trend charts and identify hot collectible categories.

### 🔌 Automating PriceCharting Scraper

- **Make.com / Zapier** — Schedule weekly scrapes and push results to Google Sheets
- **Slack** — Get notified when items hit target prices
- **Airbyte** — Feed pricing data into your data warehouse
- **GitHub Actions** — Automate scrapes on a cron schedule
- **Google Drive** — Auto-export CSVs to a shared folder

### 🌟 Beyond business use cases

- **Personal collection tracking** — Know what your childhood games are worth
- **Academic research** — Study collectible market dynamics and price trends
- **Non-profit fundraising** — Value donated items for charity auctions
- **Experimentation** — Explore price correlations across categories

### 🤖 Ask an AI assistant about this scraper

Ask questions about how to use this scraper, what data it extracts, or how to integrate it with your workflow. The AI assistant has full context about the actor's capabilities.

### ❓ Frequently Asked Questions

#### What categories does the scraper support?

Video games (73+ consoles from NES to Switch), Pokemon cards, Magic cards, Yu-Gi-Oh cards, Funko Pops, LEGO sets, comics (Marvel, DC, etc.), coins, and sports cards.

#### How does pricing work?

The actor charges per item scraped. The base `price-record` event gives current prices. Enable `includePriceHistory` and/or `includeSoldComps` for additional data at extra per-item cost. Free users get 10 items per run.

#### Is scraping PriceCharting legal?

This actor scrapes publicly available pricing data. Respect PriceCharting's terms of service and use the data responsibly.

#### How fast is it?

Typically 150 items per page load (~1.2s delay between requests). A 1000-item scrape takes approximately 10-15 minutes.

#### Can I scrape individual product pages?

Yes — paste any `https://www.pricecharting.com/game/...` URL directly into the start URLs.

#### What happens if I hit the free tier limit?

The actor caps output at 10 items for free users. Upgrade to a paid plan for up to 1,000,000 items.

#### Does it work with PriceCharting's search?

Not currently — search is protected by Cloudflare. Use direct console/category URLs instead.

#### Can I schedule recurring scrapes?

Yes — use Apify's Scheduler to run the actor daily, weekly, or on any cron schedule.

#### How do I get price history data?

Enable the "Include Price History" option in the input. This fetches each product page to extract monthly price snapshots per condition (Loose, CIB, New, etc.).

#### What are "sold comps"?

Recent eBay sold listings that PriceCharting tracks — showing actual transaction prices and dates for each item.

### 🔌 Integrate with any app

The actor outputs JSON datasets that work with virtually any tool: Google Sheets, Airtable, Notion, databases (PostgreSQL, MongoDB), data pipelines (Airbyte, Fivetran), and more. Use the Apify API to pull data programmatically.

### 🔗 Recommended Actors

- [Prediction Markets Scraper](https://apify.com/punkrecordsdata/prediction-markets-scraper) — Kalshi & Polymarket odds
- [MercadoLibre Scraper](https://apify.com/punkrecordsdata/mercadolibre-scraper) — Latin American marketplace listings
- [SofaScore Scraper](https://apify.com/punkrecordsdata/sofascore-match-stats-scraper) — Live sports match statistics

> 💡 **Pro Tip:** browse the complete [PunkRecordsData collection](https://apify.com/punkrecordsdata).

**🆘 Need Help?** contact.punkrecordsdata@gmail.com

> **⚠️ Disclaimer:** independent tool, not affiliated with PriceCharting; only publicly available data.

# Actor input Schema

## `startUrls` (type: `array`):

Pokemon set listing pages (e.g. pricecharting.com/console/pokemon-base-set) or individual card pages from pricecharting.com.

## `maxItems` (type: `integer`):

Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000.

## `includePopulation` (type: `boolean`):

PSA/CGC population count and market price at every grade (1-10), from the card's dedicated population-report page. The richest, most exclusive data point PriceCharting offers per card.

## `includeCardDetails` (type: `boolean`):

Genre, release date, publisher, card number, print run, and eBay/TCGPlayer cross-reference IDs.

## `includePriceHistory` (type: `boolean`):

Full historical monthly price series for every grade (Ungraded through PSA 10).

## `includeSoldComps` (type: `boolean`):

Recent eBay/TCGPlayer sold listings, tagged with the grade they sold at (Ungraded through PSA 10) — all 6 grade tabs, not just one.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.pricecharting.com/console/pokemon-base-set"
    }
  ],
  "maxItems": 10,
  "includePopulation": false,
  "includeCardDetails": false,
  "includePriceHistory": false,
  "includeSoldComps": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields: card, URL, price by grade

## `fullData` (type: `string`):

Complete dataset including population report, card details, price history and sold comps

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.pricecharting.com/console/pokemon-base-set"
        }
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("punkrecordsdata/pokemon-cards-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.pricecharting.com/console/pokemon-base-set" }],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("punkrecordsdata/pokemon-cards-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.pricecharting.com/console/pokemon-base-set"
    }
  ],
  "maxItems": 10
}' |
apify call punkrecordsdata/pokemon-cards-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,punkrecordsdata/pokemon-cards-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oZWc5MpoaXO5e6fHf/builds/PueiyVxUNjfbprT1m/openapi.json
