Car-Part Scraper — Used Auto Parts Prices & Recycler Stock
Pricing
from $1.00 / 1,000 part listings
Car-Part Scraper — Used Auto Parts Prices & Recycler Stock
Scrape Car-Part used auto parts: prices, ARA grades, stock numbers, year/make/model, core charges, ZIP distance, and photos. One part, a year range, or several parts on one vehicle. Phone and email stay off unless you opt in.
Pricing
from $1.00 / 1,000 part listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
5
Monthly active users
4 days ago
Last modified
Categories
Share
Car-Part Scraper — Used Auto Parts Prices, Grades & Recycler Inventory
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Car-Part or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Contact-data controls: Phone/WhatsApp/fax and email fields are omitted from the dataset by default. Enable
includePhonesand/orincludeEmailsonly for contacts already published on public pages and only when you have a lawful basis. Any contact-field examples below assume that explicit opt-in; otherwise those fields are absent.
Scrape used auto parts inventory from North America's largest recycler marketplace network. Extract structured listings: part name, donor year / make / model, asking price, core charge, ARA part grade, stock number, mileage, supplier name and website, distance from ZIP, live-chat flag, and part photos.
Search one year + make/model + part, a year range, several parts on the same vehicle, or paste existing search.cgi result URLs. Handles interchange refine pages, multi-page results, and US residential proxy defaults for Cloudflare.
Best for: used-parts price intelligence, salvage / recycler sourcing, body-shop inventory checks, core-charge research, and ZIP-distance supplier shortlists.
Crawloop US Salvage Suite — salvage auctions and used-parts comps.
| Copart | IAAI | Car-Part |
|---|---|---|
| Copart Scraper | IAAI Scraper | Car-Part Scraper ◄── you are here |
When to use this Actor
- Parts price benchmarking — Compare recycler asking prices for engines, transmissions, body panels, lighting, and electronics by vehicle year and model.
- Whole-vehicle pricing — Send
querieswith several parts (engine, transmission, hood, headlight) and get one dataset.maxItemscaps the run. - Local sourcing — Sort by distance from a buyer ZIP. Turn on
includePhonesandincludeEmailsto add yard phone and email. - Interchange-aware searches — Take the first option, match a trim/VIN label, or walk interchange choices (at most 8 branches; a nested page uses only its first child).
- Exact browser searches — Paste a
search.cgiURL to resume a filtered results set without re-entering the form.
Data pipeline
Input Flow Output───────────────────── ───────────────────── ──────────────────────────year + makeModel + part ──► catalog resolve + form POST ──► interchange (optional)queries (many parts) ──► one search per part ──► shared maxItems capstartUrls (search.cgi) ──► paginate results pages ──► quoteForm + table parseZIP + sort + year range ──► US residential HTTP ──► price, grade, yard, images
Key Features
- Catalog resolution — Fuzzy-matches make/model and part names against the live dropdown catalog (1,600+ models, 700+ part types). Prefer exact labels like
EngineorHeadlight Assembly. - Structured quote fields — Reads
quoteForm.cgiparameters (stock, price, seller id) for reliable records. - ARA grade & core charge — Captures part grade and core / exchange fees when shown.
- Supplier — Name, website, city / state / country, live chat flag. Phone and email are added only when
includePhones/includeEmailsare on. - Year range — Optional
yearTois sent as Car-Part's end year. Empty means the single start year. - Several parts —
queriesruns engine, transmission, and body parts in one Actor run. A filled list ignores the single year / make / part fields. - Images — CDN photo URLs when recyclers upload pictures.
- US residential proxy default — Required for stable access to
search.cgibehind Cloudflare.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
includePhones | Boolean | false | Add phone, mobile, WhatsApp, or fax already published on the page. |
includeEmails | Boolean | false | Add email already published on the page. |
startUrls | Array | [] | Car-Part search.cgi result URLs. Skips the form when set. |
year | Integer | — | Vehicle year (required for a single-part search). |
yearTo | Integer | — | Optional end year. Empty searches only year. Applies to every queries row. |
makeModel | String | — | Catalog make/model, e.g. Toyota Camry. Ignored when queries has rows. |
part | String | — | Catalog part name, e.g. Engine. Ignored when queries has rows. |
queries | Array | [] | Several {year, makeModel, part} rows for one vehicle. |
userZip | String | — | ZIP / postal code for distance sorting. |
userLocation | String | USA | All States / USA / Canada / Mexico. |
sortBy | String | price | price, zip, grade, year, condition. |
interchangeMode | String | first | first, match, or all. all stops after 8 branches. |
interchangeQuery | String | — | Substring for match mode (e.g. 2.5L). |
vin | String | — | Optional VIN passed through to Car-Part Smart VIN search. |
maxItems | Integer | 100 | Max listings for the whole run (0 = unlimited). |
maxPages | Integer | 20 | Max result pages per search / interchange branch. |
concurrency | Integer | 1 | Parallel page fetches (1–5). |
softDeadlineSecs | Integer | 0 | Stop early and return partial results. 0 uses 720s, still inside the Actor timeout. |
proxyConfiguration | Object | US RESIDENTIAL | Apify Proxy — US residential required. |
Input example — form search
{"year": 2019,"makeModel": "Toyota Camry","part": "Engine","userZip": "90210","userLocation": "USA","sortBy": "price","interchangeMode": "first","maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Input example — several parts on one vehicle
{"yearTo": 2019,"userZip": "90210","userLocation": "USA","sortBy": "price","interchangeMode": "first","maxItems": 80,"queries": [{ "year": 2015, "makeModel": "Toyota Camry", "part": "Engine" },{ "year": 2015, "makeModel": "Toyota Camry", "part": "Transmission" },{ "year": 2015, "makeModel": "Toyota Camry", "part": "Hood" },{ "year": 2015, "makeModel": "Toyota Camry", "part": "Headlight Assembly" }],"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
year, makeModel, and part outside queries are ignored while that list has rows. yearTo applies to every row.
Input example — result URL
{"startUrls": [{"url": "https://www.car-part.com/cgi-bin/search.cgi?userDate=2013&userModel=Volkswagen%20Golf%20GTI&userPart=Engine&userZip=06095&userPreference=price&userPage=1"}],"maxItems": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Output Format
Each dataset item is one recycler part offer:
| Field | Description |
|---|---|
listingId, sessionId | Composite listing key; search-session token |
year, makeModel, partName | Donor vehicle and part type as listed |
requestedYear, requestedYearTo, requestedMakeModel, requestedPart | Search that produced the row. requestedYearTo is empty for a single year. |
description, interchangeCode | Condition / interchange notes |
price, priceFormatted, coreCharge, currency | Pricing |
partGrade, stockNumber, mileage | Grade, stock tag, donor miles |
supplierName, supplierWebsite | Recycler name and site. supplierPhone and supplierEmail appear only when includePhones / includeEmails are on. |
country, stateProvince, city, distanceMiles | Location & distance from ZIP |
liveChatAvailable, imageUrls | Chat flag and photo URLs |
scrapedAt | UTC ISO timestamp |
Output example
{"listingId": "1127-3S2523-2010-3120","sessionId": "13000000735758473","year": 2010,"makeModel": "Audi A3","partName": "Engine Assembly","requestedYear": 2010,"requestedYearTo": null,"requestedMakeModel": "Audi A3","requestedPart": "Engine","description": "2.0L,AT,AWD,W/TURBO","price": 3120,"priceFormatted": "$3120","coreCharge": null,"currency": "USD","partGrade": "A","stockNumber": "3S2523","mileage": 0,"supplierName": "All Foreign Auto Parts - PRP Freight, CDC","supplierWebsite": "http://Www.AllForeignAutoParts.com","sellerId": "1127","country": "USA","stateProvince": "PA","city": "Pittsburgh","distanceMiles": 390,"liveChatAvailable": true,"imageUrls": ["https://wsimgky.car-part.com/3885/2023/3S2523/3885_396029_01.jpg"],"dbPart": "300.1","dbModel": "75.29.1.1","interchangeCode": "CDFDE","scrapedAt": "2026-07-24T16:00:00Z"}
Notes
- Proxy: Datacenter IPs typically receive Cloudflare 403 on
cgi-bin/search.cgi. Keep US residential enabled. - Exact catalog names: Prefer exact part labels (
Engine, not a free-text synonym). The Actor fuzzy-matches, but exact values are more reliable. - Interchange
all: At most 8 branches per search. A nested interchange page keeps only its first child. Pair with a tightmaxItems/maxPages. queries: One bad catalog name is skipped. If every row fails, the run finishes with 0 listings and the first catalog error.
Use cases
| Use case | What you get |
|---|---|
| Parts price benchmarking | Recycler asking prices by year / make / model / part |
| Local sourcing | ZIP distance + supplier name / website. Phone and email only with includePhones / includeEmails. |
| Whole vehicle | Several parts in queries, one dataset, one maxItems cap |
| Interchange coverage | First option, a text match, or up to 8 branches. Nested pages keep the first child. |
| Salvage / body-shop ops | ARA grade, stock #, core charge, photos |
| AI / MCP workflows | Run via Apify API, clients, or MCP and summarize part offers |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/car-part-scraper').call({year: 2019,makeModel: 'Toyota Camry',part: 'Engine',userZip: '90210',maxItems: 50,proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],apifyProxyCountry: 'US',},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/car-part-scraper").call(run_input={"year": 2019,"makeModel": "Toyota Camry","part": "Engine","userZip": "90210","sortBy": "price","maxItems": 50,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US",},})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(len(items), items[:3])
cURL
curl "https://api.apify.com/v2/acts/crawloop~car-part-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"year": 2019,"makeModel": "Toyota Camry","part": "Engine","userZip": "90210","maxItems": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/car-part-scraper.
Example prompts:
- "Run Car-Part Scraper for 2019 Toyota Camry Engine near ZIP 90210, max 50, and return price, partGrade, supplierName, distanceMiles"
- "Scrape Car-Part offers for a 2015 Honda Civic Headlight Assembly and summarize the cheapest 10"
- "Chain Copart Scraper then Car-Part Scraper when I have a salvage lot year/make/model and need used engine and transmission prices"
Suite next step
For US salvage lots (VIN, bid, damage, ACV), run Copart Scraper then IAAI Scraper. Use this Actor after a lot: put the donor year and model on each row of queries (engine, transmission, hood, lights) and compare recycler asking prices in one dataset.
Related Actors
| Actor | Role |
|---|---|
| Copart Scraper | US / CA salvage lots, bids, VIN |
| IAAI Scraper | US / CA salvage lots, VIN, ACV |
| Car-Part Scraper ◄── you are here | Used auto parts & recycler stock |
| Cars & Bids Scraper | Enthusiast car auctions, live bids and sold prices |
| Mobile.de Scraper | German used cars and dealer inventory |