Copart Auction Scraper — Salvage Lots in 8 Countries avatar

Copart Auction Scraper — Salvage Lots in 8 Countries

Pricing

from $0.75 / 1,000 results

Go to Apify Store
Copart Auction Scraper — Salvage Lots in 8 Countries

Copart Auction Scraper — Salvage Lots in 8 Countries

Scrape Copart salvage and used-vehicle auction lots in 8 countries: USA, Canada, UK, Ireland, Germany, Spain, Finland, Middle East. Paste a search URL or a single lot URL, or filter by make, model, year, odometer. Flat JSON/CSV: specs, damage, bids, dates, images, VIN decoding.

Pricing

from $0.75 / 1,000 results

Rating

5.0

(2)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

48

Total users

13

Monthly active users

a day ago

Last modified

Share

Unlock Copart auction lot data across the USA, Canada, UK, Ireland, Germany, Spain, Finland and the Middle East - Scrape salvage and used vehicle listings from Copart USA, Copart Canada, Copart UK, Copart Ireland, Copart Germany, Copart Spain, Copart Finland and Copart Middle East by driving the same mobile search and lot-detail APIs the member app uses. Ideal for inventory monitoring, pricing research, and building structured datasets from lot search URLs or actor filters—with exports in JSON and CSV.

Scrape Copart salvage and used-vehicle auction lots in 8 countries: USA, Canada, UK, Ireland, Germany, Spain, Finland, Middle East. Paste a search URL or a single lot URL, or filter by make, model, year, odometer. Flat JSON/CSV: specs, damage, bids, dates, images, VIN decoding.

Overview

The Copart scraper collects lot detail records for vehicles (and related inventory) matching your Copart lot search on copart.com, copart.ca, copart.co.uk, copart.ie, copart.de, copart.es, copart.fi or copartmea.com. It starts from either full lotSearchResults URLs (including the searchCriteria query) or in-actor filters (featured chips, extra FETI clauses, or “search all vehicles”). It calls the mobile POST /srch/ search endpoint, then POST /lots-api/v1/lot-details per lot, and writes flattened rows to the dataset (no raw mobileRequest payload).

The country is detected automatically from each URL's host, so USA (copart.com, USD/miles), Canada (copart.ca, CAD), UK (copart.co.uk, GBP/miles), Ireland (copart.ie, EUR/km), Germany (copart.de, EUR/km), Spain (copart.es, EUR/km), Finland (copart.fi, EUR/km) and the Middle East (copartmea.com, AED/km) lots use the same output schema and can be mixed in a single run. For filter-based runs, a site input picks the storefront. (Every market except Germany reuses the UK mobile session; Germany has its own.)

What does the Copart Scraper do?

The Copart scraper enables you to:

Comprehensive data collection

  • Lot listings
    • Pull full lot detail fields returned by the mobile lot-details API (vehicle, damage, yard, auction, bids, title, odometer, etc.)
    • Collect full-size image URLs in lotImages plus a thumbnail in thumbnail_image
    • Preserve the search hit context in searchResult (snake_case fields from the search index)
    • Attach sourceUrl so you know which search produced each lot

Advanced behaviour

  • Search criteria mapping: Translates web searchCriteria JSON (FETI, MAKE, MODL, YEAR, ODM, RNCD, LOC, etc.) into the mobile /srch/ filter format where captured (see codebase copartMobileMapper.ts).
  • Pagination: Follows search pages until your maxItems limit is met or the result set runs out — including across pages where every hit was filtered as an offsite partner lot.
  • Deduplication: Uses extended unique keys so identical POST URLs with different bodies are not collapsed incorrectly.

Flexible input

  • Search URLs: Paste one or more lotSearchResults links from any of the eight Copart sites, e.g.
    https://www.copart.com/lotSearchResults?...&searchCriteria=...
    https://www.copart.de/lotSearchResults?...&searchCriteria=...
    The site is detected per-URL, so you can mix links from different countries in one run.
  • Single lot URLs: Paste a lot page link to scrape that one vehicle without running a search, e.g.
    https://www.copart.com/lot/73672065/salvage-2021-kia-forte-gt-line-tx-dallas
    Both forms go in the same startUrls list and can be mixed freely.
  • Filters only: Leave startUrls empty, pick the site (any of uk, de, us, es, fi, mea, ca, ie), then use Search all vehicles, structured filters (make, model, year, odometer), Featured filters (multi-select), and/or Extra FETI clauses (raw Solr-style fragments as on the site URL).

This tool is ideal for:

  • Salvage and used-vehicle market research across all eight Copart markets
  • Tracking lots by make, model, yard, damage, or odometer bands
  • Pulling one specific lot on demand from its URL
  • Building datasets aligned with Copart search UI behaviour

Features

  • Eight markets, one actor: Copart USA (copart.com, CPRTUS, USD/miles), Canada (copart.ca, CPRTCA, CAD), UK (copart.co.uk, CPRTUK, GBP/miles), Ireland (copart.ie, CPRTIE, EUR/km), Germany (copart.de, CPRTDE, EUR/km), Spain (copart.es, CPRTES, EUR/km), Finland (copart.fi, CPRTFI, EUR/km) and the Middle East (copartmea.com, CPRTMEA, AED/km), auto-selected from the URL host or the site input. Identical output schema for all eight.
  • Three input modes: search URLs, single lot URLs, or actor filter fields (URLs win when both are provided).
  • VIN decoding (optional): adds vin* columns — manufacturer, country of origin, model year, trim, body class, engine, fuel, transmission, assembly plant. Works on the 11-char prefix Copart leaves visible on masked VINs. Free, no API key.
  • Flattened output: lotDetails fields at the top level; lotImages as string URLs only.
  • Full image galleries: every full-size photo URL, not just the thumbnail.
  • No junk records: NPA / Purple Wave partner lots — which Copart's own lot-details API rejects — are filtered out before they reach your dataset.
  • Concurrency & retries: Configurable maxConcurrency, minConcurrency, maxRequestRetries.
  • Proxy support: Apify proxy configuration (residential recommended for member API traffic).
  • Exports: Dataset JSON/CSV (e.g. data.json, data.csv when exported from runs).

Coming from another Copart scraper?

Most Copart actors on the Store cover copart.com only and take one search URL per run. Here is what changes when you switch:

What you needThis actor
CountriesAll 8 — USA, Canada, UK, Ireland, Germany, Spain, Finland, Middle East, mixable in a single run
Search URLs per runUnlimited — startUrls is a list, not a single field
One specific vehiclePaste its lot URL directly; no search runs, one URL costs one result
No URL to handBuild the search from filter fields instead (make, model, year, odometer, featured chips)
VIN detailOptional decoding to manufacturer, country of origin, model year, trim, body class, engine, fuel, transmission and assembly plant — works on Copart's masked VINs
PhotosEvery full-size image URL in lotImages, plus thumbnail_image — not just the thumbnail
ProxiesIncluded and pre-configured per country; no proxy setup or extra proxy bill
Offsite partner lotsDropped before they cost you a record. Copart's US search is mostly NPA / Purple Wave lots that its own detail API rejects; includeOffsiteLots keeps them if you want them
PaginationKeeps paging until your item limit is met, rather than stopping on the first partly-filtered page

How to use

Scraping lots

  1. Set up: Apify account and this actor on the Apify platform (or run locally with Apify SDK / Crawlee).
  2. Configure input (choose one primary path):
    • Add Start URLs: full lotSearchResults links from copart.com, copart.ca, copart.co.uk, copart.ie, copart.de, copart.es, copart.fi or copartmea.com including searchCriteria when you copy from the browser; and/or single lot links like https://www.copart.com/lot/73672065/…, or
    • Leave Start URLs empty: choose the site (uk, de, us, es, fi, mea, ca or ie), then set make / model / year / odometer, Search all vehicles, and/or Featured filters per the input schema.
    • Optionally switch on VIN enrichment to add the vin* columns.
  3. Adjust limits: Set maxItems, concurrency, retries, and proxy as needed.
  4. Run the actor.
  5. Collect dataset items (JSON/CSV). Each item is one lot with flattened detail fields.

Input configuration

Example input (URLs + limits + proxy):

{
"startUrls": [
"https://www.copart.co.uk/lotSearchResults?qId=example&searchCriteria=%7B%22query%22%3A%5B%22*%22%5D%2C%22filter%22%3A%7B%7D%7D"
],
"searchAllVehicles": false,
"featuredChips": ["buyItNow", "highValueItems"],
"extraFetiClauses": [],
"maxItems": 1000,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 60,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example input (Germany, filter-based — no URLs):

{
"site": "de",
"searchAllVehicles": true,
"maxItems": 500,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Input fields explanation

  • startUrls (Array of strings): Copart URLs from any of the eight sites — USA (copart.com), Canada (copart.ca), UK (copart.co.uk), Ireland (copart.ie), Germany (copart.de), Spain (copart.es), Finland (copart.fi) or Middle East (copartmea.com). Two shapes are accepted and can be mixed in one list:

    • Search URLshttps://www.copart.com/lotSearchResults?...&searchCriteria=.... The actor paginates the search and pulls full details for every hit.
    • Single lot URLshttps://www.copart.com/lot/73672065/... (the legacy /lotdetails/73672065 form works too). No search is run; the actor fetches that lot's details directly, so one URL costs exactly one result.

    If this array is non-empty, the actor ignores the filter section below. The site is detected from each URL's host, so links from different countries can be mixed. If empty, you must satisfy the filter rules below.

  • site (String, uk, de, us, es, fi, mea, ca or ie, default uk): For filter-based runs only (when startUrls is empty), selects the storefront the filters run against — uk = copart.co.uk (GBP/miles), de = copart.de (EUR/km), us = copart.com (USD/miles), es = copart.es (EUR/km), fi = copart.fi (EUR/km), mea = copartmea.com / Middle East (AED/km), ca = copart.ca (CAD), ie = copart.ie (EUR/km). Ignored for URL-based runs.

  • searchAllVehicles (Boolean): When startUrls is empty, set to true to run a very broad search on the selected site (default year facet behaviour in the mapper). If false, you need at least one meaningful filter or extra FETI clause.

  • featuredChips (Array of strings, multi-select): “Featured items” style facets. Fully wired fragments in code include e.g. vehiclesForAuction, buyItNow, highValueItems, hotItems; other chip IDs may log a warning until mapped in src/lib/copartFeaturedChips.ts.

  • extraFetiClauses (Array of strings): Additional Solr-style FETI lines copied from a real searchCriteria URL on copart.com, copart.ca, copart.co.uk, copart.ie, copart.de, copart.es, copart.fi or copartmea.com—appended after featured chip fragments.

  • enrichVin (Boolean, default false): Decode each lot's VIN and add flat vin* columns (see VIN enrichment below). Uses the free public NHTSA vPIC database — no API key, no extra charge, cached per run.

  • includeOffsiteLots (Boolean, default false): Keep NPA / Purple Wave partner lots. Copart's US search index mixes these in, but Copart's lot-details API rejects them, so by default they are dropped before they cost you a record. On a default copart.com search they are the majority of hits — a live sample of the first 20 was 11 Purple Wave, 7 NPA and 2 Copart — so leaving this off is usually what you want. Non-US markets contain no partner lots and are unaffected.

  • maxItems (Integer): Maximum number of lot detail records to push to the dataset (subject to Apify account limits / actor logic).

  • maxConcurrency / minConcurrency (Integer): Crawler concurrency bounds for HTTP requests.

  • maxRequestRetries (Integer): Retries per failed request.

  • proxy (Object): Apify proxy configuration; residential groups are commonly used for Copart member endpoints.

Output structure

The dataset contains one object per lot. Data comes from the mobile lot-details response, flattened (no nested lotDetails wrapper), with lotImages as URL strings, plus sourceUrl, searchResult, and thumbnail_image. All eight markets share the same schema — the difference is in the values: US/UK lots report miles (USD / GBP), Canada CAD, the Middle East AED, and Ireland/Germany/Spain/Finland EUR — with metric (kilometres) odometers outside the US/UK (currencyCode, odometerUOM). The sample below is a UK lot.

Sample JSON output (first object from data.json, pretty-printed)

{
"auctionAssignmentNumber": 0,
"auctionDateType": "F",
"bodyStyle": "ESTATE",
"buyTodayBid": 0,
"color": "GREY",
"drive": "2 AXLE RIGID BODY",
"runCondition": "S",
"fuel": "DIESEL",
"gridRow": "4L10",
"keys": "YES",
"hasOwnerManual": "No",
"hasTransmission": "Yes",
"hasEngine": "Yes",
"highlights": "ENGINE START PROGRAM",
"lotCountry": "GBR",
"lotMakeCode": "VOLV",
"lotModelDesc": "XC60 R DES",
"lotMakeDesc": "VOLVO",
"lotYear": 2019,
"trim": "",
"category": "S REPAIRABLE STRUCTURAL",
"lotDescription": "2019 VOLVO XC60 2.0 D4 R DESIGN 5DR GEARTRONIC",
"navigation": "No",
"offsiteFlag": false,
"lotNumber": 47493436,
"notes": "PHYSICAL V5 AVAILABLE",
"odometer": 80668,
"goAppUser": "",
"primaryDamage": "FRONT END",
"primaryDamageCode": "DAMAGECODE_FR",
"secDamage": "SIDE",
"repairEst": 0,
"vatTosale": "No",
"vehicleTypeCode": "VEHTYPE_V",
"vehicleTypeDesc": "VEHICLES UNDER 7.5 TONNES",
"siteCode": [
"CPRTUK"
],
"sellerSource": "",
"transmission": "8 SPEED AUTO",
"transmissionType": "8 SPEED AUTO",
"prop65Warning": false,
"maskedVIN": "*****************",
"isLotOwner": false,
"vehicleRegistrationNumber": "*******",
"yardName": "BRISTOL",
"yardNumber": 415,
"yardZipCode": "BS10 7SF",
"yardCityName": "AVONMOUTH, BRISTOL",
"yardTwoLetterState": "GB",
"buildSheetFlag": false,
"lotIconCodes": [
"ADDL-INFO",
"CERT-S",
"IV",
"VHDRP"
],
"hasVehicleReport": true,
"isInsuranceSeller": true,
"titleState": "GB",
"saleTitleType": "S",
"titleDescription": "S REPAIRABLE STRUCTURAL",
"titleGroupCode": "TITLEGROUP_C",
"titleGroupDescription": "Clean",
"auctionHostName": "BRISTOL",
"auctionHostId": 415,
"currencyCode": "GBP",
"saleDate": "2026-04-22T09:00:00Z",
"lastUpdated": "04/10/2026, 12:00 am",
"isSealedBid": false,
"engine": "1969 cc",
"estRetailValue": 16902.67,
"sublotFlag": false,
"subLotLocation": null,
"subLotMapsLocation": null,
"soldFlag": false,
"timeZone": "BS",
"isBuyTodayLot": false,
"latitude": 51.53199,
"longitude": -2.65965,
"physicalYardNumber": 415,
"showJapanSaleDisclaimer": false,
"currentBid": 0,
"displayBidAmount": 0,
"isCopartWholesaleLot": false,
"showConditionReportV2": false,
"nonGoApSellerCompanyLot": "",
"sellerInfo": {},
"bidState": "PRELIMBID",
"bidStatus": "NEVERBID",
"saleStatus": "PURESALE",
"allowStartingBidAmount": true,
"isMakeAnOfferLot": false,
"firstRegistrationDate": "20190610",
"saleLightColor": "",
"additionalNotes": [
{
"NOTEDATE": "27/03/2026",
"ESQNBR": 77,
"NOTE": "NUMBER OF KEYS 2 "
}
],
"enableUpdatedOffsiteLotPilot": false,
"autoCheckFlag": false,
"lotImages": [
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/7713961ca0f2421fb821c61db431e534_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/124caef72e9e4f6f86b1905be87ff4f8_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/cd9b47738f5d4f37a2b1b0bcb6bdbfe4_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/99c62b66014c406eab505c340bdf651f_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/84c7f56f2a044796b0c9a0c9191247cd_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/d1fc528e27fe45e38408e89866464a9d_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/76e66da09a1c474f8a6081112a254198_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/234da12212c4431bb5568170ac780d68_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/8fb75afa77624dfca6354372f51e47e0_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/bfcb79d9df5b4182bba5cc7d026eceb8_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0426/389ca93b773e4affb80945e61724db8d_ful.jpg",
"https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/443afe2735e64b0db3db5f4e1b3e0b59_ful.jpg"
],
"sourceUrl": "https://www.copart.co.uk/lotSearchResults?qId=cdb3c72e-e25e-4bc6-8b25-bc22009f1e36-1775984478013&intcmp=web_homepage_banner&searchCriteria=%7B%22query%22:%5B%22*%22%5D,%22filter%22:%7B%22MAKE%22:%5B%22lot_make_desc:%5C%22VOLVO%5C%22%22%5D,%22MODL%22:%5B%22manufacturer_model_desc:%5C%22XC60%5C%22%22%5D,%22YEAR%22:%5B%22lot_year:%5B2018%20TO%202024%5D%22%5D,%22ODM%22:%5B%22odometer_reading_received:%5B75001%20TO%20100000%5D%22%5D%7D,%22searchName%22:%22%22,%22watchListOnly%22:false,%22freeFormSearch%22:false%7D",
"searchResult": {
"auction_host_name": "BRISTOL",
"auction_host_id": 415,
"buy_it_now_price": 0,
"currency_code": "GBP",
"sealed_bid_flag": false,
"auction_date_utc": "2026-04-22T09:00:00Z",
"auction_date_type": "F",
"auction_assignment_number": 0,
"lot_desc": "2019 VOLVO XC60 2.0 D4 R DESIGN 5DR GEARTRONIC",
"lot_number": 47493436,
"odometer_reading_received": 80668,
"lot_thumbnail_image_path": "cs.copart.com/v1/AUTH_svc.pdoc00001/lpp/0326/7713961ca0f2421fb821c61db431e534_thb.jpg",
"yard_name": "BRISTOL",
"yard_number": 415,
"title_desc": "S REPAIRABLE STRUCTURAL",
"lot_icon_codes": [
"ADDL-INFO",
"CERT-S",
"IV",
"VHDRP"
],
"purple_wave_url": "",
"show_updated_offsite_lot_text": false,
"hide_odometer": false,
"full_vin": "*****************"
},
"thumbnail_image": "https://c-static.copart.com/v1/AUTH_svc.pdoc00001/ids-c-prod-lpp/0326/7713961ca0f2421fb821c61db431e534_thb.jpg"
}

This sample matches the first element of data.json (same values; indentation added for readability).

Output fields explanation

Fields below match the first object in data.json (flattened Copart mobile lot detail + actor-added fields). Types reflect typical values; Copart may add or omit fields over time.

Auction & sale

  • auctionAssignmentNumber (Number): Lane/assignment identifier for the sale event (0 if not assigned in sample).
  • auctionDateType (String): Auction date classification code from Copart (e.g. F).
  • saleDate (String, ISO 8601): Scheduled sale / auction datetime (UTC).
  • lastUpdated (String): Human-readable last update string from the API.
  • saleStatus (String): Sale lifecycle code (e.g. PURESALE).
  • saleLightColor (String): Sale light indicator (empty if none).
  • isSealedBid (Boolean): Whether the lot is a sealed-bid sale.
  • timeZone (String): Yard/sale timezone code (e.g. BS).
  • auctionHostName (String): Host location name for the auction (often matches yard).
  • auctionHostId (Number): Numeric host / auction location id.

Vehicle identity & specs

  • lotNumber (Number): Copart lot number (primary key for the listing).
  • lotDescription (String): Full text description line for the vehicle.
  • lotYear (Number): Model year.
  • lotMakeDesc / lotMakeCode (String): Make label and internal make code.
  • lotModelDesc (String): Model / trim description string.
  • trim (String): Trim field (may be empty).
  • bodyStyle (String): Body style label (e.g. ESTATE).
  • color (String): Exterior colour label.
  • fuel (String): Fuel type label.
  • drive (String): Drivetrain / axle description.
  • engine (String): Engine displacement or description text.
  • transmission / transmissionType (String): Transmission description (often duplicated).
  • odometer (Number): Odometer reading (miles context for UK listings in typical use).
  • runCondition (String): Run-and-drive style code (e.g. S, N—Copart-coded).
  • keys (String): Whether keys are present (e.g. YES / NO).
  • hasOwnerManual / hasTransmission / hasEngine (String): Yes/No flags from condition checklist.
  • highlights (String): Highlight line (e.g. programme name).
  • navigation (String): Navigation present flag (e.g. No).
  • vehicleTypeCode / vehicleTypeDesc (String): Vehicle category code and description.
  • category (String): Damage / listing category line (e.g. repairable structural).
  • firstRegistrationDate (String): Registration date, often YYYYMMDD.

Damage & valuation

  • primaryDamage / primaryDamageCode (String): Primary damage description and Copart damage code.
  • secDamage (String): Secondary damage description.
  • repairEst (Number): Repair estimate amount (currency implied by currencyCode).
  • estRetailValue (Number): Estimated retail value.
  • titleState (String): Title jurisdiction (e.g. GB).
  • saleTitleType (String): Title type code (e.g. S).
  • titleDescription (String): Human-readable title / category line.
  • titleGroupCode / titleGroupDescription (String): Title group code and label (e.g. Clean group).
  • notes (String): Free-text notes line (e.g. V5 availability).
  • vatTosale (String): VAT treatment flag for sale (e.g. Yes / No).
  • prop65Warning (Boolean): Prop 65 flag (often false for UK).

Yard & location

  • lotCountry (String): Country code for the lot (e.g. GBR).
  • siteCode (Array of strings): Site codes (e.g. CPRTUK).
  • yardName (String): Yard display name.
  • yardNumber / physicalYardNumber (Number): Yard identifiers.
  • yardZipCode (String): Yard postal code.
  • yardCityName (String): City / area label for the yard.
  • yardTwoLetterState (String): Region code (e.g. GB).
  • latitude / longitude (Number): Geocoordinates for the yard / lot location.
  • offsiteFlag (Boolean): Offsite lot flag.
  • sublotFlag (Boolean): Sub-lot flag.
  • subLotLocation / subLotMapsLocation (null|String): Sub-lot location fields when applicable.

Seller & flags

  • sellerSource (String): Seller source string (may be empty).
  • sellerInfo (Object): Seller metadata object (often empty {}).
  • isInsuranceSeller (Boolean): Insurance-seller indicator.
  • isLotOwner (Boolean): Lot owner flag for the viewing user context.
  • nonGoApSellerCompanyLot (String): Non–GO seller company marker when set.
  • isCopartWholesaleLot (Boolean): Wholesale lot flag.
  • isBuyTodayLot / buyTodayBid (Boolean|Number): Buy-It-Now style flags and amount.
  • isMakeAnOfferLot (Boolean): Make-an-offer eligibility.
  • gridRow (String): Yard grid / row locator for physical location.

VIN & registration

  • maskedVIN (String): Masked VIN for display.
  • vehicleRegistrationNumber (String): Masked or partial registration number.

Bidding & display

  • currentBid / displayBidAmount (Number): Current bid values shown to the user.
  • bidState (String): Bid state machine code (e.g. PRELIMBID).
  • bidStatus (String): User bid status (e.g. NEVERBID).
  • allowStartingBidAmount (Boolean): Whether starting bid rules apply as shown.
  • soldFlag (Boolean): Whether the lot is marked sold.

Icons, reports, misc

  • lotIconCodes (Array of strings): Feature / badge codes (e.g. certificate, inspection).
  • hasVehicleReport (Boolean): Vehicle report available flag.
  • buildSheetFlag (Boolean): Build sheet available flag.
  • showConditionReportV2 (Boolean): Condition report UI flag.
  • showJapanSaleDisclaimer (Boolean): Japan sale disclaimer flag.
  • enableUpdatedOffsiteLotPilot (Boolean): Feature pilot flag.
  • autoCheckFlag (Boolean): AutoCheck (or similar) flag.
  • goAppUser (String): GO app user field (often empty in exports).

Notes array

  • additionalNotes (Array of objects): Yard/auction notes.
    • NOTEDATE (String): Note date string.
    • ESQNBR (Number): Sequence / id number for the note.
    • NOTE (String): Note body text (often padded).

VIN enrichment fields

Present only when enrichVin is true. Copart masks the last six characters of the VIN on public lots (3KPF44AC0ME******); the visible 11-character prefix carries the manufacturer, model line, model year and assembly plant, which is all the decoder needs. Lots whose VIN is fully masked (*****************, common on UK/IE listings) get vinDecoded: false and no other vin* columns.

  • vinDecoded (Boolean): Whether the VIN resolved. false means the VIN was fully masked, too short, or the decoder was unreachable — the lot row itself is still complete.
  • vinWmi (String): World Manufacturer Identifier, the VIN's first three characters.
  • vinCountryOfOrigin (String): Country the vehicle was built in, derived from the WMI (e.g. Japan, Germany, South Korea, Mexico).
  • vinMake / vinManufacturer (String): e.g. KIA / KIA MEXICO S.A. DE C.V.
  • vinModel / vinSeries / vinTrim (String): Decoded model line, series and trim.
  • vinModelYear (String): Model year from the VIN's year code — useful as a cross-check against Copart's own lotYear.
  • vinBodyClass / vinVehicleType / vinDoors (String): e.g. Sedan/Saloon, PASSENGER CAR, 4.
  • vinEngineCylinders / vinDisplacementL / vinEngineHP (String): Engine block.
  • vinFuelType / vinTransmission / vinDriveType / vinGvwr (String): Drivetrain and rating.
  • vinPlantCountry / vinPlantCity / vinPlantCompanyName (String): Assembly plant, when the decoder resolves it.
  • vinErrorCode (String): Raw decoder status. 0 is a complete decode; 6 means "incomplete VIN", which is the normal, expected result for Copart's masked 11-character prefixes and does not indicate a problem.

Media & provenance (added by scraper)

  • lotImages (Array of strings): Full-resolution image URLs (*_ful.jpg style paths on Copart CDN).
  • thumbnail_image (String): Thumbnail taken from the first image row’s thumbnailUrl in the lot-details response (or that row’s url if thumbnailUrl is missing). Usually a *_thb.jpg URL on the Copart CDN when the API returns absolute URLs. searchResult.lot_thumbnail_image_path is the separate search-index path and may omit the scheme.
  • sourceUrl (String): The URL that produced this lot in the run — the search URL (including encoded searchCriteria when copied from the browser), or the single lot URL when one was supplied directly.
  • lotDetailsAvailable (Boolean): true for a full lot-details record. false on the rare hits where Copart's search index returns an offsite partner lot (NPA / Purple Wave, marked sale_platform_code: "NPAUSA" with an npa_url) — Copart's lot-details API does not serve those, so the row carries the search-index fields under searchResult instead of a blank record.

searchResult object (search index hit, snake_case)

These fields mirror the search payload for this lot before lot-details enrichment. Names stay in snake_case as in the API.

  • auction_host_name (String): Auction host / sale location name (e.g. yard name).
  • auction_host_id (Number): Numeric id for the auction host location.
  • buy_it_now_price (Number): Buy-it-now price from the search index (0 if none / not applicable).
  • currency_code (String): Currency for monetary fields in the search hit (e.g. GBP).
  • sealed_bid_flag (Boolean): Whether the search index marks the lot as sealed bid.
  • auction_date_utc (String, ISO 8601): Scheduled auction datetime from the search index (UTC).
  • auction_date_type (String): Auction date type code (e.g. F), same meaning as top-level auctionDateType.
  • auction_assignment_number (Number): Assignment / lane number from the search index (often mirrors auctionAssignmentNumber).
  • lot_desc (String): Short lot description line as indexed for search (mirrors lotDescription in plain language).
  • lot_number (Number): Copart lot number (same logical id as top-level lotNumber).
  • odometer_reading_received (Number): Odometer reading on the search document (mirrors top-level odometer when unchanged).
  • lot_thumbnail_image_path (String): Thumbnail path or URL fragment from search (may omit scheme; compare with thumbnail_image).
  • yard_name (String): Yard name from the search index.
  • yard_number (Number): Yard number from the search index.
  • title_desc (String): Title / damage category description as indexed (mirrors titleDescription / category wording).
  • lot_icon_codes (Array of strings): Badge / icon codes on the search hit (same codes as lotIconCodes, different naming convention).
  • purple_wave_url (String): Purple Wave (or related) URL when present; empty string if none.
  • show_updated_offsite_lot_text (Boolean): UI flag from search for offsite lot messaging.
  • hide_odometer (Boolean): When true, the product UI would hide odometer; false means odometer is shown.
  • full_vin (String): VIN field from search (typically masked the same way as maskedVIN on the detail payload).

Explore more scrapers

If you find this actor useful, see more tools on memo23's Apify profile.

Support

Additional services


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/copart-scraper).

Purpose: Extract Copart vehicle auction lot detail across 8 markets (US/CA/UK/IE/DE/ES/FI/MEA) — one flattened row per lot with specs, damage, VIN, odometer, yard, auction dates, bids and images, from lotSearchResults URLs or in-actor filters.

Minimal input (URL mode):

{
"startUrls": ["https://www.copart.co.uk/lotSearchResults?searchCriteria=%7B%22query%22%3A%5B%22*%22%5D%2C%22filter%22%3A%7B%7D%7D"],
"maxItems": 50,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 60,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Filter mode (leave startUrls empty): set "site": "de" and either "searchAllVehicles": true or narrowing filters make, model, yearMin/yearMax, odometerMin/odometerMax, featuredChips (e.g. ["buyItNow","highValueItems"]), extraFetiClauses.

Output: one flattened dataset row per lot — lotNumber, lotDescription, lotYear, lotMakeDesc, lotModelDesc, bodyStyle, color, fuel, odometer, primaryDamage, secDamage, estRetailValue, repairEst, titleDescription, currencyCode, saleDate, currentBid, siteCode, lotCountry, yardName, yardZipCode, latitude, longitude, maskedVIN, lotImages, thumbnail_image, sourceUrl, searchResult (snake_case search-index hit), additionalNotes.

Behaviors an agent should know:

  • When startUrls is non-empty it wins — the whole filter section (site, make, model, etc.) is ignored for that run.
  • The country/currency is auto-detected from each URL host, so US/CA/UK/IE/DE/ES/FI/MEA links can be mixed in one run; all markets share one output schema.
  • Always set maxItems (default 1000). Search pages are followed until the cap or no more results.
  • Use a residential proxy for the member-API traffic (apifyProxyGroups: ["RESIDENTIAL"]); datacenter proxies are frequently blocked.
  • featuredChips only fully supports vehiclesForAuction, buyItNow, highValueItems, hotItems; other chip IDs are accepted but skipped with a warning until mapped in code.
  • Billing: Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Copart, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Copart lot search and lot-detail data — no authenticated member-account features or content behind the Copart login wall are used to place bids or transact. Users are responsible for ensuring their use complies with Copart's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

copart scraper, scrape copart, copart API, copart auction scraper, Apify copart, salvage vehicle scraper, car auction data scraper, used car listings scraper, vehicle lot data extraction, copart uk scraper, copart germany scraper, salvage car market research, vin odometer data, auction pricing analysis, vehicle inventory monitoring, damaged car data, automotive auction intelligence, copart lot search export