No Login
Copart Salvage Auction Lots Scraper & New-Lot Export (No Login)
Export open Copart salvage lots: make, model, year, damage, repair cost vs retail value, current high bid, buy-now, yard, seller. Monitor new lots and price moves. No account needed.
Verification
Not yet in the weekly verification report.
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
lot_number | integer|null |
year | integer|null |
make | string|null |
model | string|null |
trim | string|null |
vin_masked | string|null |
odometer | number|null |
odometer_status | string|null |
primary_damage | string|null |
secondary_damage | string|null |
title_type | string|null |
title_group | string|null |
title_state | string|null |
condition | string|null |
estimated_retail_value | number|null |
repair_cost | number|null |
repair_to_value_ratio | number|null |
high_bid | number|null |
buy_now_price | number|null |
sale_status | string|null |
auction_date | string|null |
yard_name | string|null |
yard_city | string|null |
yard_state | string|null |
yard_zip | string|null |
yard_country | string|null |
yard_latitude | number|null |
yard_longitude | number|null |
seller_name | string|null |
insurance_seller | boolean|null |
vehicle_type | string|null |
body_style | string|null |
color | string|null |
engine | string|null |
cylinders | string|null |
transmission | string|null |
drive | string|null |
fuel | string|null |
has_keys | boolean|null |
features | array|null |
thumbnail_url | string|null |
lot_url | string|null |
change_type | string|null |
previous_high_bid | number|null |
previous_buy_now_price | number|null |
query | string|null |
notice | string|null |
notice_type | string|null |
source_url | string|null |
Sample row
{
"lot_number": 77590185,
"year": 2020,
"make": "CHEVROLET",
"model": "MALIBU",
"trim": "LT",
"vin_masked": "1G1ZD5ST1LF******",
"odometer": 107800,
"odometer_status": "ACTUAL",
"primary_damage": "FRONT END",
"secondary_damage": "SIDE",
"title_type": "PERMIT TO SELL",
"title_group": "SALVAGE TITLE",
"title_state": "LA",
"condition": "ENGINE START PROGRAM",
"estimated_retail_value": 11600,
"repair_cost": 14900.17,
"repair_to_value_ratio": 1.284,
"high_bid": 0,
"buy_now_price": null,
"sale_status": "Pure Sale",
"auction_date": "2026-07-01T17:00:00Z",
"yard_name": "LA - NEW ORLEANS",
"yard_city": "NEW ORLEANS",
"yard_state": "LA",
"yard_zip": "70129 2348",
"yard_country": "USA",
"yard_latitude": 30.03285,
"yard_longitude": -89.90785,
"seller_name": null,
"insurance_seller": false,
"vehicle_type": "AUTOMOBILE",
"color": "WHITE",
"engine": "1.5L 4",
"cylinders": "4",
"drive": "FRONT WHEEL DRIVE",
"fuel": "GAS",
"has_keys": true,
"features": [
"No License Required"
],
"thumbnail_url": "https://cs.copart.com/v1/AUTH_svc.pdoc00001/lpp/0825/75c3b6b8fcfc436a9cdb46a0d14a2392_thb.jpg",
"lot_url": "https://www.copart.com/lot/77590185/salvage-2020-chevrolet-malibu-lt-la-new-orleans",
"source_url": "https://www.copart.com/lot/77590185/salvage-2020-chevrolet-malibu-lt-la-new-orleans"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
mode | string | no | "export" | Export: every open lot your search matches. Monitor: the same search, but only lots that are new since this search's last run, or whose high bid or buy-now price moved, each with change_type. Schedule a monitor daily for a new-lots feed; its first run returns every lot as new. |
queries | array | no | [] | Optional, one search per line, matched the way Copart's own search box matches (honda civic, f150 4x4, a lot number). Every word in a line must match. Each line is its own search; a lot found by two is returned once. Empty means every open lot that passes the filters below. |
query | string | no | — | One search, for saved tasks and API calls that send a single value. Use the list above for several. |
makes | array | no | [] | Copart make names, one per line (Toyota, Honda, Ford). Any of them matches. |
models | array | no | [] | Copart model or model-group names, one per line (Camry, F150, Civic). Any of them matches. Best with a make. |
yearFrom | integer | no | — | Oldest model year to include. |
yearTo | integer | no | — | Newest model year to include. |
damageTypes | array | no | [] | One per line, any of them matches: All Over, Biohazard/Chemical, Burn, Burn - Engine, Burn - Interior, Damage History, Frame Damage, Front End, Hail, Mechanical, Minor Dent/Scratches, Missing/Altered VIN, Normal Wear, Partial Repair, Rear End, Rejected Repair, Replaced VIN, Rollover, Side, Stripped, Top/Roof, Undercarriage, Unknown, Vandalism, Water/Flood. Other values are ignored with a free note. |
titleTypes | array | no | [] | One per line, any of them matches: Clean, Salvage, Non-Repairable (Copart's title groups). |
vehicleTypes | array | no | [] | One per line, any of them matches: Automobiles, SUVs, Pickup Trucks, Motorcycle, ATVs, Boats, Bus, Construction Equipment, Dirt Bikes, Heavy Duty Trucks, Industrial Equipment, Jet Skis, Medium Duty Box Trucks, RVs, Snowmobile, Trailers, Agriculture and Farm Equipment. |
states | array | no | [] | Two-letter codes of the yard's state or province, one per line (CA, TX, FL, ON). Any of them matches. |
yards | array | no | [] | Copart yard names exactly as Copart writes them, one per line (CA - SUN VALLEY, TX - HOUSTON). Any of them matches. |
saleDateFrom | string | no | — | YYYY-MM-DD. Only lots whose auction is on or after this day (UTC). Lots not yet scheduled have no sale date and drop out when this is set. |
saleDateTo | string | no | — | YYYY-MM-DD. Only lots whose auction is on or before this day (UTC). |
maxOdometer | integer | no | — | Only lots with an odometer reading up to this many miles. |
buyNowOnly | boolean | no | false | Only lots with a Buy It Now price. |
runAndDriveOnly | boolean | no | false | Only lots Copart lists as Run and Drive. |
insuranceSellersOnly | boolean | no | false | Only lots consigned by insurance companies (Copart's own seller-type filter). Every row also carries insurance_seller either way. |
sellers | array | no | [] | Seller company names, one per line (State Farm, GEICO, USAA, Allstate, Farmers). A name matches sellers that start with it. Any of them matches. Copart filters on the seller even where its lot page does not name it, so seller_name can be empty on a row this filter matched. |
maxResults | integer | no | 100 | Cap for EACH keyword line (or for the whole filter set when no keyword is given), in Copart's order: soonest sale first. In Monitor mode it is how many lots are watched; only the new or changed ones among them are returned. |
proxyConfiguration | object | no | {"useApifyProxy":false} | Off by default. If a run comes back with a 'blocked' row, turn on a proxy. Included in the price. |
Pricing
Pay per result (lot) — no charge for empty runs.
Example: 1000 lots at $0.01/result ≈ $10.00.
FAQ
Does it return sold prices?
No. Copart's public search lists open lots only, and Copart does not publish what lots sell for. high_bid is the lot's current high bid at the time of the run, not a sale price.
Is the VIN complete?
No. Copart's public search masks the last six characters of the VIN (for example 3KPF44AC0ME******), and the rows keep it exactly as shown. Use lot_number as the key.
How does Monitor mode work?
Set Mode to Monitor and save the search as a task with a schedule (daily is common). Each run compares the lots it reads with the lots the same search returned on its last run and delivers only lots that are new, or whose high bid or Buy It Now price changed, with change_type new, bid_change or price_change and the previous value. The first run delivers every lot as new. A run where nothing moved returns one free note saying so. Changing any filter starts a new monitor.
How many lots can it export?
Copart listed 449,171 open lots on 2026-11-07, and its search pages through all of them 100 at a time. Maximum lots per search caps each keyword line, soonest sale first. Measured 2026-11-07, run outside Apify through one proxy: 1,000 lots in 13 seconds.
How does the seller filter work?
Type seller company names (State Farm, GEICO, USAA, Allstate, Farmers); each matches sellers whose name starts with it, using Copart's own seller filter. Copart names the seller on only some lots (210 of the first 1,000 on 2026-11-07), so seller_name can be empty on a lot the filter matched. Insurance-company sellers only uses Copart's seller-type filter, and every row carries insurance_seller.
What if Copart does not answer?
Each request is retried. If Copart still refuses (its firewall answers a challenge page) or does not answer, the lots read so far are delivered and a free row with notice_type "blocked" says so, so a monitor never reads a failed run as "no new lots". Turning on a proxy is the fix if it keeps happening.
Guides & use cases