# IAAI Vehicles Scraper 🚗 (`shahidirfan/iaai-vehicles-scraper`) Actor

Extract vehicle auction data from IAAI with detailed specifications, pricing, and lot information. Automate data collection for market analysis, inventory tracking, and competitive pricing research on salvage and used vehicles.

- **URL**: https://apify.com/shahidirfan/iaai-vehicles-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Automation, E-commerce, Other
- **Stats:** 56 total users, 8 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

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?

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

### What does IAAI Vehicles Scraper do?

IAAI Vehicles Scraper collects structured vehicle auction listings from IAAI search results. Enter a vehicle keyword and optional ZIP code, or paste an IAAI search URL with filters already applied, then export vehicle, condition, damage, location, sale, and lot data for analysis.

This IAAI scraper is useful for dealerships, exporters, salvage buyers, vehicle-market analysts, and teams building auction inventory datasets. It turns public IAAI search results into records you can review in Apify, download as JSON, CSV, Excel, or XML, or send to another workflow.

### Why use IAAI Vehicles Scraper?

- **Auction inventory research** - Compare available vehicles by make, model, year, branch, condition, and damage type without manually copying listings.
- **Vehicle sourcing** - Find IAAI lots that match a vehicle type or local market, then work from direct lot URLs and identifying details.
- **Market and pricing analysis** - Analyze actual cash value, sale timing, inventory status, and regional supply across a set of matching vehicles.
- **Condition and repair planning** - Organize primary and secondary damage, odometer readings, title information, start codes, and vehicle specifications.
- **Automation-ready data** - Run on demand, schedule recurring collection, connect a webhook, or access the resulting dataset through the Apify API.

### What data can you extract from IAAI?

Each dataset item represents one IAAI vehicle listing. Fields can be empty when IAAI does not publish the corresponding value for a lot.

| Field | Description |
|-------|-------------|
| `inventoryId` | IAAI inventory or lot identifier |
| `lotUrl` | Direct URL for the vehicle lot |
| `vehicleTitle` | Full vehicle title as shown in IAAI results |
| `year`, `make`, `model`, `series` | Parsed vehicle identification details |
| `vin` | Vehicle Identification Number when available |
| `stockNumber` | IAAI stock number |
| `primaryDamage`, `secondaryDamage` | Reported vehicle damage |
| `odometer`, `odometerMiles` | Displayed odometer reading and numeric mileage when available |
| `titleSaleDoc` | Title or sale-document information |
| `startCode`, `airbags`, `keyStatus` | Condition indicators supplied by IAAI |
| `engine`, `fuelType`, `transmission`, `driveLineType`, `bodyStyle` | Vehicle specification details |
| `exteriorColor`, `interiorColor` | Reported vehicle colors |
| `branchName`, `branchUrl`, `market`, `region` | Auction branch and market details |
| `seller`, `sellerType` | Seller information when provided |
| `saleDate`, `auctionDate`, `auctionDateTime` | Sale and auction timing information |
| `acv`, `acvAmount`, `currency` | Actual cash value details when available |
| `inventoryStatus`, `preBidAvailable`, `buyNowAvailable` | Listing and bidding-status information |
| `imageUrl` | Main vehicle image URL when available |

### How to scrape IAAI vehicle data

1. Open IAAI Vehicles Scraper in Apify Console.
2. Enter a `keyword` such as `honda civic`, and optionally add a ZIP code in `location`.
3. Alternatively, paste a public, working IAAI search-results URL into `url` to preserve the filters selected on IAAI.
4. Set `resultsWanted` and `maxPages` for the amount of inventory you need.
5. Run the Actor, inspect the dataset, then export it or connect it to your workflow.

When `url` is supplied, its IAAI search criteria are used. Use a keyword and location when you want the Actor to start a new vehicle search.

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | String | No | - | A public IAAI search URL, including a filtered search URL. Its search criteria take precedence when provided. |
| `keyword` | String | No | `honda civic` | Vehicle search text, for example `f150`, `tesla model 3`, or `toyota camry`. |
| `location` | String | No | `10001` | ZIP code used to focus a keyword search around a location. |
| `resultsWanted` | Integer | No | `20` | Maximum number of vehicle records to save. Minimum: `1`. |
| `maxPages` | Integer | No | `3` | Maximum number of IAAI search-result pages to process. Minimum: `1`. |
| `proxyConfiguration` | Object | No | `{"useApifyProxy": false}` | Optional Apify Proxy configuration. |

### Usage Examples

#### Basic vehicle keyword search

Collect the first 20 IAAI listings matching a vehicle model.

```json
{
  "keyword": "toyota camry",
  "resultsWanted": 20
}
```

#### Regional auction inventory search

Collect Ford F-150 inventory near a ZIP code and allow up to five result pages.

```json
{
  "keyword": "ford f-150",
  "location": "90210",
  "resultsWanted": 50,
  "maxPages": 5
}
```

#### Filtered IAAI search URL

Use a complete IAAI search URL when you have already selected filters on the IAAI website.

```json
{
  "url": "https://www.iaai.com/Search?url=YOUR_IAAI_SEARCH_TOKEN",
  "resultsWanted": 100,
  "maxPages": 3
}
```

### Output Data

The default dataset contains one object per vehicle. It includes the following principal fields, with additional listing details when they are present on IAAI.

| Field | Type | Description |
|-------|------|-------------|
| `inventoryId` | String | Unique IAAI inventory identifier |
| `lotUrl` | String | Direct vehicle-lot URL |
| `vehicleTitle` | String | Vehicle title |
| `year` | Integer | Model year when it can be identified |
| `make` | String | Vehicle manufacturer |
| `model` | String | Vehicle model |
| `vin` | String | VIN when published |
| `primaryDamage` | String | Primary damage description |
| `secondaryDamage` | String | Secondary damage description |
| `odometer` | String | Odometer value as listed |
| `branchName` | String | IAAI auction branch |
| `saleDate` | String | Sale-date label shown for the lot |
| `acv` | String | Actual cash value as listed |
| `auctionDateTime` | String | Auction date and time when provided |
| `imageUrl` | String | Vehicle image URL when available |

### Sample Output

```json
{
  "inventoryId": "38924512",
  "lotUrl": "https://www.iaai.com/vehicledetails/38924512",
  "vehicleTitle": "2021 HONDA CIVIC SEDAN",
  "year": 2021,
  "make": "HONDA",
  "model": "CIVIC",
  "series": "SEDAN",
  "stockNumber": "39824512",
  "primaryDamage": "FRONT END",
  "odometer": "12,450 mi (ACTUAL)",
  "odometerMiles": 12450,
  "vin": "1HGCV1F34MA000000",
  "branchName": "Los Angeles",
  "saleDate": "May 15, 2026",
  "acv": "$18,500 USD",
  "auctionDateTime": "2026-05-15T09:00:00",
  "inventoryStatus": "Available"
}
```

### Tips for Best Results

- **Use precise keywords** - A make and model such as `Jeep Wrangler` usually produces a more focused dataset than a broad keyword such as `Jeep`.
- **Add a ZIP code for local sourcing** - Use `location` when branch proximity matters for transport planning or regional inventory analysis.
- **Preserve complex search filters with a URL** - Apply filters on IAAI, copy the resulting public search URL, and provide it in `url`.
- **Start with a small run** - Test your keyword or URL with a modest `resultsWanted` value before collecting a larger dataset.
- **Plan for source-data gaps** - VINs, damage details, pricing, images, and sale information depend on what IAAI provides for each vehicle.
- **Schedule recurring checks** - Schedule repeat runs when you need to monitor matching inventory or auction activity over time. Public pages can change, so report unexpected changes through the Actor's Issues tab.

### Integrations and exports

- **Google Sheets** - Export auction inventory for sorting, filtering, and analysis.
- **CSV and Excel** - Download vehicle records for dealer, purchasing, or reporting workflows.
- **JSON and XML** - Use structured output in applications, data pipelines, or internal databases.
- **Webhooks** - Notify downstream systems after a run completes.
- **Make or Zapier** - Send IAAI vehicle data to no-code workflows.
- **Apify API** - Retrieve datasets programmatically and incorporate listings into your own tools.

### Frequently Asked Questions

#### Can I export IAAI vehicle data to CSV or Excel?

Yes. Download the run dataset in CSV, Excel, JSON, XML, and other formats supported by Apify.

#### Can I use a URL with IAAI filters already selected?

Yes. Paste the complete public IAAI search-results URL in `url`. This is the best option when your search depends on filters already applied on IAAI.

#### Can I search IAAI by vehicle make or model?

Yes. Set `keyword` to a vehicle description such as `tesla model 3`, `honda civic`, or `f150`. Add `location` to focus the keyword search around a ZIP code.

#### Why are some vehicle fields missing?

Some fields are missing because the corresponding IAAI listing does not publish them. The Actor saves the data that is available for each vehicle.

#### Can I run IAAI Vehicles Scraper on a schedule?

Yes. Use Apify scheduling to refresh an inventory dataset at the interval that fits your monitoring needs.

#### Is it legal to collect IAAI listing data?

Collecting public data may be permitted, but you are responsible for complying with applicable laws, IAAI terms, privacy obligations, and any limits that apply to your use case.

### Related Actors

- [Copart Vehicle Auction Scraper](https://apify.com/shahidirfan/copart-vehicle-auction-scraper)
- [Bid.cars Scraper](https://apify.com/shahidirfan/bid-cars-scraper)

### Support

For issues, feature requests, or custom data requirements, use the Issues tab on the Actor page or contact the developer through Apify.

### Legal Notice

IAAI Vehicles Scraper is intended for legitimate collection of publicly available IAAI vehicle listing data for research, sourcing, and inventory workflows. Users are responsible for respecting applicable laws, IAAI terms, privacy requirements, and appropriate request limits.

# Actor input Schema

## `url` (type: `string`):

Any working IAAI search URL, for example https://www.iaai.com/Search?url=... or a filtered search page URL.

## `keyword` (type: `string`):

Vehicle keyword to search for, for example honda civic, f150, tesla model 3.

## `location` (type: `string`):

ZIP code for distance-based search. The actor uses its built-in default radius.

## `resultsWanted` (type: `integer`):

Maximum number of vehicles to save to the dataset.

## `maxPages` (type: `integer`):

Maximum number of IAAI result pages to fetch.

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

Optional Apify Proxy configuration for request routing.

## Actor input object example

```json
{
  "keyword": "honda civic",
  "location": "10001",
  "resultsWanted": 20,
  "maxPages": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "keyword": "honda civic",
    "location": "10001",
    "resultsWanted": 20,
    "maxPages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/iaai-vehicles-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 = {
    "keyword": "honda civic",
    "location": "10001",
    "resultsWanted": 20,
    "maxPages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/iaai-vehicles-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 '{
  "keyword": "honda civic",
  "location": "10001",
  "resultsWanted": 20,
  "maxPages": 3
}' |
apify call shahidirfan/iaai-vehicles-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,shahidirfan/iaai-vehicles-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/InH3n2Vx7rpgtfDPS/builds/4sd2JYLfn6RaPC80k/openapi.json
