# 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:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## IAAI Vehicles Scraper | Auction Inventory Data Extractor

Extract comprehensive vehicle data from IAAI auction search results with ease. Collect detailed listings including vehicle specs, damage reports, and sale information at scale. Perfect for market research, inventory monitoring, and dealership analysis.

---

### Features

- **Flexible Search Input** — Start from any working IAAI search URL or use keywords with optional ZIP codes.
- **Deep Data Extraction** — Capture year, make, model, VIN, odometer, damage types, and auction details.
- **Location-Based Search** — Focus on regional inventory by providing a ZIP code for targeted results.
- **Dataset Customization** — Control the number of results and pages to balance speed and data volume.
- **Automated Pagination** — Effortlessly crawl multiple pages to gather all relevant vehicle listings.
- **Clean Output** — Automatically filters and organizes data into structured formats like JSON, CSV, and Excel.

---

### Use Cases

#### Inventory Research
Analyze auction inventory by specific make, model, or year range. Understand the volume of available vehicles and their condition across different branches.

#### Market Monitoring
Track listing price trends (ACV), sale status changes, and auction frequency for specific vehicle types to identify buying opportunities.

#### Regional Analysis
Use ZIP code filtering to monitor inventory levels in specific geographic areas, helping local dealerships optimize their sourcing strategies.

#### Damage Level Breakdown
Filter and collect data on specific damage types (e.g., front end, side, water) to estimate repair costs and salvage value accurately.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | String | No | — | Any working IAAI search URL. |
| `keyword` | String | No | `"honda civic"` | Vehicle keyword to search for (e.g., "f150", "tesla"). |
| `location` | String | No | `"10001"` | ZIP code for distance-based search radius. |
| `resultsWanted` | Integer | No | `20` | Maximum number of vehicle items to collect. |
| `maxPages` | Integer | No | `3` | Maximum number of search result pages to process. |
| `proxyConfiguration` | Object | No | `{"useApifyProxy": false}` | Optional Apify Proxy configuration. |

---

### Output Data

Each item in the dataset is a structured representation of a vehicle listing:

| Field | Type | Description |
|-------|------|-------------|
| `inventoryId` | String | Unique identifier for the listing |
| `lotUrl` | String | Direct link to the vehicle lot page |
| `vehicleTitle` | String | Full descriptive title of the vehicle |
| `year` | String | Manufacturing year |
| `make` | String | Vehicle manufacturer |
| `model` | String | Vehicle model name |
| `vin` | String | Vehicle Identification Number |
| `primaryDamage` | String | Primary reported damage type |
| `odometer` | String | Formatted odometer reading |
| `branchName` | String | Name of the auction branch |
| `saleDate` | String | Scheduled or actual sale date |
| `acv` | String | Actual Cash Value (if available) |
| `auctionDateTime` | String | Precise auction start time |

---

### Usage Examples

#### Basic Keyword Search

Extract the first 20 results for a specific vehicle model:

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

#### Targeted Regional Search

Focus on inventory within a specific ZIP code area:

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

#### Custom URL Scraping

Continue from a specific filtered search page URL found on the IAAI website:

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

***

### Sample Output

```json
{
    "inventoryId": "38924512",
    "lotUrl": "https://www.iaai.com/vehicledetails/38924512",
    "vehicleTitle": "2021 HONDA CIVIC SEDAN",
    "year": "2021",
    "make": "HONDA",
    "model": "CIVIC",
    "primaryDamage": "FRONT END",
    "odometer": "12,450 (ACTUAL)",
    "branchName": "LOS ANGELES",
    "saleDate": "05/15/2026",
    "vin": "1HGCF2F...",
    "auctionDateTime": "2026-05-15T09:00:00"
}
```

***

### Tips for Best Results

#### Start with Focused Keywords

Instead of generic terms, use specific makes and models (e.g., "Jeep Wrangler" vs "Jeep") to get higher-quality result sets.

#### Leverage ZIP Codes for Shipping

Always include the `location` parameter if you are calculating shipping costs, as this limits results to branches near your target area.

#### Use Direct URLs for Complex Filters

If you have a very complex search filter on the IAAI website, apply it in your browser and copy the resulting URL into the `url` parameter for the most accurate extraction.

***

### Integrations

Connect your auction data with:

- **Google Sheets** — Export directly for inventory tracking and pricing analysis.
- **Airtable** — Build a searchable local auction database.
- **Discord/Slack** — Receive notifications for new high-value listings.
- **Webhooks** — Automate downstream processing for repair cost estimation.

#### Export Formats

- **JSON** — For developers and custom software integrations.
- **CSV** — For easy management in Excel or Google Sheets.
- **Excel** — Professional reporting and data visualization.

***

### Frequently Asked Questions

#### How many vehicles can I scrape at once?

You can scrape as many as needed by adjusting `resultsWanted`. However, for very large sets, we recommend using proxies to ensure consistent performance.

#### Can I scrape multiple pages?

Yes, the actor automatically handles pagination up to the `maxPages` limit you define.

#### What if a vehicle field is missing?

The scraper only returns fields that are actually present on the source page. If a listing doesn't specify a VIN or ACV, those fields will be omitted from that specific record.

#### Does it support all IAAI regions?

Yes, it works across all standard IAAI regions and branches accessible via their web search.

***

### Support

For issues, feature requests, or custom extraction needs, please contact support through the Apify Console.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [API Reference](https://docs.apify.com/api/v2)
- [Proxy Guide](https://docs.apify.com/proxy)

***

### Legal Notice

This actor is designed for legitimate data retrieval for research and inventory management. Users are responsible for ensuring compliance with website terms of service and local data privacy laws. Use responsibly and respect server 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("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/iaai-vehicles-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IAAI Vehicles Scraper 🚗",
        "description": "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.",
        "version": "0.0",
        "x-build-id": "xsfeFUHsDoKPoZVyJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~iaai-vehicles-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-iaai-vehicles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahidirfan~iaai-vehicles-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-iaai-vehicles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahidirfan~iaai-vehicles-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-iaai-vehicles-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "url": {
                        "title": "Search URL",
                        "type": "string",
                        "description": "Any working IAAI search URL, for example https://www.iaai.com/Search?url=... or a filtered search page URL."
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Vehicle keyword to search for, for example honda civic, f150, tesla model 3."
                    },
                    "location": {
                        "title": "Location / ZIP code",
                        "type": "string",
                        "description": "ZIP code for distance-based search. The actor uses its built-in default radius."
                    },
                    "resultsWanted": {
                        "title": "Results wanted",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of vehicles to save to the dataset.",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of IAAI result pages to fetch.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy configuration for request routing.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
