# Copart Auction Lot Finder by Search URL (`dataspryva/copart-auction-lot-finder-by-search-url`) Actor

Paste any Copart.com search or lot URL to get vehicle specs, VIN, damage, odometer, current bid, title details, auction date, and photos for each lot.

- **URL**: https://apify.com/dataspryva/copart-auction-lot-finder-by-search-url.md
- **Developed by:** [Dataspryva](https://apify.com/dataspryva) (community)
- **Categories:** Automation, E-commerce, Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Copart Auction Lot Finder by Search URL

Turn Copart's public auction inventory into structured data. Paste a Copart
search URL you built on copart.com, use the keyword and filter fields, or look
up individual lots by number. Every record carries the vehicle identity,
damage, title, bid, sale date, yard location, seller and photo URLs Copart
publishes to anonymous visitors.

### What this actor does

- **Search the way Copart searches.** Paste any `/lotSearchResults` URL and its
  keyword, filters and sort order are preserved — make, model, year, odometer,
  damage, title type, vehicle type, transmission, fuel, drive, body style, yard,
  auction name, Buy It Now and newly-added windows.
- **Build a search from fields instead.** Pick a keyword and any combination of
  filters, choose a sort order, and page through up to 100 lots per request.
- **Look up individual lots.** Supply lot numbers or Copart lot URLs and get
  the full detail record, including the condition-report damage items and the
  complete photo gallery.
- **Choose the country site.** United States, United Kingdom and Middle East
  inventory are supported for keyword searches; a pasted URL selects its own
  site automatically.
- **Clean, omit-empty records.** A field Copart does not publish for a lot is
  left out instead of appearing as `null`, an empty string or a placeholder.

### Output per lot

- `lot_number`, `vin` (masked by Copart for anonymous visitors), `year`,
  `make`, `model`, `trim`, `model_group`
- `body_style`, `color`, `exterior_color`, `interior_color`
- `engine`, `cylinders`, `fuel_type`, `transmission`, `drive`, `keys`
- `odometer`, `odometer_unit`, `odometer_reading_type`
- `primary_damage`, `secondary_damage`, `damage_type_code`,
  `damage_details[]`, `damage_areas[]`
- `title_group_code`, `title_group`, `title_description`, `title_state`,
  `title_type`, `title_tracking_url`
- `lot_condition`, `lot_condition_code`, `sale_status`, `bid_status`
- `current_bid`, `buy_it_now_price`, `buy_it_now_available`, `acv`,
  `estimated_retail_value`, `currency`
- `auction_date`, `auction_time`, `timezone`, `last_updated`,
  `last_auction_date`, `sale_type`, `lot_status`, `auction_number`, `lane`,
  `auction_date_type`
- `sale_location`, `sale_yard_number`, `location_city`, `location_state`,
  `location_country`, `state`, `country`, `zip`, `latitude`, `longitude`
- `seller`, `seller_type`, `features[]`, `feature_codes[]`
- `lot_sold`, `reserve_met`, `has_bid`, `bid_increment`, `lot_auction_status`,
  `vehicle_type`, `vehicle_type_code`
- `item_url`, `imageUrl`, `images[]`, `images_high_res[]`, `images_count`,
  `image_labels[]`, `scraped_at`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | select | `search` | `search` finds lots; `details` fetches specific lot numbers or lot URLs |
| `searchUrl` | string | `https://www.copart.com/lotSearchResults?free=true&query=BMW` | A Copart search URL (filters preserved) or a `/lot/<number>` URL |
| `searchQuery` | string | — | Keyword such as `BMW` or `Toyota Camry`; empty browses all vehicles |
| `make`, `model` | string | — | Vehicle make and model |
| `yearFrom`, `yearTo` | integer | — | Model-year range |
| `odometerFrom`, `odometerTo` | integer | — | Odometer range |
| `damageType` | select | — | Primary damage type |
| `titleType` | select | — | Clean, Non Repairable or Salvage |
| `vehicleType` | select | — | Automobiles, Motorcycles or SUVs |
| `transmission` | select | — | Automatic, Manual or None |
| `fuelType` | select | — | Diesel, Electric, Hybrid, Gas and more |
| `driveType` | select | — | All-wheel, front-wheel or rear-wheel drive |
| `cylinders` | select | — | Cylinder count |
| `bodyStyle` | select | — | Copart body style |
| `location` | string | — | Yard name, for example `NJ - GLASSBORO WEST` |
| `auctionName` | string | — | Auction host name |
| `buyItNowOnly` | boolean | `false` | Only lots with a Buy It Now price |
| `newlyAddedDays` | select | `0` | Any time, last 24 hours or last 7 days |
| `sort` | select | `sale_date` | Sale date, year, odometer, make, model or auction date |
| `maxItems` | integer | `100` | Maximum records to return |
| `includeDetails` | boolean | `false` | Enrich search rows with the full detail page and condition report |
| `includeImages` | boolean | `true` | Fetch the full photo gallery in details mode |
| `site` | select | `us` | United States, United Kingdom or Middle East |
| `lotNumbers` | array | — | Lot numbers or Copart lot URLs for details mode |

#### Example: keyword search

```json
{
    "mode": "search",
    "searchQuery": "Toyota Camry",
    "yearFrom": 2018,
    "yearTo": 2024,
    "titleType": "S",
    "maxItems": 200
}
```

#### Example: filtered search

```json
{
    "mode": "search",
    "make": "BMW",
    "model": "X7",
    "damageType": "FR",
    "buyItNowOnly": true,
    "sort": "odometer_asc",
    "maxItems": 100
}
```

#### Example: paste a Copart URL

```json
{
    "mode": "search",
    "searchUrl": "https://www.copart.com/lotSearchResults?free=false&searchCriteria=%7B%22query%22%3A%5B%22*%22%5D%2C%22filter%22%3A%7B%22MAKE%22%3A%5B%22search_lot_make_desc%3A%5C%22BMW%5C%22%22%5D%7D%7D",
    "maxItems": 300
}
```

#### Example: lot details and photos

```json
{
    "mode": "details",
    "lotNumbers": ["69903206", "https://www.copart.com/lot/73672065"],
    "includeImages": true
}
```

### Use cases

- **Salvage sourcing** — find repair candidates by make, model, damage and
  title type, then compare their current bids and Buy It Now prices.
- **Pricing research** — build a dataset of current bids, ACV and estimated
  retail values across similar lots and yards.
- **Yard monitoring** — track what is listed at specific Copart locations.
- **Inventory archives** — keep a structured snapshot of the auction pipeline
  for analytics, dashboards or downstream enrichment.
- **Damage and title analysis** — use the condition-report damage items, title
  group and title state to segment lots before a sale.

### FAQ

**How do I build a search?**
Use Copart's own search bar and filter panel on copart.com, then copy the URL
from your browser into `searchUrl`. Every filter combination Copart supports on
that page is preserved. You can also use the filter fields in this actor.

**Why is the VIN partially masked?**
Copart masks part of the VIN on its public pages by design; the full VIN is only
visible to signed-in members. This actor reports the masked value exactly as
Copart publishes it.

**Can I get the final sold price?**
No. Copart's public search and lot pages expose current bids and Buy It Now
prices, but not a reliable final sale price after the auction closes. The actor
does not guess or fabricate one.

**Why do I get fewer unique lots than Copart's result count?**
Copart's default sort is not unique, so consecutive result pages can overlap.
The actor removes duplicate lot numbers. The result count is therefore an
estimate of the total, not a promise of that many unique lots.

**What is the difference between `acv` and `estimated_retail_value`?**
`acv` is the Actual Cash Value used by the insurer; `estimated_retail_value` is
Copart's automated retail estimate.

**Does this work without cookies, a login or a proxy?**
Yes. No cookies, account or proxy setup is needed. The actor handles Copart's
bot protection automatically and uses the cheapest working path. If Copart
blocks a request, it falls back to a read-only public rendering mirror of the
same public page.

**Which countries are supported?**
The United States, United Kingdom and Middle East Copart sites are supported.
A pasted URL selects its own site. Make, model, year, odometer, damage, fuel,
title, yard, Buy It Now and newly-added filters work on all three sites. A few
filters are regional: SUV classification and front/rear-wheel drive are US-only
(UK maps all-wheel drive to 4x4), while body style and cylinder count are US/UK
only (UK sedan/hatchback/estate/coupe/convertible styles are mapped from the US
names). Unsupported filters are skipped and named in the run status message.
Other Copart country sites use different public surfaces and are not
guaranteed.

**Why does a search row have one image but a details record has many?**
Search results expose a thumbnail, from which one full-size and one high-res
URL are derived. Details mode calls Copart's photo endpoint and returns the
complete gallery when it is available.

**Why is a field missing from a record?**
Copart does not publish every field for every lot. Empty values are omitted
rather than emitted as `null` or a placeholder. For example, a lot without a
Buy It Now price simply has no `buy_it_now_price` key.

**How current is the data?**
Each run reads Copart's live public data, so bids, sale dates and availability
reflect the moment of collection.

**Is this affiliated with Copart?**
No. This is an independent third-party actor that reads Copart's public pages
and JSON responses. It is not operated by or affiliated with Copart.

### Notes and limitations

- VINs are partially masked on all anonymous Copart surfaces.
- Final sold prices and bid history are not available from the public pages.
- Auction dates and bid amounts change between runs.
- The default Copart sort is not unique; duplicate lots are removed.
- Copart does not offer a working relevance sort; sale date is the default.
- Some filters are regional: SUV and front/rear-wheel drive are US-only; body
  style and cylinder count are US/UK only.
- Non-ASCII keywords are rejected because Copart's search ignores them and
  returns the full inventory instead of a relevant subset.
- The Middle East site exposes a thumbnail but not the full image gallery.
- When Copart blocks its photo endpoint, a details record carries the primary
  image and derived full-size/high-res URLs instead of the complete gallery.
- Blocked requests may be served through a read-only public rendering mirror
  (`r.jina.ai`); the mirror returns the same public page Copart serves.

# Actor input Schema

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

Choose Search to find lots, or Details to fetch specific lot numbers or lot URLs.

## `searchUrl` (type: `string`):

A Copart search results URL, for example https://www.copart.com/lotSearchResults?free=true\&query=BMW. Filters you set on Copart are preserved. A /lot/<number> URL fetches that single lot.

## `searchQuery` (type: `string`):

Free-text keyword such as BMW, Toyota Camry, or a lot number. Leave empty to browse all vehicles.

## `make` (type: `string`):

Vehicle make as Copart lists it, for example BMW or TOYOTA.

## `model` (type: `string`):

Vehicle model, for example X7 or CAMRY.

## `yearFrom` (type: `integer`):

Earliest model year.

## `yearTo` (type: `integer`):

Latest model year.

## `odometerFrom` (type: `integer`):

Minimum odometer reading.

## `odometerTo` (type: `integer`):

Maximum odometer reading.

## `damageType` (type: `string`):

Only lots with this primary damage type.

## `titleType` (type: `string`):

Only lots with this title group. UK and Middle East sites map each option to their closest local category.

## `vehicleType` (type: `string`):

Only automobiles, motorcycles or SUVs. SUV is available on the US site only.

## `transmission` (type: `string`):

Only lots with this transmission. UK and Middle East sites match automatic and manual labels.

## `fuelType` (type: `string`):

Only lots with this fuel type. Gas is matched as Petrol on the UK and Middle East sites.

## `driveType` (type: `string`):

Only lots with this drive train. UK maps all-wheel drive to 4x4; front and rear wheel drive are US-only.

## `cylinders` (type: `string`):

Only lots with this cylinder count. Available on the US and UK sites.

## `bodyStyle` (type: `string`):

Only lots with this body style. Common US styles are mapped to UK equivalents; body style is US and UK only.

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

Copart yard name, for example NJ - GLASSBORO WEST.

## `auctionName` (type: `string`):

Auction host name, for example NJ - GLASSBORO WEST or a specialty sale name.

## `buyItNowOnly` (type: `boolean`):

Only lots that have a Buy It Now price.

## `newlyAddedDays` (type: `string`):

Only lots added to Copart in the selected window.

## `sort` (type: `string`):

Order of the search results.

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

Maximum number of lot records to return.

## `includeDetails` (type: `boolean`):

For search results, fetch each lot's full detail page and condition report. This adds one request per lot.

## `includeImages` (type: `boolean`):

Fetch the full photo gallery for lots in Details mode, or for search results when Include full details is on.

## `site` (type: `string`):

Country site used for keyword searches. A pasted URL overrides this setting.

## `lotNumbers` (type: `array`):

Lot numbers or Copart lot URLs to fetch in Details mode. Duplicates are removed.

## Actor input object example

```json
{
  "mode": "search",
  "searchUrl": "https://www.copart.com/lotSearchResults?free=true&query=BMW",
  "buyItNowOnly": false,
  "newlyAddedDays": "0",
  "sort": "sale_date",
  "maxItems": 3,
  "includeDetails": false,
  "includeImages": true,
  "site": "us"
}
```

# Actor output Schema

## `lots` (type: `string`):

Dataset containing every scraped Copart auction lot.

# 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",
    "searchUrl": "https://www.copart.com/lotSearchResults?free=true&query=BMW",
    "buyItNowOnly": false,
    "newlyAddedDays": "0",
    "sort": "sale_date",
    "maxItems": 3,
    "includeDetails": false,
    "includeImages": true,
    "site": "us"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dataspryva/copart-auction-lot-finder-by-search-url").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",
    "searchUrl": "https://www.copart.com/lotSearchResults?free=true&query=BMW",
    "buyItNowOnly": False,
    "newlyAddedDays": "0",
    "sort": "sale_date",
    "maxItems": 3,
    "includeDetails": False,
    "includeImages": True,
    "site": "us",
}

# Run the Actor and wait for it to finish
run = client.actor("dataspryva/copart-auction-lot-finder-by-search-url").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",
  "searchUrl": "https://www.copart.com/lotSearchResults?free=true&query=BMW",
  "buyItNowOnly": false,
  "newlyAddedDays": "0",
  "sort": "sale_date",
  "maxItems": 3,
  "includeDetails": false,
  "includeImages": true,
  "site": "us"
}' |
apify call dataspryva/copart-auction-lot-finder-by-search-url --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dataspryva/copart-auction-lot-finder-by-search-url"
        }
    }
}
```

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/d2EK0rlchMTYqagut/builds/rnpbMzAHeVMHgTTru/openapi.json
