# Pricecharting Price Extractor (`kawsar/pricecharting-price-extractor`) Actor

PriceCharting price scraper that pulls loose, complete, and new values plus product details from any PriceCharting product page, so you can track collectible prices and reprice your inventory without copy and paste.

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

## Pricing

from $2.99 / 1,000 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/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 Price Extractor

Extract live prices and full product details from any PriceCharting product page. Feed the actor a product URL, a list of URLs, or a search term like a set number or barcode, and it returns every published price for each item along with the core product data, ready to export or pipe into your own tools.

Built for collectors, resellers, and store owners who need clean pricing data without copying values by hand from the site.

### What this actor does

PriceCharting tracks market values for video games, consoles, trading cards, comics, and LEGO sets. This actor reads a product page and pulls out:

- Every price tier PriceCharting publishes for the item
- A numeric version of each price, so you can sort, compare, and run calculations
- The product identity and catalog data (model number, release date, barcodes, marketplace IDs)
- The product image

You can run it on a single item or batch hundreds of URLs in one go.

### Key features

- Six price tiers per item: loose, complete, new, graded, box only, and manual only
- Both a formatted price (`$25.80`) and a numeric value (`25.8`) for every tier
- Product metadata: name, category, genre, release date, model number, UPC, eBay ePID, Amazon ASIN, and PriceCharting ID
- Three input modes: single URL, batch URL list, or search terms
- Per item error handling, so one bad page never stops a large batch
- Structured output you can export to CSV, JSON, or Excel, or read through the Apify API

### Input

Provide at least one of `productUrl`, `productUrls`, or `searchQueries`. You can combine all three in one run.

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `productUrl` | string | one of three | A single PriceCharting product page URL. |
| `productUrls` | array of strings | one of three | A list of product page URLs to process in one run. |
| `searchQueries` | array of strings | one of three | Product names, model numbers, or barcodes to look up when you do not have a direct URL. |
| `maxItems` | integer | no | Maximum number of pages to process per run. Default 100, max 1000. |
| `requestTimeoutSecs` | integer | no | Per request timeout in seconds. Default 30. |

#### Example input

```json
{
    "productUrls": [
        "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
        "https://www.pricecharting.com/game/nintendo-64/super-mario-64"
    ],
    "maxItems": 100,
    "requestTimeoutSecs": 30
}
```

### Output

Each product becomes one dataset record. Example:

```json
{
    "url": "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
    "productName": "Naboo Fighter #7141 LEGO Star Wars",
    "category": "LEGO Star Wars",
    "imageUrl": "https://storage.googleapis.com/images.pricecharting.com/.../240.jpg",
    "genre": "LEGO Set",
    "releaseDate": "January 1, 1999",
    "modelNumber": "#7141",
    "productNotes": null,
    "upc": "5702012003127,0042884071417",
    "asin": null,
    "epid": "21053429968",
    "priceChartingId": "5863159",
    "productDescription": null,
    "loosePrice": "$25.80",
    "loosePriceValue": 25.8,
    "completePrice": "$42.00",
    "completePriceValue": 42.0,
    "newPrice": "$152.99",
    "newPriceValue": 152.99,
    "gradedPrice": "$36.00",
    "gradedPriceValue": 36.0,
    "boxOnlyPrice": "$4.32",
    "boxOnlyPriceValue": 4.32,
    "manualOnlyPrice": "$10.00",
    "manualOnlyPriceValue": 10.0,
    "currency": "USD",
    "scrapedAt": "2026-09-05T06:50:43.754929+00:00",
    "error": null
}
```

#### Output field reference

| Field | Type | Description |
|-------|------|-------------|
| `url` | string | The product page that was scraped. |
| `productName` | string | Full product title including the category line. |
| `category` | string | Product category or console, for example "LEGO Star Wars". |
| `imageUrl` | string | Direct link to the product image. |
| `genre` | string | Genre or product class, for example "LEGO Set". |
| `releaseDate` | string | Release date as shown on PriceCharting. |
| `modelNumber` | string | Model or catalog number. |
| `productNotes` | string | Extra notes listed for the product. |
| `upc` | string | One or more UPC barcodes. |
| `asin` | string | Amazon ASIN. |
| `epid` | string | eBay product ID. |
| `priceChartingId` | string | Internal PriceCharting product ID. |
| `productDescription` | string | Long description text where available. |
| `loosePrice` / `loosePriceValue` | string / number | Loose (cartridge or pieces only) price. |
| `completePrice` / `completePriceValue` | string / number | Complete in box price. |
| `newPrice` / `newPriceValue` | string / number | New or sealed price. |
| `gradedPrice` / `gradedPriceValue` | string / number | Graded price. |
| `boxOnlyPrice` / `boxOnlyPriceValue` | string / number | Box only price. |
| `manualOnlyPrice` / `manualOnlyPriceValue` | string / number | Manual only price. |
| `currency` | string | Currency of the reported prices. Always USD. |
| `scrapedAt` | string | UTC timestamp of the scrape, in ISO 8601. |
| `error` | string | Set only when a page could not be processed, otherwise null. |

### Why some fields come back as null

A field is `null` when PriceCharting itself has no value for it on that page. For example, the Naboo Fighter #7141 set lists ASIN, Notes, and Description as "none", so those fields return `null`. The same fields fill in when the data exists: Super Mario 64, run through the same actor, returns `asin` `B00000F1GM` and a full `productDescription`. Empty is reported as `null` rather than the word "none" so your spreadsheets and scripts can treat missing data consistently.

The same applies to price tiers. A product that has no graded sales, for instance, returns `null` for `gradedPrice` while still returning its loose and complete prices.

### Common uses

- Track how a game, card, or set price moves over time by scheduling regular runs
- Build a repricing feed for a store, eBay, or marketplace listings
- Compare loose, complete, and new values before buying or selling
- Price a whole collection in one batch from a list of URLs
- Enrich an inventory spreadsheet with current market values and barcodes

### How to run it

1. Open the actor on Apify and choose the Input tab.
2. Paste one or more PriceCharting product URLs, or enter search terms.
3. Set `maxItems` if you want to cap a large run.
4. Click Start. When the run finishes, open the Dataset tab to view or export the results.

You can also start runs and pull results through the Apify API or any of the Apify client libraries, and schedule the actor to run on a fixed interval.

### Tips

- Direct product URLs are the most reliable input. Search terms are handy when you only have a name or barcode.
- Keep `maxItems` sensible for very large lists so runs stay fast and predictable.
- Rows that failed carry an `error` message and can be retried on their own.

### Frequently asked questions

**Which product types are supported?**
Any product with a PriceCharting page, including video games, consoles, trading cards, comics, and LEGO sets.

**What currency are prices in?**
US dollars, matching how PriceCharting displays them. The `currency` field states this on every record.

**Why did a whole run return errors?**
Check that your URLs point to `pricecharting.com` product pages and are reachable. Each failing row includes an `error` field explaining what went wrong.

**Can I get the numeric price for calculations?**
Yes. Every price tier has a `...Value` field holding a plain number next to the formatted string.

# Actor input Schema

## `productUrl` (type: `string`):

A single PriceCharting product page URL to extract prices from.

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

One or more PriceCharting product page URLs to extract prices from in a single run.

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

Product names, model numbers, or barcodes to look up on PriceCharting when you do not have a direct URL.

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

Maximum number of product pages to process per run.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds.

## Actor input object example

```json
{
  "productUrl": "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
  "productUrls": [
    "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141"
  ],
  "searchQueries": [
    "7141",
    "Naboo Fighter"
  ],
  "maxItems": 100,
  "requestTimeoutSecs": 30
}
```

# Actor output Schema

## `properties` (type: `string`):

Extracted PriceCharting product prices and details.

# 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 = {
    "productUrl": "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
    "productUrls": [
        "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/pricecharting-price-extractor").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 = {
    "productUrl": "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
    "productUrls": ["https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141"],
}

# Run the Actor and wait for it to finish
run = client.actor("kawsar/pricecharting-price-extractor").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 '{
  "productUrl": "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141",
  "productUrls": [
    "https://www.pricecharting.com/game/lego-star-wars/naboo-fighter-7141"
  ]
}' |
apify call kawsar/pricecharting-price-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kawsar/pricecharting-price-extractor"
        }
    }
}

```

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/payQcHnRcES5Hdohe/builds/QvJFB6g5wQ2vonQTz/openapi.json
