Skip to content
    ↑↓ to choose · Enter to open

    · 15 min read

    Row52 Junkyard & Salvage Yard Parts Scraper: $5.00 per 1,000 Results

    By CrawlerBros Engineering Team

    Each vehicle record carries up to 34 fields, including the exact row location, arrival date, VIN, and yard contact information. You can search the entire live inventory of participating self-service yards across the United States and Canada using a specific year, make, model, and ZIP code radius. A thousand results cost $5.00 on the free-plan price, and you can try it using the prepaid platform usage. This scraper is built specifically for automotive professional buyers, part-out flippers, and hobbyists who need exact location data; it is not for buyers seeking online purchases or shipping options as these yards are self-service, bring-your-own-tools locations.

    Try it: open Row52 Junkyard & Salvage Yard Parts Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Row52 Junkyard & Salvage Yard Parts Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Row52 Junkyard & Salvage Yard Parts Scraper a month, before run-start charges and platform usage.

    Row52 Junkyard & Salvage Yard Parts Scraper was last updated on 2026-07-14. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 722,851 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Row52 Junkyard & Salvage Yard Parts Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The primary control driving your overall platform and data costs is maxItems, which places a hard cap on the number of emitted records written to your dataset. If you perform broad nationwide searches with wide model-year ranges, keep this cap set low during initial testing. The cheapest way to verify your queries match the exact inventory parameters is to run searches with a highly restrictive year or ZIP radius first.

    How do you run Row52 Junkyard & Salvage Yard Parts Scraper from the API?

    The schema marks 1 of its 15 controls as required: mode. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~row52-junkyard-parts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","year":2015,"make":"Honda","model":"Civic","vin":"2HGFB2F9XFH550172","yardName":"Sacramento"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "year": 2015,
      "make": "Honda",
      "model": "Civic",
      "vin": "2HGFB2F9XFH550172",
      "yardName": "Sacramento"
    }
    
    run = client.actor("crawlerbros~row52-junkyard-parts-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "year": 2015,
      "make": "Honda",
      "model": "Civic",
      "vin": "2HGFB2F9XFH550172",
      "yardName": "Sacramento"
    }
    
    const run = await client.actor('crawlerbros~row52-junkyard-parts-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.

    Which Row52 Junkyard & Salvage Yard Parts Scraper inputs matter, and which can you skip?

    The mode selector determines which dataset structure and search logic the Actor applies to the run. For general inventory lookups, you should focus on mode, make, model, and zipCode while leaving optional settings like state, yardId, and sortBy to their default values until you need to narrow your results. If you are targeting a specific salvage yard, use the listYards mode first to extract the correct name and ID.

    • mode (string): What to fetch. Default: "search".
    • year (integer): Exact model year to match, e.g. 2015. Takes priority over Year from/Year to if both are set. Leave blank to use a year range instead, or leave all three blank to match any year.
    • make (string): Vehicle manufacturer. Leave blank to match any make.
    • model (string): Free-text, case-insensitive match against the model name, e.g. Civic or Silverado. Leave blank to match any model.
    • vin (string): Full 17-character Vehicle Identification Number to look up.
    • yardName (string): Free-text, case-insensitive match against the yard name or city, e.g. Sacramento or Antelope.
    • yearMin (integer): Lower bound of a model-year range (inclusive), e.g. 2010. Ignored if 'Vehicle year' (exact) is set. Leave blank for no lower bound.
    • yearMax (integer): Upper bound of a model-year range (inclusive), e.g. 2018. Ignored if 'Vehicle year' (exact) is set. Leave blank for no upper bound.
    • zipCode (string): US 5-digit ZIP or Canadian postal code (e.g. 90210 or T2B 1N2). Used with Radius to find nearby yards. Leave blank to search all yards nationwide.
    • radius (string): Only used when ZIP / postal code is set. These are the exact radius options Row52's own search form offers. Default: "50".
    • yardId (integer): Numeric Row52 location ID. Use listYards mode first to find IDs, or use Yard name instead.
    • state (string): Restrict the yard directory to one US state or Canadian province. Leave blank to list every yard.

    The other 3 controls, with their defaults, are listed in the input schema on Row52 Junkyard & Salvage Yard Parts Scraper on Apify.

    Fixed-choice controls: mode accepts search (Search vehicles (year/make/model/ZIP+radius)), byVin (Look up an exact VIN), byYard (Browse newest arrivals at one yard), listYards (List all yard locations); make accepts 66 values, including Honda, Acura, Alfa Romeo, AMC; radius accepts 10 (10 miles), 25 (25 miles), 50 (50 miles), 100 (100 miles), 250 (250 miles), 500 (500 miles); state accepts 20 values, including Arizona, Arkansas, California, Florida.

    What does Row52 Junkyard & Salvage Yard Parts Scraper return?

    The output records are structured to help you locate exact donor vehicles in physical yards, providing the row number, yard name, and photos of the vehicle on the lot. The dataset conspicuously lacks parts-level inventory lists; you will see that a vehicle is in the yard, but you will not get a checklist showing whether a specific bumper or alternator has already been pulled.

    Output - vehicle record (search, byVin, byYard modes)

    • vehicleId: Row52's internal vehicle ID
    • vin: Full 17-character VIN
    • year, make, model: Vehicle year / manufacturer / model
    • color, engine, transmission, trim: When reported
    • row: Row/aisle location inside the yard
    • barCodeNumber: Yard inventory tag number
    • dateAdded: Date the vehicle arrived at the yard
    • imageCount, commentCount: Counts, when > 0
    • thumbnailUrl, largeImageUrl, smallImageUrl: Yard-row photos of the vehicle
    • yardId, yardName, yardCode: Which yard has it
    • yardCity, yardState, yardZip: Yard location
    • yardPhone, yardHours: Yard contact info
    • yardLatitude, yardLongitude: Yard coordinates
    • yardMapUrl, yardWebUrl, yardPartsPricingUrl: Yard links (store map, detail page, parts price list)
    • distanceMiles: Distance from the searched ZIP/postal code (only when one was given)
    • sourceUrl: Direct link to the vehicle's Row52 detail page
    • recordType: "vehicle"
    • scrapedAt: UTC timestamp of the scrape

    Output - yard record (listYards mode)

    • yardId, yardName, yardCode: Yard identifiers
    • address1, address2, city: Street address
    • state, stateAbbreviation: State/province
    • zipCode, phone, hours: Contact info
    • latitude, longitude: Coordinates
    • mapUrl: Store-locator map link
    • webUrl: Yard detail page on the operator's own site
    • partsPricingUrl: Published parts price list
    • isActive, allowPullers: Whether the yard is currently active / allows self-pull
    • distanceMiles: Distance from the searched ZIP/postal code (only when one was given)
    • sourceUrl: Same as webUrl
    • recordType: "yard"
    • scrapedAt: UTC timestamp of the scrape

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Row52 Junkyard & Salvage Yard Parts Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Run listYards mode with state set to California or another location to build a baseline list of yardId and yardName values.
    2. Verify the output records to confirm that you have correct, numeric yardId values for your target yards.
    3. Switch mode to search and set year to 2015, make to Honda, and model to Civic to verify the query parser matches correctly.
    4. Review the parsed dataset to see if yardId matches the yards you identified in your directory baseline.
    5. Test byVin mode with a single 17-character VIN in the vin field to confirm if the scraper returns a match.
    6. Increase maxItems to 2000 and run the final query across multiple model years using yearMin and yearMax instead of a single year.
    7. Export the final dataset into JSON or CSV format and filter out any entries where row or dateAdded are empty.

    How do you apply it? Three worked playbooks

    These are Row52 Junkyard & Salvage Yard Parts Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: DIY auto repair

    Outcome: Find a specific used part (bumper, door, engine) before driving to a yard

    Configure: Set mode to search, make to Honda, model to Civic, zipCode to 95814, and radius to 50.

    Working method: Execute the search run using your targeted local ZIP code and desired radius. Review the returned vehicle records, paying specific attention to the row and dateAdded fields to verify if a matching vehicle has been placed in the yard recently. Check the imageCount and thumbnail pictures to assess the exterior condition of the donor vehicle.

    Deliverable: A spreadsheet containing the row location, yard name, date added, and direct vehicle detail page links for all matching donor cars.

    Stop condition: The returned dataset is empty or the distanceMiles field exceeds your travel threshold.

    Use case 2: Part-out sellers & flippers

    Outcome: Track newly arrived vehicles at a yard to grab parts early

    Configure: Set mode to byYard, yardName to Sacramento, sortBy to dateAdded, and sortOrder to desc.

    Working method: Schedule the scraper to run on a daily routine using the specified yard name. Monitor the results to compare the vehicleId list against the previous day's run to identify newly arrived vehicles immediately. Isolate high-value models to alert your dismantling team about fresh stock.

    Deliverable: A daily CSV report highlighting newly added vehicles with their corresponding yard row and dateAdded timestamp.

    Stop condition: The yardName fails to match any valid location or the scraper output returns zero new vehicle records over several consecutive runs.

    Use case 3: Salvage/VIN research

    Outcome: Confirm whether a specific VIN has shown up at any participating yard

    Configure: Set mode to byVin and vin to 2HGFB2F9XFH550172.

    Working method: Execute the scraping task using the specific 17-character VIN. Examine the dataset output to confirm if a vehicle matches this identity. Verify the yardId, yardName, and dateAdded fields to understand where and when the salvage yard cataloged the vehicle.

    Deliverable: A single JSON object detailing the matching salvage vehicle record, its coordinates, and the date it entered the yard.

    Stop condition: The scraper completes with zero results, indicating the VIN has not entered any participating salvage inventory.

    What breaks, and how do you design around it?

    The system relies on Row52's coverage index, meaning that self-service yards not participating in their network will never appear in your results. If a target region returns zero records, check your zipCode and expand your radius to 250 or 500 miles. When looking up a VIN, keep in mind that some salvage operators do not log the full 17-character VIN for older or heavily damaged vehicles, so falling back to a year and make search is recommended.

    When should you not use Row52 Junkyard & Salvage Yard Parts Scraper?

    Do not use this Actor if you are looking to source high-end, ready-to-ship rebuilt parts, classic restoration vehicles, or insurance auction vehicles. If you need clean, verified classic car listings, you should use the ClassicCars.com Scraper instead. For major collision salvage vehicles sold at online insurance auctions, the IAAI Salvage Vehicle Auctions Scraper is the proper tool. Additionally, if you want to buy salvaged parts online directly from various sellers, the eBay Motors Vehicle & Parts Scraper is a far better alternative than scraping self-service yard inventories.

    What should you check before trusting the output?

    • Verify that the vehicleId field contains a non-null string value before processing the record.
    • Ensure the vin field has exactly 17 characters if the record contains a VIN.
    • Check that dateAdded contains a valid ISO timestamp to ensure you are tracking arrival times correctly.
    • Assert that row is present in the record when checking yard inventory; flag records where the aisle location is empty.
    • Verify that distanceMiles is present whenever a zipCode has been provided in the input configuration.

    None of this proves a record is correct. It gives a scheduled Row52 Junkyard & Salvage Yard Parts Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How much does it cost to run this Actor?

    This Actor costs $5.00 per 1,000 results on the free tier, which breaks down to exactly $0.005 per result written to your dataset. Keep in mind that Apify also bills platform usage for memory and CPU run-time on top of these per-result costs. You also pay a tiny run-start fee every time a run begins, regardless of whether any vehicles are found.

    Can I check yard inventories in my specific city?

    Yes, you can check inventories in specific cities by combining the zipCode parameter with the radius selector. Setting radius to 10 or 25 miles restricts the search to yards closest to your location. To find out which yards exist in your province or state, use the listYards mode with the state parameter.

    Are the parts prices for individual items included in the output?

    No. The scraper returns vehicle metadata, row location, and yard information. It does not scrape individual price lists for parts. However, the output includes a partsPricingUrl field that links directly to the yard's official pricing page, allowing you to manually verify prices.

    How do I avoid paying for empty runs?

    To minimize costs, check that your input parameters match real inventory patterns. A search with a ZIP code far away from any participating yards will return zero results but still charge for run-start and platform usage. Run listYards first to verify that active yards exist within your target state or ZIP code radius.

    Do I need to manage proxies to avoid getting blocked?

    No, you do not need to configure any proxies, custom cookies, or Row52 accounts. This Actor directly accesses public inventory feeds, which allows it to run efficiently and maintain high performance without complex network configurations.

    Where to go next

    When you are ready to run it, open Row52 Junkyard & Salvage Yard Parts Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Row52 Junkyard & Salvage Yard Parts Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-03.

    • Actor last updated by its maintainers on 2026-07-14.

    • Run outcome figures cover the 30 day public window ending 2026-10-03.

    • Row52 Junkyard & Salvage Yard Parts Scraper on Apify

    Featured actors

    Row52 Junkyard & Salvage Yard Parts Scraper

    Find which self-service junkyard (Pick-n-Pull) has a matching donor vehicle in stock. Search by year/make/model plus ZIP + radius, look up an exact VIN, browse a specific yard's newest arrivals, or list every yard location across the US and Canada.

    Run on Apify ↗