# CarParts.com Scraper: Prices, Stock & Specs (`getascraper/carparts-com-scraper`) Actor

Extract real CarParts.com product listings: price, stock status, brand, manufacturer part number, specs, and warranty. Optional monitor mode alerts when a tracked part's price or stock changes.

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

## Pricing

from $2.25 / 1,000 part 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

## CarParts.com Scraper: Prices, Stock & Specs

<table width="100%"><tr><td style="padding:20px 24px;background:#EEF4FA;border:1px solid #C5DAF0;border-radius:10px;vertical-align:top"><span style="font-size:20px;font-weight:800;color:#1B4F8A">Every part, every price, and an alert the moment either changes.</span><br><span style="font-size:14px;color:#57534E">Pull any CarParts.com category into a clean table: price, stock, brand, part number, fitment notes, and warranty, with optional alerts when a price drops or a part comes back in stock.</span></td></tr></table>

**CarParts.com is one of the largest online auto parts retailers in the US.** This Actor turns any category page into structured rows you can sort, compare, and monitor. No login, and pricing that does not tax small or scheduled runs.

<table width="100%"><tr><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DAF0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1B4F8A">💵 Real prices</span><br><span style="font-size:12px;color:#57534E">Live price, stock status, sale and free-shipping flags on every part.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DAF0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1B4F8A">🔧 Full specs</span><br><span style="font-size:12px;color:#57534E">Brand, part number, fitment notes, series, and warranty terms.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DAF0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1B4F8A">🔔 Price-drop alerts</span><br><span style="font-size:12px;color:#57534E">Only new or changed parts on your next scheduled run.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DAF0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1B4F8A">⚡ No run-start tax</span><br><span style="font-size:12px;color:#57534E">Pay only for the parts you get.</span></td></tr></table>

### 🔍 What does CarParts.com Scraper do?

It extracts real parts listings from any CarParts.com category or search-result page. Every row carries the part title, brand, manufacturer part number, live price, stock status, review count, and the product's own specifications: fitment notes, series, and warranty terms.

**Coverage is honest, not inflated.** A handful of listings do not publish a brand or a full spec block. Those fields are left empty rather than filled with a guess, so what you get is exactly what the site shows.

### 💡 Why use CarParts.com Scraper?

**"I resell parts and need to price against the market."** You need real prices across a whole category, not a handful you checked by hand. Point this at a category and get every part with its current price and sale status in one table.

**"I need to know the second something drops in price."** Turn on monitor mode and put this Actor on a schedule. You only get back the parts whose price or stock actually changed, so a price drop or a restock is impossible to miss.

**"I'm matching parts by number, not by name."** Every row carries the manufacturer part number and the product link, so you can join this data against your own catalog instead of fuzzy-matching product titles.

### 🛠️ How to use CarParts.com Scraper

<table width="100%"><tr><td style="padding:16px 14px;width:33%;background:#EEF4FA;border:1px solid #C5DAF0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1B4F8A;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Paste a category link</span><br><span style="font-size:12px;color:#57534E">Or just run the defaults to try it.</span></td><td style="padding:16px 14px;width:33%;background:#EEF4FA;border:1px solid #C5DAF0;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1B4F8A;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Run it once, or schedule it</span><br><span style="font-size:12px;color:#57534E">Turn on monitor mode to track prices over time.</span></td><td style="padding:16px 14px;width:33%;background:#EEF4FA;border:1px solid #C5DAF0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1B4F8A;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Get every part, fully priced</span><br><span style="font-size:12px;color:#57534E">Price, stock, part number, and specs on each row.</span></td></tr></table>

1. Open the Actor and pick a part type, vehicle, or brand, or paste a category link directly.
2. Set how many parts you want back.
3. Click Start. Results land in the dataset, ready to view, filter, or export.
4. Optionally turn on monitor mode and add a schedule to get only what changed next time.

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| Part type | enum | No | The kind of part to search for (brake rotors, oil filter, and more). |
| Vehicle make | enum | No | Only return parts that fit this vehicle make. |
| Vehicle model | string | No | Only return parts that fit this model. Used together with Vehicle make. |
| Vehicle year | integer | No | Only return parts that fit this model year. Used together with Vehicle make and model. |
| Parts brand | enum | No | Only return parts made by this brand. |
| Start URLs | array of URLs | No | Extra category or search-result pages to scrape directly. |
| Proxy configuration | object | No | Not needed for this Actor; available if you want a US exit. |
| Max items | integer | No | Maximum number of parts to return in this run. |
| Incremental monitor mode | boolean | No | Only return parts that are new or changed since your last run. |
| Monitor state name | string | No | Name for this run's incremental state, used only when monitor mode is on. |

### 📤 Output

```json
{
  "sku": "stpt27110045",
  "title": "Front, Driver or Passenger Side Brake Disc, Plain Surface, Vented, 5 Lugs, 11.65 in. Disc Diameter, 296Mm Front Disc, Pro-Line Series",
  "brand": "SureStop",
  "manufacturerPartNumber": "T27110045",
  "productUrl": "https://www.carparts.com/details/brake-disc/surestop/stpt27110045",
  "imageUrl": "https://cld.partsimg.com/image/upload/d_noimage.jpg/images/stpt27110045_1.jpg",
  "price": 28.51,
  "priceCurrency": "USD",
  "inStock": true,
  "onSale": true,
  "freeShipping": true,
  "reviewCount": 239,
  "notes": "1.95 in. Height; 1.1 in. nom. Thickness; 0.98 in. min. Thickness; 2.44 in. Hub Reg; 0.57 in. Bolt Size",
  "series": "Pro-Line Series",
  "warranty": "3-year or 36,000-mile SureStop limited warranty",
  "categoryUrl": "https://www.carparts.com/brake-rotors",
  "scrapedAt": "2026-09-06T09:21:08.116Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data table

| Field | Type | Description |
|---|---|---|
| `sku` | string | CarParts.com's own identifier for the part. |
| `title` | string | Full product title. |
| `brand` / `manufacturerPartNumber` | string / string | Brand and manufacturer part number, for matching against your own catalog. |
| `productUrl` / `imageUrl` | string / string | Direct link to the part and its product image. |
| `price` / `priceCurrency` | number / string | Current listed price and currency. |
| `inStock` | boolean | Whether the part is currently in stock. |
| `onSale` / `freeShipping` | boolean / boolean | Whether the part is on sale and ships free. |
| `reviewCount` | number | Number of customer reviews. |
| `notes` | string | Fitment and dimension notes as listed. |
| `series` / `warranty` | string / string | Product series and warranty terms. |
| `categoryUrl` | string | The category page this part was found on. |
| `changeType` | string | `NEW` or `UPDATED`, only present when monitor mode is on. |

### 💰 Pricing

This Actor uses Apify's pay-per-result pricing. You only pay for parts actually returned, and an empty run costs nothing. There is no subscription.

### ⭐ Enjoying CarParts.com Scraper?

<table width="100%" style="display:table;width:100%"><tr><td style="padding:20px 24px 14px;background:#EEF4FA;border:1px solid #C5DAF0;border-left:5px solid #1B4F8A;border-radius:10px 10px 0 0"><span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br><span style="font-size:17px;font-weight:800;color:#1C1917">Caught a price drop with this? That's worth a rating.</span><br><span style="font-size:14px;color:#57534E">Your feedback tells us which categories and fields to add next.</span></td></tr><tr><td style="padding:0;background:#1B4F8A;border:1px solid #C5DAF0;border-top:none;border-radius:0 0 10px 10px;text-align:center"><a href="https://apify.com/getascraper/carparts-com-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a></td></tr></table>

### 🧠 Tips

Run one category per Actor run and give each its own monitor state name, so price tracking for brake rotors stays separate from tracking for filters. Pair monitor mode with a daily schedule to build your own price history without re-downloading the whole catalog every time.

### ❓ FAQ

#### Do I need a login or a proxy?

No. CarParts.com listing data is public, and this Actor is built to load it reliably without a login or a proxy, which keeps your runs fast and cheap.

#### Can I track price drops and restocks?

Yes. Turn on incremental monitor mode and run this Actor on a schedule. It only returns parts that are new or whose price or stock status changed since your last run with the same monitor state name.

#### Can I scrape parts for a specific vehicle?

Yes. Set Part type, Vehicle make, and optionally Vehicle model and Vehicle year, and the Actor builds the matching CarParts.com page for you. You can also paste a filtered page link directly into Start URLs if you already have one.

#### Why do a few parts have no brand or specs?

Because the site does not publish those fields for every listing. This Actor leaves them empty instead of guessing, so every value you get is real.

# Actor input Schema

## `partType` (type: `string`):

The kind of part to search for, as it appears in the CarParts.com URL (e.g. "brake-rotors"). Pick a common one below, or type any part-type slug from a CarParts.com URL you've visited, since this list is a helpful starting point, not the full catalog.

## `make` (type: `string`):

Only return parts that fit this vehicle make. Combine with Part type for a real fitment search (e.g. brake rotors for Ford).

## `model` (type: `string`):

Only return parts that fit this model, as it appears in a CarParts.com URL (e.g. "f-150" for the Ford F-150). Only used together with Vehicle make.

## `year` (type: `integer`):

Only return parts that fit this model year. Only used together with Vehicle make and Vehicle model; leave at 0 for any year.

## `brand` (type: `string`):

Only return parts made by this brand. Combine with Part type to shop one brand's version of a part (e.g. Bosch brake rotors). Leave Vehicle make blank to use this filter. This list is a helpful starting point, not the full catalog; type any brand slug from a CarParts.com URL if yours isn't listed.

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

Optional extra category or search-result pages to scrape, on top of any filters set above. Paste any CarParts.com category URL if you already know the exact page you want.

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

This Actor loads CarParts.com reliably without a proxy, so the default is off, which is the cheapest and fastest option. Turn on a US proxy only if a run reports that the site is not available in your region.

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

Maximum number of parts to return in this run. Each page needs a real browser to load, so keep this modest for a quick, low-cost run.

## `onlyNewOrChanged` (type: `boolean`):

Only return parts that are new or whose price or stock status changed since your last run with the same monitor state name. Pair with an Apify schedule to watch a category for price drops or restocks.

## `stateName` (type: `string`):

Name for this run's incremental state, used only when incremental monitor mode is on. Use different names to track separate categories independently.

## Actor input object example

```json
{
  "partType": "",
  "make": "",
  "model": "",
  "year": 0,
  "brand": "",
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 20,
  "onlyNewOrChanged": false,
  "stateName": "default"
}
```

# Actor output Schema

## `parts` (type: `string`):

No description

# 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 = {
    "partType": "",
    "make": "",
    "model": "",
    "year": 0,
    "brand": "",
    "startUrls": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "maxItems": 20,
    "onlyNewOrChanged": false,
    "stateName": "default"
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/carparts-com-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 = {
    "partType": "",
    "make": "",
    "model": "",
    "year": 0,
    "brand": "",
    "startUrls": [],
    "proxyConfiguration": { "useApifyProxy": False },
    "maxItems": 20,
    "onlyNewOrChanged": False,
    "stateName": "default",
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/carparts-com-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 '{
  "partType": "",
  "make": "",
  "model": "",
  "year": 0,
  "brand": "",
  "startUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 20,
  "onlyNewOrChanged": false,
  "stateName": "default"
}' |
apify call getascraper/carparts-com-scraper --silent --output-dataset

```

## MCP server setup

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