# PriceCharting Scraper — Game, Card & Collectible Prices (`crawloop/pricecharting-scraper`) Actor

Scrape PriceCharting prices for video games, Pokemon/TCG cards, comics, Funko and LEGO. Search, product URLs, or whole sets — graded prices, price history, sold comps and images. Pay only for successful results.

- **URL**: https://apify.com/crawloop/pricecharting-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 listing results

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/platform/actors/running/actors-in-store#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

## PriceCharting Scraper — Game, Card & Collectible Prices

> Unofficial community Actor. Not affiliated with PriceCharting.

**PriceCharting scraper** for video game, Pokémon / TCG card, comic, Funko, LEGO, and coin **price guide** data. Search by keyword, open product URLs, or crawl a whole set/console — then export **ungraded and graded prices**, **price history**, optional **sold comps**, **POP report**, and **1600px images** as JSON. A practical **PriceCharting API alternative** for shops, resellers, and apps that need on-demand data in Python, Node.js, or via MCP.

### Resale suite

| Actor | Role |
| --- | --- |
| PriceCharting Scraper ◄── you are here | Guide prices, grade ladder, history, sold comps |
| [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) | Marketplace completed sales & sold prices |
| [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper) | Live asking prices |
| [eBay Sold Price Intelligence](https://apify.com/crawloop/ebay-sold-price-intelligence) | Aggregate comps & pricing stats |

**Suite next step:** after guide values, run [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper) on the same titles to compare PriceCharting vs real marketplace sold prices.

### When to use

- Re-price a **video game** or **card shop** inventory from PriceCharting guide values
- Value a **Pokémon / MTG / Yu-Gi-Oh** collection with history, not a single snapshot
- Compare raw vs **PSA 10 / BGS 10** before paying grading fees
- Pull a full **set or console catalog** (Base Set, NES, Switch, …) in one run
- Power dashboards or MCP workflows that need a **PriceCharting price API**-style JSON feed

### Key features

- **All-in-one** — search, product URLs, and whole collections in one Actor
- **Listings or details** — fast table prices, or full grades + history + images
- **Full grade ladder** — Grade 1–9.5, PSA / BGS / CGC / SGC / TAG / ACE 10, Black Label, Pristine
- **Price history** — dated series per condition from chart data
- **Sold comps (opt-in)** — recent eBay / TCGPlayer-style sales with date, title, price, link
- **POP report** — PSA / CGC population counts for cards
- **Collection index** — set/console value & median history plus every product (paginated)
- **Failed lookups free** — only successful dataset rows are billed
- **HTTP-first** — no headless browser; proxies usually optional

### Input

| Field | Description |
| --- | --- |
| `mode` | `auto` / `search` / `product_urls` / `collection_urls` / `mixed_urls` |
| `detailLevel` | `listings` (fast) or `details` (history, grades, images) |
| `searchQueries` | Keywords (`charizard`, `super mario bros`, `batman #1`) |
| `startUrls` | Product (`/game/...`) or collection (`/console/...`) URLs |
| `category` | Search filter: `pokemon-cards`, `video-games`, `magic-cards`, … |
| `maxItems` | Cap on output rows (`0` = unlimited) |
| `includeRecentSales` | Opt-in sold comps |
| `includePriceHistory` / `includeFullPrices` / `includePopulation` / `includeImages` | Detail toggles |
| `includeCollectionStats` | Emit collection value/median summary |
| `concurrency` | Parallel product fetches in details mode |
| `proxyConfiguration` | Optional Apify Proxy |

#### Example — product details + sold comps

```json
{
  "mode": "product_urls",
  "detailLevel": "details",
  "startUrls": [
    { "url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4" }
  ],
  "includeRecentSales": true,
  "maxItems": 1
}
```

#### Example — whole set (fast listings)

```json
{
  "mode": "collection_urls",
  "detailLevel": "listings",
  "startUrls": [
    { "url": "https://www.pricecharting.com/console/pokemon-base-set" }
  ],
  "includeCollectionStats": true,
  "maxItems": 500
}
```

#### Example — keyword search (video games)

```json
{
  "mode": "search",
  "detailLevel": "details",
  "searchQueries": ["super mario bros"],
  "category": "video-games",
  "maxItems": 25
}
```

### Output

| `recordType` | Contents |
| --- | --- |
| `listing` | Table row: name, set, price slots, URL, image |
| `product` | Full detail: `prices`, `fullPrices`, `priceHistory`, optional `recentSales`, POP, images |
| `collection` | Set/console summary: `currentValue`, `currentMedian`, histories |

Stable price keys (labels differ for games vs cards):

| Key | Games | Cards (typical) |
| --- | --- | --- |
| `prices.loose` | Loose | Ungraded |
| `prices.cib` | CIB | Grade 7 |
| `prices.new` | New | Grade 8 |
| `prices.graded` | Graded | Grade 9 |
| `prices.boxOnly` | Box only | Grade 9.5 |
| `prices.manualOnly` | Manual only | PSA 10 |

#### Example product record (truncated)

```json
{
  "recordType": "product",
  "productId": "630417",
  "productName": "Charizard #4",
  "consoleName": "Pokemon Base Set",
  "category": "pokemon-cards",
  "url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4",
  "currency": "USD",
  "prices": {
    "loose": 372.39,
    "cib": 722.0,
    "new": 1407.5,
    "graded": 2675.0,
    "boxOnly": 6166.44,
    "manualOnly": 29090.72
  },
  "fullPrices": {
    "Ungraded": 372.39,
    "Grade 9": 2675.0,
    "PSA 10": 29090.72,
    "BGS 10 Black": 189090.0
  },
  "populationReport": {
    "psa": { "1": 4096, "10": 486 },
    "cgc": { "10": 4 }
  },
  "imageUrl": "https://storage.googleapis.com/images.pricecharting.com/hpgpcpsd42huitud/1600.jpg",
  "scrapedAt": "2026-08-04T12:00:00Z"
}
```

### Use cases

- **Game & card shop pricing** — schedule guide refreshes for inventory SKUs
- **Pokémon / TCG grading ROI** — raw vs PSA 10 / BGS 10 in one record
- **Set completion cost** — scrape a full console/set table and sum missing pieces
- **Arbitrage** — PriceCharting guide vs eBay sold comps (suite chain)
- **Collectible apps & MCP** — on-demand JSON instead of a fixed monthly API plan

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/pricecharting-scraper').call({
  mode: 'product_urls',
  detailLevel: 'details',
  startUrls: [{ url: 'https://www.pricecharting.com/game/pokemon-base-set/charizard-4' }],
  includeRecentSales: true,
  maxItems: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("crawloop/pricecharting-scraper").call(run_input={
    "mode": "search",
    "detailLevel": "listings",
    "searchQueries": ["super mario bros"],
    "category": "video-games",
    "maxItems": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["productName"], item.get("prices"))
```

#### cURL

```bash
curl -s -X POST "https://api.apify.com/v2/acts/crawloop~pricecharting-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"collection_urls","detailLevel":"listings","startUrls":[{"url":"https://www.pricecharting.com/console/nes"}],"maxItems":50}'
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp).
Connect your Apify account, then call this Actor by its Store ID / name.

Example prompts:

- "Run PriceCharting Scraper for Charizard Base Set and return ungraded vs PSA 10 prices"
- "Scrape Pokemon Base Set collection listings and rank the top 20 by PSA 10 guide price"
- "Chain PriceCharting Scraper then eBay Sold Listings Scraper for Super Mario Bros NES comps"

### FAQ

**Is this an official PriceCharting API?**\
No. It scrapes public pages. Treat it as a PriceCharting API alternative for automation; respect their terms for redistribution.

**Do I need a proxy?**\
Usually not. Enable Apify Proxy on large collection crawls if you hit rate limits.

**Why are failed lookups free?**\
Dead or unreadable URLs are skipped — not written to the dataset and not charged.

**Listings vs details?**\
`listings` = fast set/search tables. `details` = full grade ladder, history, POP, optional sold comps.

**What categories are covered?**\
Video games, Pokémon and other TCG, comics, Funko Pops, LEGO, coins — anything on public PriceCharting catalog pages.

### Related Actors

- [eBay Sold Listings Scraper](https://apify.com/crawloop/ebay-sold-listings-scraper)
- [eBay Active Listings Scraper](https://apify.com/crawloop/ebay-active-listings-scraper)
- [eBay Sold Price Intelligence](https://apify.com/crawloop/ebay-sold-price-intelligence)

# Actor input Schema

## `mode` (type: `string`):

auto — detect from inputs. search — keyword lookup. product\_urls — deep scrape product pages. collection\_urls — whole set/console. mixed\_urls — mix of the above.

## `detailLevel` (type: `string`):

listings — fast table prices (used/CIB/new). details — full product page: all grades, history, optional sold comps, POP, images.

## `searchQueries` (type: `array`):

Keywords to search (e.g. charizard, super mario bros, batman #1). Each query returns up to 100 table hits.

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

Product pages (/game/...), collection pages (/console/...), or search-products URLs.

## `category` (type: `string`):

Narrow search results to a PriceCharting category.

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

Maximum dataset rows to output (0 = unlimited). Applies to listings, products and collection summaries.

## `concurrency` (type: `integer`):

Parallel product-page fetches when detailLevel=details.

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

Attach per-condition historical chart series (details mode).

## `includeFullPrices` (type: `boolean`):

Include every Full Price Guide row (Grade 1–9.5, PSA/BGS/CGC/SGC/TAG/ACE 10, etc.).

## `includeRecentSales` (type: `boolean`):

Opt-in: scrape recent sold comps per grade (eBay, TCGPlayer, etc.). Larger payloads.

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

Include PSA/CGC population counts when available (cards).

## `includeImages` (type: `boolean`):

Include 1600px gallery URLs (cover always kept as imageUrl).

## `includeCollectionStats` (type: `boolean`):

When scraping a console/set page, also emit a collection summary row with value & median history.

## `requestDelaySecs` (type: `number`):

Polite delay between HTTP calls.

## `proxyConfiguration` (type: `object`):

Optional. PriceCharting is usually reachable without a proxy; enable Apify Proxy if you hit rate limits.

## Actor input object example

```json
{
  "mode": "auto",
  "detailLevel": "details",
  "searchQueries": [
    "charizard"
  ],
  "startUrls": [],
  "category": "all",
  "maxItems": 50,
  "concurrency": 5,
  "includePriceHistory": true,
  "includeFullPrices": true,
  "includeRecentSales": false,
  "includePopulation": true,
  "includeImages": true,
  "includeCollectionStats": true,
  "requestDelaySecs": 0.15,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset items (listing, product, or collection records).

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/pricecharting-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call crawloop/pricecharting-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawloop/pricecharting-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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