# Copart Vehicle Auction Scraper 🚗 (`shahidirfan/copart-vehicle-auction-scraper`) Actor

Extract live Copart vehicle auction listings with VINs, prices, and lot details. Monitor thousands of cars across US auctions. Perfect for dealers, salvage buyers, and auto resellers needing real-time auction data.

- **URL**: https://apify.com/shahidirfan/copart-vehicle-auction-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.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

## Copart Vehicle Scraper

Extract comprehensive vehicle auction data from Copart with ease. Collect salvage and clean-title listings including make, model, year, VIN, damage, odometer, bids, auction dates, yard locations, and images at scale. Perfect for dealers, exporters, market research, and inventory monitoring.

### Features

- **Multi-country support** — Works with Copart US, UK, Canada, and other Copart country sites
- **URL-based search** — Paste browser search URLs with filters preserved
- **Messy URL tolerance** — Auto-heals common URL issues instead of failing the whole run
- **Rich vehicle data** — Make, model, trim, damage, odometer, bids, title codes, coordinates, and more
- **Full image galleries** — High-resolution photo URLs for every lot
- **Automatic pagination** — Collects results until your limit is reached
- **Clean output** — Empty fields are omitted for easier analysis
- **Proxy ready** — Configure Apify Proxy for reliable runs

### Use Cases

#### Dealer inventory research

Monitor Copart listings for specific makes, models, or damage types. Build datasets to compare pricing and availability across yards.

#### Export and resale analysis

Track salvage vehicles by location, title status, and estimated value. Identify opportunities before auction day.

#### Market intelligence

Aggregate auction trends by region, damage category, and sale status. Support pricing models and demand forecasting.

#### Fleet and insurance workflows

Collect structured lot metadata for claims, total-loss research, and vehicle history workflows.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrls` | Array | No | US search URL | One or more Copart search URLs from your browser |
| `results_wanted` | Integer | No | `20` | Maximum vehicles to collect |
| `max_pages` | Integer | No | `10` | Max pages fetched per search URL |
| `proxyConfiguration` | Object | No | Residential proxy | Apify Proxy settings |

User-provided input always overrides schema defaults. If `startUrls` is empty, the actor uses the schema prefill URL for QA and local testing.

---

### Output Data

Each item in the dataset contains:

| Field | Type | Description |
|-------|------|-------------|
| `lot_number` | Integer | Copart lot number |
| `title` | String | Full vehicle description |
| `make` | String | Manufacturer |
| `model` | String | Model name |
| `trim` | String | Trim level |
| `year` | Integer | Model year |
| `vin` | String | VIN (may be partially masked) |
| `body_style` | String | Body type |
| `color` | String | Exterior color |
| `fuel_type` | String | Fuel type |
| `transmission` | String | Transmission |
| `drive` | String | Drive type |
| `engine` | String | Engine description |
| `odometer` | Integer | Odometer reading |
| `odometer_unit` | String | `mi` or `km` |
| `primary_damage` | String | Primary damage |
| `secondary_damage` | String | Secondary damage |
| `estimated_retail_value` | Number | Estimated retail value |
| `current_bid` | Number | Current high bid |
| `buy_now_price` | Number | Buy-it-now price if available |
| `sale_status` | String | Sale status |
| `bid_status` | String | Bid status |
| `keys` | String | Keys available |
| `title_code` | String | Title document code |
| `yard_name` | String | Yard name |
| `location_city` | String | Yard city |
| `location_state` | String | Yard state |
| `location_country` | String | Country code |
| `latitude` | Number | Yard latitude |
| `longitude` | Number | Yard longitude |
| `auction_date` | String | Auction date (ISO 8601) |
| `auction_time` | String | Auction time |
| `thumbnail_url` | String | Primary thumbnail image URL |
| `gallery_urls` | Array | High-resolution gallery image URLs |
| `lot_url` | String | Direct Copart lot link |
| `source_url` | String | Search URL used |

---

### Usage Examples

#### Browse all vehicles (US)

```json
{
  "startUrls": [
    { "url": "https://www.copart.com/lotSearchResults/?free=true&query=" }
  ],
  "results_wanted": 50
}
````

#### UK search with filters from browser

Copy the full URL from copart.co.uk after applying filters:

```json
{
  "startUrls": [
    {
      "url": "https://www.copart.co.uk/lotSearchResults/?searchCriteria=%7B%22query%22%3A%5B%22*%22%5D%2C%22filter%22%3A%7B%22MAKE%22%3A%5B%22lot_make_desc%3A%5C%22BMW%5C%22%22%5D%7D%7D"
    }
  ],
  "results_wanted": 40
}
```

#### Multiple countries in one run

```json
{
  "startUrls": [
    { "url": "https://www.copart.com/lotSearchResults/?free=true&query=honda" },
    { "url": "https://www.copart.co.uk/lotSearchResults/?free=true&query=" },
    { "url": "https://www.copart.ca/lotSearchResults/?free=true&query=" }
  ],
  "results_wanted": 60,
  "max_pages": 5
}
```

#### Canada with proxy

```json
{
  "startUrls": [
    { "url": "https://www.copart.ca/lotSearchResults/?free=true&query=" }
  ],
  "results_wanted": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### Sample Output

```json
{
  "lot_number": 34942429,
  "title": "2016 TOYOTA COROLLA L",
  "make": "TOYOTA",
  "model": "COROLLA",
  "trim": "L",
  "year": 2016,
  "vin": "5YFBURHE7GP******",
  "body_style": "SEDAN 4D",
  "color": "CHARCOAL",
  "fuel_type": "GAS",
  "transmission": "AUTOMATIC",
  "drive": "Front-wheel Drive",
  "engine": "1.8L  4",
  "odometer": 208667,
  "odometer_unit": "mi",
  "primary_damage": "FRONT END",
  "secondary_damage": "HAIL",
  "estimated_retail_value": 15025,
  "current_bid": 7200,
  "sale_status": "PURE_SALE",
  "keys": "YES",
  "title_code": "CERT-E",
  "yard_name": "TX - DALLAS SOUTH",
  "location_city": "WILMER",
  "location_state": "TX",
  "location_country": "USA",
  "latitude": 32.60164,
  "longitude": -96.66475,
  "auction_date": "2019-04-30T07:00:00.000Z",
  "auction_time": "12:00:00",
  "thumbnail_url": "https://cs.copart.com/v1/AUTH_svc.pdoc00001/lpp/0324/example_thb.jpg",
  "gallery_urls": [
    "https://cs.copart.com/v1/AUTH_svc.pdoc00001/lpp/0324/example_hrs.jpg"
  ],
  "lot_url": "https://www.copart.com/lot/34942429"
}
```

***

### Tips for Best Results

#### Use URLs from your browser

Apply filters on Copart, then copy the full address bar URL including `searchCriteria`. This preserves make, model, year, damage, and location filters exactly as you configured them.

#### Start small, then scale

Use `results_wanted: 20` for testing, then increase for production runs.

#### Enable proxy if blocked

If runs return no data, enable Apify residential proxy in `proxyConfiguration`.

#### Multi-country URLs

Use the correct country domain (`copart.com`, `copart.co.uk`, `copart.ca`). The actor detects the origin from each URL automatically.

#### Messy URLs

The actor tolerates missing `https://`, extra spaces, and broken `searchCriteria` JSON. Invalid URLs are skipped with a warning instead of stopping the run.

***

### Integrations

Connect your data with:

- **Google Sheets** — Export for spreadsheet analysis
- **Airtable** — Build searchable vehicle databases
- **Slack** — Get run notifications
- **Webhooks** — Send data to custom endpoints
- **Make** — Create automated workflows
- **Zapier** — Trigger downstream actions

#### Export Formats

- **JSON** — For developers and integrations
- **CSV** — For spreadsheet analysis
- **Excel** — For business reporting
- **XML** — For system integrations

***

### Frequently Asked Questions

#### How many vehicles can I collect?

You can collect up to your `results_wanted` limit. Copart may have hundreds of thousands of matching lots depending on filters.

#### Can I scrape multiple search URLs?

Yes. Add multiple URLs to `startUrls`. The actor deduplicates by lot number.

#### What Copart sites are supported?

Any Copart country domain using `lotSearchResults` URLs (US, UK, Canada, and others with the same URL pattern).

#### What if some fields are missing?

Fields are omitted when Copart does not provide data for that lot. This keeps the dataset clean.

#### Can I scrape a single lot?

Paste a direct lot URL (e.g. `https://www.copart.com/lot/12345678/...`) into `startUrls`.

#### What happens if one URL is invalid?

Invalid URLs are skipped with a warning. Valid URLs in the same run still produce data.

***

### Support

For issues or feature requests, contact support through the Apify Console.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/schedules)

***

### Legal Notice

This actor is designed for legitimate data collection purposes. Users are responsible for ensuring compliance with Copart terms of service and applicable laws. Use data responsibly and respect rate limits.

# Actor input Schema

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

Copart lot search URLs copied from your browser (lotSearchResults, with or without filters). Supports US, UK, Canada, and other Copart country sites.

## `results_wanted` (type: `integer`):

Maximum number of vehicles to collect across all searches.

## `max_pages` (type: `integer`):

Safety cap on API pages fetched per search URL.

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

Use Apify Proxy if Copart blocks requests (residential recommended).

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.copart.com/lotSearchResults/?free=true&query="
    }
  ],
  "results_wanted": 20,
  "max_pages": 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 = {
    "startUrls": [
        {
            "url": "https://www.copart.com/lotSearchResults/?free=true&query="
        }
    ],
    "results_wanted": 20,
    "max_pages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/copart-vehicle-auction-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 = {
    "startUrls": [{ "url": "https://www.copart.com/lotSearchResults/?free=true&query=" }],
    "results_wanted": 20,
    "max_pages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/copart-vehicle-auction-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 '{
  "startUrls": [
    {
      "url": "https://www.copart.com/lotSearchResults/?free=true&query="
    }
  ],
  "results_wanted": 20,
  "max_pages": 3
}' |
apify call shahidirfan/copart-vehicle-auction-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/copart-vehicle-auction-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Copart Vehicle Auction Scraper 🚗",
        "description": "Extract live Copart vehicle auction listings with VINs, prices, and lot details. Monitor thousands of cars across US auctions. Perfect for dealers, salvage buyers, and auto resellers needing real-time auction data.",
        "version": "0.0",
        "x-build-id": "qTfzlRehc3ljAsu7p"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~copart-vehicle-auction-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-copart-vehicle-auction-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~copart-vehicle-auction-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-copart-vehicle-auction-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~copart-vehicle-auction-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-copart-vehicle-auction-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Copart lot search URLs copied from your browser (lotSearchResults, with or without filters). Supports US, UK, Canada, and other Copart country sites.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "results_wanted": {
                        "title": "Maximum results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of vehicles to collect across all searches.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap on API pages fetched per search URL.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy if Copart blocks requests (residential recommended).",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
