# PCPartPicker Component Scraper - Prices, Specs & Stock (`parseforge/pcpartpicker-component-scraper`) Actor

Scrape PCPartPicker component listings by category: name, price, currency, specs, rating count and availability. Export to CSV, Excel, JSON or XML.

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

## Pricing

from $8.14 / 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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🖥️ PCPartPicker Component Scraper

> 🚀 **Export PCPartPicker component listings, prices, specs and stock status for any of 24 categories to CSV, JSON, Excel or XML in seconds.**

**Scrape PCPartPicker component listings by category.** Get product name, lowest listed price, currency, rating count, the category spec columns (core count, TDP, capacity, wattage and so on) and availability in one flat row per component. No login or API key.

PCPartPicker shows live prices across dozens of retailers, but checking each component by hand is slow and the site blocks plain HTTP clients. This Actor loads the public category pages in a stealth browser and returns a clean dataset of every listed product with its current lowest price, specs and stock status.

| Who uses it | What they scrape PCPartPicker for |
|---|---|
| PC builders | Compare current prices for a whole component category. |
| Price tracking services | Monitor daily price changes for popular components. |
| E-commerce analysts | Study which products are listed and how they are priced. |
| Content creators | Gather up-to-date component data for build guides and reviews. |

### 📋 What the PCPartPicker Component Scraper does

- 🗂 **Category scraping:** choose one of 24 categories (cpu, video-card, motherboard, memory, internal-hard-drive, power-supply, case, monitor and more).
- 🔢 **Item limit:** `maxItems` controls how many products are returned, in the site's popularity order.
- 🧩 **Specs included:** the spec columns PCPartPicker shows for that category come back as a `specs` object.
- 💲 **Price and availability:** lowest listed price with its currency symbol, plus `available` / `unavailable` status.
- 🛡️ **Cloudflare handled:** runs in a stealth Firefox build with Apify Proxy, so you do not manage challenges yourself.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### 🎬 Full Demo (🚧 Coming soon)

A short walkthrough video is in production.

### 📊 Output

Each component is one row with these fields, in this order:

| Field | Description |
|---|---|
| 🖼 `imageUrl` | Product image URL, or `N/A` when the site has no image |
| 📌 `title` | Component name as listed |
| 🔗 `url` | PCPartPicker product page |
| 🆔 `id` | PCPartPicker product id from the URL |
| 📦 `status` | `available` when a price is listed, otherwise `unavailable` |
| 💲 `price` | Lowest listed price as a number, or `Not Disclosed` |
| 💱 `currency` | Currency symbol of the price, or `N/A` |
| ⭐ `ratingCount` | Number of user ratings, or `N/A` |
| 🧩 `specs` | Category spec columns as label/value pairs |
| 🗂 `category` | Category slug that was scraped |
| 🕒 `scrapedAt` | ISO timestamp of extraction |
| ❌ `error` | Error message, `null` on success |

Three real records from a run with `{"category":"cpu","maxItems":5}`:

```json
[
  {
    "imageUrl": "https://cdna.pcpartpicker.com/static/forever/images/product/7e2d17b7b777f8b56e1b5119aa97be20.256p.jpg",
    "title": "AMD Ryzen 7 9800X3D",
    "url": "https://pcpartpicker.com/product/fPyH99/amd-ryzen-7-9800x3d-47-ghz-8-core-processor-100-1000001084wof",
    "id": "fPyH99",
    "status": "available",
    "price": 449,
    "currency": "$",
    "ratingCount": 457,
    "specs": {
      "Core Count": "8",
      "Performance Core Clock": "4.7 GHz",
      "Performance Core Boost Clock": "5.2 GHz",
      "Microarchitecture": "Zen 5",
      "TDP": "120 W",
      "Integrated Graphics": "Radeon"
    },
    "category": "cpu",
    "scrapedAt": "2026-09-08T01:20:16.718Z",
    "error": null
  },
  {
    "imageUrl": "https://cdna.pcpartpicker.com/static/forever/images/product/f0e0e59d75066ec825667b71c31e3c83.256p.jpg",
    "title": "AMD Ryzen 7 7800X3D",
    "url": "https://pcpartpicker.com/product/3hyH99/amd-ryzen-7-7800x3d-42-ghz-8-core-processor-100-100000910wof",
    "id": "3hyH99",
    "status": "available",
    "price": 348.99,
    "currency": "$",
    "ratingCount": 673,
    "specs": {
      "Core Count": "8",
      "Performance Core Clock": "4.2 GHz",
      "Performance Core Boost Clock": "5 GHz",
      "Microarchitecture": "Zen 4",
      "TDP": "120 W",
      "Integrated Graphics": "Radeon"
    },
    "category": "cpu",
    "scrapedAt": "2026-09-08T01:20:16.730Z",
    "error": null
  },
  {
    "imageUrl": "https://cdna.pcpartpicker.com/static/forever/images/product/8a0df381931efb7323f458cfc42260f8.256p.jpg",
    "title": "AMD Ryzen 5 9600X",
    "url": "https://pcpartpicker.com/product/4r4Zxr/amd-ryzen-5-9600x-39-ghz-6-core-processor-100-100001405wof",
    "id": "4r4Zxr",
    "status": "available",
    "price": 171.95,
    "currency": "$",
    "ratingCount": 146,
    "specs": {
      "Core Count": "6",
      "Performance Core Clock": "3.9 GHz",
      "Performance Core Boost Clock": "5.4 GHz",
      "Microarchitecture": "Zen 5",
      "TDP": "65 W",
      "Integrated Graphics": "Radeon"
    },
    "category": "cpu",
    "scrapedAt": "2026-09-08T01:20:16.731Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

|  | What you get |
|---|---|
| **Live prices** | The lowest price PCPartPicker currently lists for each component. |
| **Specs per category** | Core count, clock, TDP, capacity, wattage, form factor, whatever the category table shows. |
| **Stock status** | `available` or `unavailable` per product. |
| **Flat schema** | One row per product, ready for CSV or spreadsheet import. |
| **Cloudflare handled** | Stealth browser and proxy rotation are built in. |

### 📈 How it compares to alternatives

No other Store actor targets PCPartPicker category listings the same way, so the honest comparison is with the alternatives teams actually weigh.

| | PCPartPicker Component Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When PCPartPicker changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### 🚀 How to use

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [PCPartPicker Component Scraper](https://apify.com/parseforge/pcpartpicker-component-scraper?fpr=vmoqkp).
3. Pick a category, set `maxItems`, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run. Each run scrapes one category; schedule several runs for several categories.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### 💼 Business use cases

#### 🛒 Price comparison tools

A developer runs the Actor daily for `video-card` and feeds the output into a dashboard that shows the cheapest listed price for each graphics card.

#### 📈 Price tracking over time

A price tracking service schedules the Actor for `cpu` and stores historical prices to alert users when a processor drops below a target.

#### 📊 Assortment analysis

An e-commerce analyst scrapes `motherboard` weekly to see which chipsets and form factors dominate the listings and at what price bands.

#### 📝 Build guides and reviews

A tech blogger runs the Actor for `memory` before writing a guide, so every recommended kit has a current price and is in stock.

### 🔌 Automating PCPartPicker Component Scraper

- **Make / Zapier:** trigger a run on a schedule and push new rows into Google Sheets or Airtable.
- **Slack:** post a message when a tracked component's price falls below a threshold.
- **Airbyte:** load the dataset into your warehouse for trend analysis.
- **GitHub Actions:** run the Actor via the API and commit a CSV snapshot to a repository.
- **Google Drive:** save each run's Excel export to a shared folder.

### 🌟 Beyond business use cases

- **Research:** study component price trends across product generations.
- **Personal:** watch the parts on your own build list and buy at the right time.
- **Non-profit:** plan lab or classroom PC purchases with current prices.
- **Experimentation:** train price prediction models on regular snapshots.

### 🤖 Ask an AI assistant about this scraper

Give an AI agent live access to PCPartPicker through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/pcpartpicker-component-scraper"
```

Then prompt it in plain language, for example "list the five most popular CPUs on PCPartPicker with their prices".

### ❓ Frequently Asked Questions

#### 🗂 Which categories can I scrape?

Any of the 24 PCPartPicker product categories: cpu, cpu-cooler, motherboard, memory, internal-hard-drive, video-card, case, power-supply, os, monitor, sound-card, wired-network-card, wireless-network-card, headphones, keyboard, mouse, speakers, webcam, case-fan, fan-controller, thermal-paste, external-hard-drive, optical-drive and ups.

#### 🔢 How many items can I get in one run?

`maxItems` sets the cap. Free plans get 10 as a preview; paid plans can request up to 1,000,000, limited by how many products the category lists.

#### 🔑 Do I need an API key or a PCPartPicker login?

No. The Actor reads public category pages.

#### 🧩 What is inside `specs`?

The spec columns PCPartPicker shows for that category, for example Core Count, Performance Core Clock, TDP and Integrated Graphics for CPUs, or Capacity and Speed for memory.

#### 💲 Why is `price` sometimes `Not Disclosed`?

PCPartPicker shows no price when no listed merchant sells the item. The row is still returned with `status` set to `unavailable`.

#### 🏪 Does it return the merchant name?

No. The category table only shows the lowest price, not which store lists it. Open the product `url` for the full merchant list.

#### 🌍 Which regional site is scraped?

The US site, so prices are in dollars.

#### 🔀 Can I scrape several categories in one run?

No. Each run scrapes one category. Schedule one run per category, or call the API in a loop.

#### 🔁 How often should I run it?

Prices change daily. For tracking, run it daily or hourly; for one-off research a single run is enough.

#### 🚫 Why did my run return no results?

The category slug is probably wrong. Use the exact slug from the dropdown (for example `video-card`, not `gpu`). If the log shows repeated challenge pages, switch the proxy setting to RESIDENTIAL.

#### 📤 Can I export the data?

Yes, to CSV, JSON, Excel, or XML from the Apify Console or the API.

#### 🕒 How long does a run take?

The browser start and Cloudflare clearance take about 10 seconds; each page of 100 products adds a few seconds.

### 🔌 Integrate with any app

Connect the dataset to Google Sheets, Airtable, Slack, Make, Zapier, Airbyte, or any tool that speaks HTTP through the [Apify integrations](https://docs.apify.com/platform/integrations). Webhooks can notify your system the moment a run finishes.

### 🔗 Recommended Actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more e-commerce and price-tracking scrapers.

🆘 **Need help?** Use the [contact form](https://tally.so/r/BzdKgA) with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by PCPartPicker. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

PCPartPicker category slug, as used in https://pcpartpicker.com/products/<category>/.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

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

Proxy used by the stealth browser. Apify Proxy (automatic) is the default.

## Actor input object example

```json
{
  "category": "cpu",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Key fields per component: image, name, URL, price, status, specs

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

Complete dataset with all 12 fields

# 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 = {
    "category": "cpu",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/pcpartpicker-component-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 = {
    "category": "cpu",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/pcpartpicker-component-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 '{
  "category": "cpu",
  "maxItems": 10
}' |
apify call parseforge/pcpartpicker-component-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/pcpartpicker-component-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/ix0SvnnAVprrEYMIB/builds/vG8kqv2VEbrhWCVyD/openapi.json
