# PriceCharting Scraper - Game & Card Prices (`gio21/pricecharting-scraper`) Actor

Scrape PriceCharting prices for video games, Pokemon/sports cards, comics and sealed products. Correct condition labels per category (Loose/CIB/New or Ungraded/Grade 9/PSA 10). No browser, no start fee.

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

## Pricing

$5.00 / 1,000 product scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## PriceCharting Scraper — Video Game, Pokémon Card & Collectible Prices

Scrape current market prices from [PriceCharting](https://www.pricecharting.com) for video games, Pokémon and sports cards, comics, sealed products and consoles — by search, by product URL, or by pulling an entire console/set list.

### Why this scraper

**It reports the right price labels for each category.** PriceCharting reuses the same internal fields for every product type, which is why many scrapers return a Pokémon card's PSA 10 price under a field called `new_price`. This Actor reads the actual labels from the page, so you get:

| Product type | Price fields you get |
|---|---|
| Video games | Loose, Complete (CIB), New, Graded, Box Only, Manual Only |
| Trading cards | Ungraded, Grade 7, Grade 8, Grade 9, Grade 9.5, PSA 10 |

No browser is used — pages are fetched over plain HTTP, so runs are fast and cheap.

### What you can scrape

- **Search** — `"charizard base set"`, `"zelda ocarina n64"`
- **Product URLs** — `https://www.pricecharting.com/game/pokemon-base-set/charizard-4`
- **Console / set listings** — `https://www.pricecharting.com/console/pokemon-base-set` pulls every product in that set, with pagination

### Input

```json
{
  "searchQueries": ["charizard base set"],
  "productUrls": ["https://www.pricecharting.com/game/nintendo-64/super-mario-64"],
  "listUrls": ["https://www.pricecharting.com/console/pokemon-base-set"],
  "maxItems": 100,
  "includePriceHistory": false
}
```

| Field | Type | Description |
|---|---|---|
| `searchQueries` | array | Product names to search |
| `productUrls` | array | Direct product pages (always scraped first) |
| `listUrls` | array | Console or set pages — pulls every product listed |
| `maxItems` | integer | Maximum products to return (default 100) |
| `includePriceHistory` | boolean | Also return historical chart data (default false) |
| `proxyConfiguration` | object | Apify Proxy settings (datacenter is enough) |

### Output

```json
{
  "url": "https://www.pricecharting.com/game/pokemon-base-set/charizard-4",
  "name": "Charizard #4",
  "console": "Pokemon Base Set",
  "category": "trading-card",
  "prices": {
    "ungraded":  { "label": "Ungraded",  "price": 402.79 },
    "grade_7":   { "label": "Grade 7",   "price": 800 },
    "grade_8":   { "label": "Grade 8",   "price": 1304.5 },
    "grade_9":   { "label": "Grade 9",   "price": 3100 },
    "grade_9_5": { "label": "Grade 9.5", "price": 7304.9 },
    "psa_10":    { "label": "PSA 10",    "price": 14406.25 }
  },
  "currency": "USD",
  "card_number": "4",
  "release_date": "1999-01-09",
  "scrapedAt": "2026-09-01T04:00:00.000Z"
}
```

Extra attributes shown on the product page (release date, genre, publisher, card number, print run, eBay product id) are included automatically when present.

### Common uses

- Track collection value over time
- Price your listings against the current market
- Spot arbitrage between graded tiers (Grade 9 vs PSA 10 spreads)
- Feed a resale or trading dashboard
- Bulk-price an entire set or console library

### Notes

- Prices are in USD, as published by PriceCharting.
- Only public pages are accessed; checkout and offer pages disallowed by robots.txt are never requested.
- This Actor is not affiliated with PriceCharting.

# Actor input Schema

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

Product names to search on PriceCharting, e.g. "charizard base set" or "zelda ocarina n64".

## `productUrls` (type: `array`):

Direct PriceCharting product pages, e.g. https://www.pricecharting.com/game/pokemon-base-set/charizard-4

## `listUrls` (type: `array`):

Console or set pages to pull every product from, e.g. https://www.pricecharting.com/console/pokemon-base-set

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

Maximum number of products to scrape.

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

Also return the historical price chart data for each product (bigger output).

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

Apify Proxy settings. Datacenter proxy is enough for this site.

## Actor input object example

```json
{
  "searchQueries": [
    "charizard base set"
  ],
  "maxItems": 100,
  "includePriceHistory": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped products - name, console/set, category, prices by condition and extra attributes.

# 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 = {
    "searchQueries": [
        "charizard base set"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("gio21/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 = { "searchQueries": ["charizard base set"] }

# Run the Actor and wait for it to finish
run = client.actor("gio21/pricecharting-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 '{
  "searchQueries": [
    "charizard base set"
  ]
}' |
apify call gio21/pricecharting-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gio21/pricecharting-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/atUdU0A0Dl3IKZCuC/builds/hRsDTPhj9zw3WLt0F/openapi.json
