← Health board

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.

—insufficient data

Verification

Not yet in the weekly verification report.

Output fields

Authoritative field set from the dataset schema.

FieldType
lot_numberinteger|null
yearinteger|null
makestring|null
modelstring|null
trimstring|null
vin_maskedstring|null
odometernumber|null
odometer_statusstring|null
primary_damagestring|null
secondary_damagestring|null
title_typestring|null
title_groupstring|null
title_statestring|null
conditionstring|null
estimated_retail_valuenumber|null
repair_costnumber|null
repair_to_value_rationumber|null
high_bidnumber|null
buy_now_pricenumber|null
sale_statusstring|null
auction_datestring|null
yard_namestring|null
yard_citystring|null
yard_statestring|null
yard_zipstring|null
yard_countrystring|null
yard_latitudenumber|null
yard_longitudenumber|null
seller_namestring|null
insurance_sellerboolean|null
vehicle_typestring|null
body_stylestring|null
colorstring|null
enginestring|null
cylindersstring|null
transmissionstring|null
drivestring|null
fuelstring|null
has_keysboolean|null
featuresarray|null
thumbnail_urlstring|null
lot_urlstring|null
change_typestring|null
previous_high_bidnumber|null
previous_buy_now_pricenumber|null
querystring|null
noticestring|null
notice_typestring|null
source_urlstring|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

FieldTypeReqDefaultDescription
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