VOOZH about

URL: https://apify.com/crawlerbros/rockauto-parts-scraper

โ‡ฑ RockAuto Parts Scraper ยท Apify


Pricing

from $1.00 / 1,000 results

Go to Apify Store

RockAuto Parts Scraper

Search RockAuto.com, the largest free public US auto-parts catalogue by keyword or part number. Returns manufacturer, part number, category, price, core charge, pack size, and Info-page URL per listing. HTTP-only, no proxy, no API key, no login.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

๐Ÿ‘ Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

1

Monthly active users

2 months ago

Last modified

Share

Search RockAuto.com โ€” the largest free public US auto-parts catalogue โ€” by keyword or part number. Each query returns up to ~50 listings with manufacturer, part number, category, price, core charge, total, pack size, and Info-page URL. HTTP-only with automatic Apify residential-proxy fallback when RockAuto's bot-protection CAPTCHA fires (no proxy input needed).

What it does

You provide one or more search queries; the actor:

  1. Submits each query to rockauto.com/en/partsearch/ and parses the result page.
  2. Auto-detects RockAuto's CAPTCHA challenge page and retries the request through Apify residential proxy with a fresh session โ€” eliminates the false-empty results that would otherwise come from datacenter-IP throttling.
  3. Filters by manufacturer / category / price range (client-side).
  4. Dedupes across queries by (manufacturer, partNumber) so no part appears twice.

Each part is one record. Empty fields are omitted (no nulls).

Input

FieldTypeDefaultDescription
queriesarray of strings (required)["brake pads"]Search terms โ€” part numbers, brand names, category keywords. E.g. BREMBO P28004, oil filter, brake pads. Each runs as a separate RockAuto search.
manufacturerFilterstringโ€“Only emit records whose manufacturer matches this substring (case-insensitive). E.g. BOSCH.
categoryFilterstringโ€“Only emit records whose category matches this substring (case-insensitive). E.g. Brake Pad, Oil Filter.
minPricenumberโ€“Drop records with price below this amount (USD). Records without a parsed price are kept.
maxPricenumberโ€“Drop records with price above this amount. Records without a parsed price are kept.
maxResultsinteger50 (1โ€“500)Hard cap on parts emitted across all queries (after dedup + filtering).
enrichWithPartDetailsbooleanfalseWhen true, fetch each part's RockAuto detail page (moreInfoUrl) and add a details block (specs, fitment notes, image URLs). Adds ~1 extra HTTP request per part โ€” slower but richer.
vehicleMakestringโ€“Vehicle-mode: append a make to each query (e.g. Toyota).
vehicleModelstringโ€“Vehicle-mode: model (e.g. Camry).
vehicleYearintegerโ€“Vehicle-mode: model year (e.g. 2020).
vehicleEnginestringโ€“Vehicle-mode: engine spec (e.g. 2.5L L4, 5.7L V8).
startUrlsarray of strings[]Paste full RockAuto partsearch URLs (e.g. https://www.rockauto.com/en/partsearch/?partnum=brake+pads). Each URL's partnum becomes a query.

Example input

{
"queries":["brake pads","oil filter"],
"manufacturerFilter":"BOSCH",
"categoryFilter":"Brake",
"minPrice":5,
"maxPrice":100,
"maxResults":100
}

Output

One record per unique part. Empty fields are omitted (no nulls).

{
"manufacturer":"BETTER BRAKE PARTS",
"partNumber":"5473K",
"category":"Brake Pad Retaining Clip / Spring",
"priceUSD":2.15,
"totalUSD":2.15,
"packSize":1,
"moreInfoUrl":"https://www.rockauto.com/en/moreinfo.php?pk=12345&cc=0",
"notes":"For 2018-2020 Toyota Camry, Front, OEM 5473K",
"inputQuery":"brake pads",
"scrapedAt":"2024-12-16T14:23:11+00:00"
}

Output fields

  • manufacturer โ€” brand / manufacturer (e.g. BREMBO, BOSCH, MOTORCRAFT).
  • partNumber โ€” manufacturer's part number.
  • category โ€” RockAuto's part-category label (e.g. Brake Pad, Oil Filter, ABS Wheel Speed Sensor).
  • priceUSD โ€” listing price in USD; absent when RockAuto hides the price (rare).
  • coreChargeUSD โ€” core charge / refundable deposit (USD); absent when 0.
  • totalUSD โ€” priceUSD + coreChargeUSD. Always present alongside priceUSD.
  • packSize โ€” units per listing (e.g. 4 for a "pack of 4 brake pads"). Defaults to 1 when not specified.
  • moreInfoUrl โ€” direct link to the part's RockAuto detail page (specs, fitment, warranty).
  • notes โ€” fitment / position / OEM cross-reference notes (e.g. "For 2020 Toyota Camry, Front Left").
  • details โ€” (only when enrichWithPartDetails: true) nested {specs, images[], notes} block parsed from the moreinfo page. Specs is a snake_cased key/value dict (e.g. {position: "Front", material: "Ceramic", oem_part_number: "5L8Z-2001-AA"}); images is up to 10 product image URLs.
  • inputQuery โ€” the search query that surfaced this part.
  • scrapedAt โ€” ISO-8601 UTC timestamp.

Use cases

  • Price comparison โ€” pull every brake-pad listing for a query and compare across brands.
  • Inventory enrichment โ€” feed your retail / repair-shop tool with RockAuto's catalogue (price, brand, category) for cross-reference.
  • Brand sourcing โ€” find every part by a specific manufacturer (e.g. BREMBO, MOTORCRAFT).
  • Category audits โ€” pull all Oil Filter results and analyse price distribution across brands.
  • Part-number lookup โ€” bulk-resolve 100+ exact part numbers to find current pricing on RockAuto.

FAQ

Does it need a proxy? Not as input โ€” the actor automatically uses Apify residential proxy as a CAPTCHA fallback. Strategy:

  1. Direct fetch with realistic Chrome headers (Referer, Accept-Language, Sec-Fetch-*) from Apify's datacenter.
  2. User-supplied premium proxies (customProxyUrls input) โ€” tried sequentially BEFORE Apify's pool. Most useful when RockAuto's WAF has flagged Apify's shared residential IPs for high-traffic keywords.
  3. Apify residential proxy with up to 5 fresh sessions, each with its own per-session warmup and a jittered 1.5โ€“4.0s delay between attempts.

Why does my keyword (headlight, alternator, etc.) sometimes return zero results? RockAuto's WAF aggressively CAPTCHAs certain high-traffic single-token keywords across the entire request fingerprint โ€” IP, headers, timing โ€” regardless of how realistic the request looks. The actor tries plural + suffixed variants (headlight โ†’ headlights โ†’ headlight assembly โ†’ headlight kit โ†’ headlight bulb) and rotates through 5 fresh proxy sessions per variant. Some keywords still fail because RockAuto has flagged the entire shared residential block.

Workarounds when a keyword consistently fails:

  1. Use a 2-token query directly. brake pads, oil filter, BOSCH headlight assembly, air filter โ€” all reliable.
  2. Supply your own residential proxy via customProxyUrls (premium services like BrightData, Oxylabs, SmartProxy that aren't on RockAuto's blocklist).
  3. Use vehicle-mode with vehicleMake set โ€” appends a make to your query so it's always 2+ tokens.

The actor emits a diagnostic sentinel {type: "rockauto_scraper_error", reason: "no_results", variantsAttempted: [...]} listing every variant it tried, so you can see exactly what was attempted.

How many results per query? Up to ~50 per query โ€” RockAuto caps the per-search-page count. For more results, run multiple narrower queries (e.g. brake pads BMW, brake pads Toyota) instead of one broad one.

Can I search by vehicle (make / model / year)? Yes โ€” set vehicleMake, vehicleModel, vehicleYear, and/or vehicleEngine. The actor appends those values to each query in queries and tries the most-specific search first, automatically falling back to progressively shorter queries if the full query CAPTCHAs or returns no results.

Example with queries=["brake pads"], vehicleMake="Toyota", vehicleModel="Camry", vehicleYear=2020, vehicleEngine="2.5L L4" โ€” fallback chain:

  1. "brake pads Toyota Camry 2020 2.5L L4" (full)
  2. "brake pads Toyota Camry 2020" (drop engine)
  3. "brake pads Toyota Camry" (drop year)
  4. "brake pads Toyota" (drop model)
  5. "brake pads" (drop make โ€” last resort)

The first variant that returns a parseable result page wins. RockAuto's keyword search frequently CAPTCHAs 3+ token queries, so the fallback typically lands at variant 4 (brake pads Toyota). The record's inputQuery field shows which variant actually matched. This is a keyword-search overlay, not a catalog walker; it works HTTP-only and reuses our partsearch endpoint.

Why is the price sometimes missing? RockAuto hides the price on a small fraction of listings (often discontinued or special-order parts). The priceUSD field is omitted in those cases (omit-empty contract).

What if zero parts match? The actor emits a single sentinel record {type: "rockauto_scraper_error", reason: "no_results"} so the dataset is non-empty. The run still completes successfully.

Can I scrape the part detail page? This actor focuses on search results. Use the moreInfoUrl field with a downstream actor for the part's detail page (specs, photos, warranty terms).

Are prices in USD? Yes. RockAuto's US site (/en/) is USD-only. International variants would require a different scraper.

You might also like

RockAuto.com Scraper

lexis-solutions/rockauto

Scrape auto parts data from RockAuto.com - including part names, part numbers, prices, availability, and compatibility. Ideal for parts comparison, inventory management, and market research. Fast, structured, customizable extraction.

๐Ÿ‘ User avatar

Lexis Solutions

89

Rockauto Scraper

parseforge/rockauto-scraper

Scrape auto parts from RockAuto catalog. Get prices, availability, part numbers, brands, fitment notes, and warehouse data. Search by year, make, model, and part category for any vehicle.

Carparts.com Scraper

parseforge/carparts-com-scraper

Scrape auto parts from CarParts.com. Get product names, part numbers, brands, prices, shipping costs, core prices, warranty, vehicle compatibility, OE cross-references, and detailed specs. Search by keyword, part number, brand, or category. Great for automotive market research and price monitoring.

Audi Parts Catalog

making-data-meaningful/audi-parts-catalog

Explore the Audi Parts Catalog with vehicle models, series, and spare parts. The Audi Parts Catalog API provides structured, real-time data covering everything from manufacturer details to VIN decoding and OEM cross-references - making it an essential resource for developers, auto parts platforms.

Automotive Parts

making-data-meaningful/tecdoc

Access the Auto Parts Catalog API for detailed vehicle data, including parts, models, and engine specifications. Enjoy multi-language support and region-specific insights for seamless integration.

1.9K

4.4

Part Number Cross Reference

making-data-meaningful/part-number-cross-reference

Part Number Cross Reference is a quick and reliable way to locate OEM and aftermarket replacements for vehicles.

58

5.0

Mercedes-Benz Parts Catalog

making-data-meaningful/mercedes-benz-parts-catalog

Explore the Mercedes-Benz Parts Catalog featuring genuine OEM and certified aftermarket components. From engines and electronics to interiors and body parts, find precision-engineered parts that embody luxury, safety, and performance.

Cars Data API

easyapi/cars-data-api

๐Ÿš— Unlock a wealth of automotive information with our powerful Vehicle Data API. Access detailed specifications for a wide range of car models with ease. Supports multiple brands and models ๐Ÿ, flexible querying with various parameters ๐Ÿ”ง, provides comprehensive vehicle specifications ๐Ÿ“Š

Toyota Parts Catalog

making-data-meaningful/toyota-parts-catalog

Discover the Toyota Parts Catalog featuring genuine OEM and premium aftermarket components. From engines and transmissions to brakes and interiors, find precision-engineered Toyota parts built for safety, reliability, and long-lasting performance.