# 1A Auto Scraper: US Auto Parts, Prices, Fitment, Install Videos (`recordsdata/1aauto-scraper`) Actor

Scrape 1aauto.com, the US online auto parts retailer: aftermarket and OEM parts with USD prices, stock, ratings, vehicle fitment and interchange numbers, plus install guides, categories and brands. Filter by vehicle, brand, category, price. No login, no proxy. Export JSON, CSV or Excel.

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

## Pricing

from $22.00 / 1,000 auto parts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 1A Auto Scraper: US Auto Parts, Fitment and Install Videos Data

> 1A Auto Scraper is an Apify Actor that extracts auto parts from 1aauto.com, the US online retailer of aftermarket and OEM replacement parts. Each part row has the USD price, list price, stock, part number, brand, category, rating, warranty, the vehicles it fits (years, make, model), the competitor part numbers it replaces and the install videos of the part. It also reads the install guides, the category tree and the brands. No login, browser or proxy is needed.

Export the result as JSON, CSV, Excel, XML or HTML, or read it through the Apify API. A run of 3 results takes about 9 seconds in the cloud (median 9.1 seconds over 22 test runs, peak container memory 77 MB).

### What can you scrape from 1A Auto?

- **Parts**: about 100,000 part pages (brake pads, sensors, suspension, belts, filters, lighting and more) from TRQ, MOOG, ACDelco, Dorman, Ford OEM and about 70 other brands. Each row has the title, brand, part number, 1A Auto part number, price, photos, description, specifications and what the kit includes.
- **Vehicle fitment**: the list of vehicles each part fits, with year range, make, model and the engine or trim details the site prints. Filter by make, model and year to get only the parts for one vehicle.
- **Interchange numbers**: up to 100 competitor and OEM part numbers a part replaces, with the brand of each.
- **Prices and stock**: selling price, list price, discount percent, sale flag, stock status, pack quantity, rating, review count, warranty, return window and free shipping.
- **Install guides**: about 28,000 how-to video pages with the tools needed, the vehicles covered, the parts used in the video, the channel, the length and the spoken transcript.
- **Categories and brands**: the full category tree (265 categories with group and path) and the 74 brands, one row each.
- **Price and stock changes**: with monitoring on, a part whose price or stock moved comes back with the previous price and the difference.

### Why use this 1A Auto scraper?

- **Built for this one retailer**: the actor reads the same part pages a shopper sees, so prices, stock and fitment are the site's own values.
- **Fitment you can filter**: pick a make, model and year and every row lists only the vehicles that match, so the answer to "does it fit my car" is in the row.
- **Several ways to read**: scan the catalog with filters, list a category, brand or model page, or look up exact part pages, part numbers and install video pages.
- **Prices in USD**: every row says `USD` and `US`. The price does not depend on the ZIP code.
- **Clean output**: typed numbers, no `null` fillers, the same column order every run.
- **Polite by design**: one request per second as the `robots.txt` of 1aauto.com asks, no login, and the pages the site disallows are never read.

### How to scrape 1A Auto in four steps

1. Create a free account at [console.apify.com](https://console.apify.com) and open the actor.
2. Choose **Where to read from**: search the catalog, or look up part pages, part numbers and install videos.
3. Add search text, categories, brands, a vehicle, a price range or other filters, and set the maximum number of items.
4. Click **Start**, then download the dataset from the **Storage** tab.

A minimal input that returns 50 brake pads that fit a 2012 Honda Civic and are in stock:

```json
{
  "mode": "search",
  "categories": ["Brake Pads"],
  "vehicleMake": "Honda",
  "vehicleModel": "Civic",
  "vehicleYear": 2012,
  "inStockOnly": true,
  "maxItems": 50
}
```

### What data do you get from 1A Auto?

Every row has a `recordType`: `part`, `guide`, `category` or `brand`. The dataset has 61 keys (60 data fields plus `error`). Fields that do not apply, or that the page does not give, are left out.

| Field | Description |
|---|---|
| `recordType`, `sourceSite`, `country`, `listingType`, `vehicleType` | Row type, `1aauto.com`, `US`, `sale`, `part` |
| `title`, `listingId`, `url`, `imageUrl` | Name, 1A Auto part number (or guide, category or brand id), page address, main photo |
| `partNumber`, `brand`, `condition` | Manufacturer part number, brand, `New` |
| `categoryId`, `categoryName`, `categoryGroup`, `categorySubgroup`, `categoryPath` | The category of the part and its place in the tree |
| `fitType` | `Specific` or `Universal`, the fit type the site shows in the specifications of some parts |
| `price`, `currency`, `listPrice`, `discountPercent`, `onSale` | Selling price, `USD`, crossed-out list price, discount percent, whether the price is below the list price |
| `previousPrice`, `priceChange`, `priceChangePct`, `changeType` | Monitoring: earlier price, difference, percent, change label |
| `available`, `stockStatus`, `packQuantity` | Orderable, `In Stock` or `Out of Stock`, pieces in the pack (for example `2 Piece Set`) |
| `rating`, `reviewCount` | Average customer rating and number of reviews (no reviewer names are collected) |
| `warranty`, `returnWindowDays`, `freeShipping` | Warranty text, return window in days, free shipping flag |
| `fitmentCount`, `fitment` | Number of vehicles the part fits; the list (years, make, model, details) up to the limit you set |
| `interchangeCount`, `interchange` | Number of competitor and OEM numbers; the list (brand, part number) |
| `kitIncludes` | What a kit contains, one line per piece |
| `durationSeconds`, `channel`, `tools`, `vehicleCount`, `vehicles`, `relatedParts`, `transcript` | Install guide rows: video length, channel, tools, the vehicles the guide covers, the parts used (1A Auto part number and address) and the spoken text |
| `description`, `features`, `specifications` | Description text, feature bullets, specification table |
| `images`, `imageCount`, `videoUrl`, `installVideos` | Photo links, first video link, install videos of the part (title, link, date) |
| `publishedAt`, `updatedAt` | Guide publication date; the last-modified date in the 1A Auto sitemap |
| `sellerName`, `sellerUrl`, `isPrivateSeller`, `scrapedAt` | `1A Auto`, its site, `false`, time of the read |

#### Sample output

A real `part` row (fitment and interchange shortened):

```json
{
  "title": "Driver & Passenger Side 2 Piece Sway Bar Link Set MOOG MGSFK00062",
  "recordType": "part",
  "listingId": "MGSFK00062",
  "url": "https://www.1aauto.com/driver-and-passenger-side-2-piece-sway-bar-link-set-moog-mgsfk00062/i/mgsfk00062",
  "sourceSite": "1aauto.com",
  "country": "US",
  "listingType": "sale",
  "vehicleType": "part",
  "partNumber": "MGSFK00062",
  "brand": "MOOG",
  "condition": "New",
  "categoryId": "149",
  "categoryName": "Sway Bars, Links, & Bushings",
  "price": 69.95,
  "currency": "USD",
  "listPrice": 106.95,
  "discountPercent": 34.6,
  "onSale": true,
  "available": true,
  "stockStatus": "In Stock",
  "packQuantity": "2 Piece",
  "rating": 5,
  "reviewCount": 2,
  "warranty": "Lifetime Warranty",
  "returnWindowDays": 60,
  "freeShipping": true,
  "fitmentCount": 76,
  "fitment": [
    { "yearFrom": 1999, "yearTo": 2000, "make": "Cadillac", "model": "Escalade", "details": "Cadillac Escalade Front Driver & Passenger Side 2 Piece Sway Bar Link Set MOOG MGSFK00062" }
  ],
  "interchangeCount": 3,
  "interchange": [{ "brand": "DIY Solutions", "partNumber": "SUS08579" }],
  "kitIncludes": ["(2) Sway Bar Links"],
  "imageCount": 6,
  "videoUrl": "https://www.youtube.com/watch?v=nyapHaiXILI",
  "sellerName": "1A Auto"
}
```

A real `guide` row (lists shortened):

```json
{
  "title": "How to Replace Serpentine Belt Idler Pulley 1996-2008 Chevy Tahoe",
  "recordType": "guide",
  "listingId": "3161",
  "url": "https://www.1aauto.com/how-to-replace-serpentine-belt-idler-pulley-1996-2008-chevy-tahoe/video/3161",
  "sourceSite": "1aauto.com",
  "country": "US",
  "durationSeconds": 257,
  "channel": "1A Auto: Repair Tips & Secrets Only Mechanics Know",
  "tools": ["Socket Extensions", "3/8 Inch Drive Ratchet"],
  "vehicleCount": 797,
  "vehicles": [{ "yearFrom": 2009, "yearTo": 2009, "make": "Mercury", "model": "Mariner" }],
  "relatedParts": [{ "sku": "1AEIX00002", "url": "https://www.1aauto.com/serpentine-belt-idler-pulley-trq-bpa02990/i/1aeix00002" }],
  "transcript": "Brought to you by 1AAuto.com, your source for quality replacement parts and the best service on the Internet. ...",
  "videoUrl": "https://www.youtube.com/watch?v=_lI4F2r78hA",
  "publishedAt": "2014-03-10",
  "updatedAt": "2026-10-21"
}
```

A real `category` row and a real `brand` row:

```json
{ "title": "ABS Modules, Sensors, & Related", "recordType": "category", "listingId": "133", "url": "https://www.1aauto.com/abs-wheel-speed-sensor/c/133", "categoryId": "133", "categoryGroup": "Brakes & Wheel Bearing", "categorySubgroup": "Brakes", "categoryPath": ["Brakes & Wheel Bearing", "Brakes", "ABS Modules, Sensors, & Related"] }
{ "title": "Ford OEM", "recordType": "brand", "listingId": "27", "url": "https://www.1aauto.com/ford-oem-parts/b/27", "brand": "Ford OEM" }
```

### How the filters work

- **Search text** needs every word of one text to appear in the part name, brand, part number or 1A Auto part number (any order, case ignored). Several texts are alternatives. For install guides the words are matched against the guide title.
- **Categories** take a name such as `Brake Pads`, an id such as `71`, a group name such as `Brakes & Wheel Bearing` (every category in it) or a category page address. An unknown category returns a free error row with the closest names.
- **Brands** take a name such as `MOOG`, `Dorman` or `Ford OEM`, or a brand id. An unknown brand returns a free error row with the closest names.
- **Vehicle make, model and year** keep the parts whose fitment list has a matching entry. A short model name such as `Silverado` covers every Silverado model. Make aliases such as `Chevy` and `VW` work. For install guides the make, model and year are matched against the guide title, which names the vehicle and the year range.
- **Price range and minimum rating** are checked on the category lists when no category, brand, vehicle or search text is set, so a part that fails them costs no page request. Most parts cost more than 20 US dollars, so a very low maximum price can take a long scan; combine it with a category.
- **In stock only and below list price only** are checked on the part page.
- **Updated since** and **Recently updated first** use the last-modified date of each page in the 1A Auto sitemap. They cannot be combined with categories, brands or a vehicle for parts, because those lists carry no dates.
- **Maximum items** counts every row of every type; parts come first, then guides, categories and brands. **Maximum scan time** (default 900 seconds) stops a long scan and keeps the rows found. Free plans return up to 10 rows per run.
- **Maximum fitment entries per row** (default 100) limits the fitment list of a part, and of an install guide, to keep rows small; `fitmentCount` and `vehicleCount` give the full number.

### Monitor 1A Auto price and stock changes

Switch on **Only new items (monitor)** and the actor remembers every row it delivered in a named key-value store of your own account (`1aauto-seen`). Scheduled runs of the same search return only rows it has not delivered before; a second run with nothing new returns 0 rows and charges nothing. Add **Also return price and stock changes** and a part whose price or stock changed comes back with `previousPrice`, `priceChange`, `priceChangePct` and `changeType` (`price-drop`, `price-increase`, `out-of-stock` or `back-in-stock`). When the part comes from a category, brand or vehicle list, an unchanged part is skipped without reading its page.

### How does it compare with other options?

A search of the Apify Store on 2026-10-23 for `1aauto` and `1aauto.com` found no actor for this site. Actors for other parts retailers publish 19 to 29 fields per part (title, brand, price, stock, rating, fitment for the vehicle years). This actor returns 61 columns for 1aauto.com and adds the install guides with transcript and vehicle lists, the interchange numbers, kit contents, warranty and return window, the category tree, vehicle filters and built-in price monitoring.

| | 1A Auto Scraper | A generic e-commerce scraper |
|---|---|---|
| Fitment | Year range, make, model and details per vehicle, filtered to your vehicle | One text field, if any |
| Interchange | Brand and number of every competitor or OEM part replaced | Not part of a generic page layout |
| Install guides | Tools, vehicles, parts used and transcript per how-to video | Not covered |
| Filters | Category, brand, vehicle make, model and year, price, stock, sale, rating, update date | Depends on the tool |
| Monitoring | Built in, with previous price and type of change | Usually left to you |

### Is it legal to scrape 1A Auto? Limits and responsible use

The actor reads public pages without logging in, at one request per second as the `robots.txt` of 1aauto.com asks, and it never reads the pages that file disallows (the site search, the sort and price parameters, the garage, the cart and the account pages). It collects public product data only and never reads reviewer names or locations. A retailer catalog can be protected by copyright and database rights, and the site has terms of use, so check that your use of the data is allowed before you rely on it.

- **One request per second.** A part page takes about 1.1 seconds, so a run of 1,000 parts takes about 20 minutes. The catalog has about 100,000 part pages, so a full scan does not fit in one run. Slice by category, brand or vehicle, and use the category lists (10 parts per request) for price filters.
- **Filters on the part page cost one request per part.** A narrow filter with no category, brand or vehicle can scan many pages before it finds a match, up to **Maximum scan time**. In the test runs, 3 parts above 150 US dollars with no other filter took about 3 minutes, because the first categories in the list hold few parts at that price; add a category to get results in seconds.
- **The vehicle filter needs a fitment list.** A part with no fitment list (for example some universal parts) has no vehicle and is left out when you filter by vehicle.
- **The dates come from the sitemap.** `updatedAt` is the last-modified date the site publishes, not a price history.
- **Stock and price change during the day.** `available` and `price` describe the moment of the read.

### Use with AI agents (MCP)

Connect the Apify MCP server to Claude, Cursor or another MCP client and this actor appears as a tool: `https://mcp.apify.com?tools=RecordsData/1aauto-scraper`.

Example prompt: "Find in-stock MOOG sway bar links for a 2007 Chevrolet Silverado 1500 on 1aauto.com with price and warranty." The agent sends `{ "mode": "search", "brands": ["MOOG"], "searchQueries": ["sway bar link"], "vehicleMake": "Chevrolet", "vehicleModel": "Silverado 1500", "vehicleYear": 2007, "inStockOnly": true, "maxItems": 20 }` and reads the rows.

### Run it from code

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('RecordsData/1aauto-scraper').call({
    mode: 'search',
    categories: ['Oxygen Sensors'],
    onSaleOnly: true,
    maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0].title, items[0].price, items[0].listPrice);
```

### Frequently Asked Questions

#### Can I scrape 1A Auto prices and stock?

Yes. Every part row has the USD selling price, the list price and discount when the price is below it, the stock status and the number of pieces in the pack. Run it on a schedule with the monitor on to track price and stock changes from one run to the next.

#### Can I get the parts that fit my vehicle?

Yes. Set **Vehicle make**, **Vehicle model** and **Vehicle year** (for example Ford, F-150, 2005). The actor lists the parts of that model page, keeps the ones whose fitment covers the year and returns only the matching fitment entries in each row. Add a category such as `Brake Pads` to narrow it down.

#### Can I look up a part by its part number?

Yes. Use mode **Lookup** and put the 1A Auto part numbers (the code at the end of a part address, such as `1AEOS00170`) in **Part numbers**, or paste the part page addresses. In mode **Search**, a manufacturer part number such as `OSA61291` in **Search text** finds the part too. A number the site does not know returns a free error row.

#### Does it return the competitor and OEM numbers a part replaces?

Yes. Each part row has `interchange` with the brand and number of every competitor or OEM part it replaces (up to 100 per part), and `interchangeCount` with the full number.

#### Can I get the install videos and guides?

Yes. Choose **Install guides** in **What to collect**. Each row has the title, length, channel, tools, the vehicles covered, the parts used and the transcript. Part rows also list the install videos of the part in `installVideos`.

#### Do I need a proxy, a login or an API key?

No. 1aauto.com answers ordinary browser-style requests from Apify servers, with no blocked request in the test runs. A proxy setting exists but is off by default, and the actor does not need an account on the site. You only need an Apify account to start runs.

#### Is it legal to scrape 1A Auto?

The actor reads publicly visible pages and no personal data, and it follows `robots.txt`. Catalog data can be protected by copyright and database rights, so you are responsible for checking that your use is allowed before you rely on it. Contact: contact.punkrecordsdata@gmail.com.

#### How many parts can I get in one run?

The sitemap lists about 100,000 part pages. The site asks for one request per second, so a run is bounded by **Maximum items** and **Maximum scan time**. Slice a large export by category, brand or vehicle.

#### How do I get only parts on sale?

Switch on **Below list price only**. The filter keeps parts whose price is below the crossed-out list price on the page. Add a category to keep the scan short.

#### How do I get only new parts or changes since my last run?

Switch on **Only new items**, and add **Also return price and stock changes** to also receive parts whose price or stock changed. The memory is kept in your own key-value store under the monitor name, and **Forget what was seen** clears it.

#### What happens when the search finds nothing or the input is wrong?

A search with no matches ends the run as succeeded with no rows and no charge. A wrong input, such as a minimum price above the maximum, an unknown category, brand, make or model, or an unknown part number, returns a free error row with the reason and the closest names, so a typo never costs you money.

### Support

Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com. Reviews on the actor page help other people find it.

# Actor input Schema

## `mode` (type: `string`):

Search finds parts, install guides, categories and brands from your filters. Lookup reads exactly the part pages, install video pages and 1A Auto part numbers you list in Addresses and Part numbers.

## `recordTypes` (type: `array`):

Parts (one row per part, with price, stock, specifications, vehicle fitment and interchange numbers), install guides (one row per how-to video page with tools, vehicles and transcript), categories (the full category tree) and brands. Categories, brands and guides are read in mode Search.

## `searchQueries` (type: `array`):

Optional. Words to look for, for example brake pads, serpentine belt or a part number such as OSA61291. Every word of one text must appear (any order, case ignored; numbers match as whole numbers) in the part name, brand, part number or 1A Auto part number; a part passes when any of the texts matches. For install guides the words are matched against the guide title.

## `categories` (type: `array`):

Optional. Category names such as Brake Pads or Oxygen Sensors, category ids such as 71, or category page addresses. A group name such as Brakes & Wheel Bearing selects every category in it. An unknown category returns a free error row with the closest names.

## `brands` (type: `array`):

Optional. Brand names such as TRQ, MOOG, Dorman, ACDelco or Ford OEM, or brand ids. An unknown brand returns a free error row with the closest names.

## `vehicleMake` (type: `string`):

Optional. Keeps parts that fit this make, for example Ford, Honda or Chevrolet. Use it with a model for a precise result; a make alone reads every model of the make. For install guides the make must appear in the guide title.

## `vehicleModel` (type: `string`):

Optional. Keeps parts that fit this model, for example F-150, Civic or Silverado 1500. A short name such as Silverado covers every Silverado model. An unknown model returns a free error row with the closest names.

## `vehicleYear` (type: `integer`):

Optional. Model year of the vehicle, for example 2015. Needs a make or a model. Keeps parts whose fitment covers that year.

## `minPrice` (type: `number`):

Optional. Lowest price in US dollars. Applies to parts. Without categories, brands, a vehicle or search text, the price is checked on the category lists (10 parts per request), which is much faster than reading every part page.

## `maxPrice` (type: `number`):

Optional. Highest price in US dollars. Applies to parts. Most parts cost more than 20 dollars, so a very low limit can take a long scan; pair it with a category for a quick result.

## `inStockOnly` (type: `boolean`):

Skips parts that 1A Auto shows as out of stock.

## `onSaleOnly` (type: `boolean`):

Keeps only parts whose price is below the crossed-out list price shown on the page.

## `minRating` (type: `number`):

Optional. Keeps parts with at least this customer rating (0 to 5). Parts without reviews are left out when this is set. Checked on the category lists when no other scope is set.

## `modifiedSince` (type: `string`):

Optional, mode Search. A date such as 2026-10-01. Keeps pages whose last-modified date in the 1A Auto sitemap is that day or later. It cannot be combined with categories, brands or a vehicle for parts, because those lists carry no dates.

## `sortBy` (type: `string`):

Mode Search, sitemap reads only. Sitemap order starts returning rows right away. Recently updated reads the whole sitemap first, then returns the newest pages first. Categories, brands and vehicle filters list parts in the site order.

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

In mode Lookup: part pages (https://www.1aauto.com/o2-oxygen-sensor-trq-osa61291/i/1aeos00170) and install video pages (https://www.1aauto.com/how-to-replace-serpentine-belt-1997-2003-ford-f-150/video/58755). In mode Search: category, brand or vehicle model pages whose parts you want to list, for example https://www.1aauto.com/brake-pads/c/71.

## `skus` (type: `array`):

Used in mode Lookup. 1A Auto part numbers, the code at the end of a part address (1AEOS00170). A number the site does not know returns a free error row.

## `includeDescription` (type: `boolean`):

Adds the part description as plain text. Turn it off for smaller rows.

## `includeFitment` (type: `boolean`):

Adds the list of vehicles each part fits (years, make, model and engine details). With a vehicle filter only the entries for that vehicle are listed. Turn it off for smaller rows.

## `maxFitmentRows` (type: `integer`):

A part can fit hundreds of vehicles. Only this many entries are listed per part (and per install guide); the total is in fitmentCount and vehicleCount.

## `includeInterchange` (type: `boolean`):

Adds the competitor and OEM part numbers the part replaces (brand and number). Up to 100 are listed.

## `includeTranscript` (type: `boolean`):

Adds the spoken text of the install video to install guide rows. Turn it off for smaller rows.

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

Stops after this many rows (all record types together; parts come first, then guides, categories and brands). Free plans are limited to 10 items per run.

## `onlyNew` (type: `boolean`):

Skips every item seen in an earlier run with the same monitor name, so scheduled runs return only what is new and you pay only for those.

## `trackPriceChanges` (type: `boolean`):

With only new items on, a part already seen comes back when its price or stock changed, with the previous price, the change and a price-drop, price-increase, out-of-stock or back-in-stock label.

## `stateKey` (type: `string`):

Name of the memory used by only new items. Use one name per saved search. Empty derives a name from your filters.

## `resetSeen` (type: `boolean`):

Clears the memory of this monitor before the run, so everything counts as new again.

## `concurrency` (type: `integer`):

How many pages are processed at the same time. The robots.txt of 1aauto.com asks for one request per second, and the actor keeps to that pace across all requests, so a higher number only overlaps waiting time.

## `maxScanSeconds` (type: `integer`):

Stops reading after this time and keeps the rows found so far. The site asks for one request per second, so a part page takes about 1.1 seconds and a narrow filter over the whole catalog can take the full time.

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

Optional. Empty means direct requests, which work. Add a proxy only if your own network needs one.

## Actor input object example

```json
{
  "mode": "search",
  "recordTypes": [
    "parts"
  ],
  "searchQueries": [
    "brake pads"
  ],
  "inStockOnly": false,
  "onSaleOnly": false,
  "sortBy": "sitemap",
  "includeDescription": true,
  "includeFitment": true,
  "maxFitmentRows": 100,
  "includeInterchange": true,
  "includeTranscript": true,
  "maxItems": 10,
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "concurrency": 2,
  "maxScanSeconds": 900,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key fields per row

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

Complete dataset with all 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 = {
    "mode": "search",
    "recordTypes": [
        "parts"
    ],
    "searchQueries": [
        "brake pads"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/1aauto-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 = {
    "mode": "search",
    "recordTypes": ["parts"],
    "searchQueries": ["brake pads"],
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/1aauto-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 '{
  "mode": "search",
  "recordTypes": [
    "parts"
  ],
  "searchQueries": [
    "brake pads"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/1aauto-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/1aauto-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/lbwqs6ERvHsSPRRrv/builds/X5BVyyxfTS0XejkiS/openapi.json
