Discover/ucars API
live

ucars APIucars.pro ↗

Search Copart and IAAI salvage auction lots by make, model, year, and odometer. Look up VIN or lot number for final bid price, damage, and photo gallery.

Endpoint health
verified 1h ago
list_makes
search_auction_lots
get_lot_by_vin
search_by_lot_number
list_models
5/5 passing latest checkself-healing
Endpoints
5
Updated
1h ago

What is the ucars API?

The ucars.pro API gives developers structured access to Copart and IAAI salvage vehicle auction data across the US and Canada through 5 endpoints. Use search_auction_lots to page through live or ended auctions with filters for make, model, year range, and odometer range, or call get_lot_by_vin to retrieve a specific vehicle's full detail record including final bid price, condition damage codes, and a photo gallery.

This call costs3 credits / call— charged only on success
Try it
Vehicle make as emitted by list_makes.makes[*].make (case-insensitive, spaces allowed, e.g. land rover). Omitted = all makes.
1-based page number, 24 lots per page.
Order by auction date. Omitted = site default (soonest first).
Model name as emitted by list_models.models[*] (case-insensitive). Only applied when make is also given.
live = active/upcoming auctions, sold = ended sales history.
Restrict to one auction house. Omitted = all auctions.
Maximum model year, 4 digits.
Minimum model year, 4 digits.
Maximum odometer reading in miles (non-negative integer).
Minimum odometer reading in miles (non-negative integer).
→ api.parse.bot/scraper/73228143-bfbc-403c-8446-10f3c7b9722b/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/73228143-bfbc-403c-8446-10f3c7b9722b/search_auction_lots?make=acura&status=live&auction=copart' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace ucars-pro-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: ucars.pro auction SDK — bounded, re-runnable; every call capped."""
from parse_apis.ucars_pro_api import UcarsPro, Auction, LotStatus, SortOrder, LotNotFound

client = UcarsPro()

# List available makes, pick the first one.
make = client.makes.list(limit=5).first()
if make is not None:
    print(f"Make: {make.make} (slug: {make.make_slug})")

    # List models for that make.
    for model_name in client.makes.list_models(make=make.make, limit=5):
        print(f"  Model: {model_name}")

# Search live Copart lots for a specific make, sorted soonest-first.
for summary in client.lot_summaries.search(
    make="acura", status=LotStatus.LIVE, auction=Auction.COPART,
    sort=SortOrder.ASC, limit=3,
):
    print(f"{summary.title}  lot#{summary.lot_number}  {summary.auction_date}")

# Drill down: take one lot summary and navigate to its full detail.
hit = client.lot_summaries.search(make="acura", auction=Auction.COPART, limit=1).first()
if hit is not None:
    lot = hit.details()
    print(f"{lot.title} — VIN {lot.vin}, price={lot.price}, photos={lot.photo_count}")

# Point lookup by VIN, with typed error handling.
try:
    lot = client.lots.get(vin="19UUB2F44LA005123")
    print(f"{lot.year} {lot.make} {lot.model}, condition: {lot.condition}, damage: {lot.primary_damage}")
except LotNotFound as e:
    print(f"VIN not found: {e.message}")

print("exercised: makes.list / makes.list_models / lot_summaries.search / details / lots.get")
All endpoints · 5 totalmissing one? ·

Browse vehicle auction lots, one record per lot, 24 lots per page. status selects live (upcoming/active) auctions or sold (ended sales history). Filters: auction, make, model (requires make), year_from/year_to, odometer_from/odometer_to (miles); every filter is applied by the site. Each lot carries VIN, lot number, auction name, auction date, year/make/model, odometer, primary damage, condition, title type and the primary photo URL; the final bid price and the full photo gallery are only on the lot page, fetch them with get_lot_by_vin using the emitted vin. Pagination: page (default 1); last_page and has_more are read from the site's pager; a page past the last one returns an empty items list. An unknown make returns an empty page. Sort orders by auction date (asc = soonest first, default for live).

Input
ParamTypeDescription
makestringVehicle make as emitted by list_makes.makes[*].make (case-insensitive, spaces allowed, e.g. land rover). Omitted = all makes.
pageinteger1-based page number, 24 lots per page.
sortstringOrder by auction date. Omitted = site default (soonest first).
modelstringModel name as emitted by list_models.models[*] (case-insensitive). Only applied when make is also given.
statusstringlive = active/upcoming auctions, sold = ended sales history.
auctionstringRestrict to one auction house. Omitted = all auctions.
year_tostringMaximum model year, 4 digits.
year_fromstringMinimum model year, 4 digits.
odometer_tostringMaximum odometer reading in miles (non-negative integer).
odometer_fromstringMinimum odometer reading in miles (non-negative integer).
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "count": "number of lots on this page",
    "items": "array of lot summaries: vin, lot_number, auction (copart|copart-canada|iaai|iaai-canada), auction_date (YYYY-MM-DD), title, year, make, model, specs (fuel / engine / cylinders / drive), odometer (text), odometer_value (integer miles), damage, condition (nullable), title_type, seller (nullable), photo_url, detail_url",
    "status": "live or sold, echoing the request",
    "has_more": "true when page < last_page",
    "last_page": "last page number from the site pager"
  },
  "sample": {
    "data": {
      "page": 1,
      "count": 24,
      "items": [
        {
          "vin": "SALVP2BG9DH824893",
          "make": "Land Rover",
          "year": 2013,
          "model": "Range Rover Evoque",
          "specs": "Gas / 2.0 L / 4 cyl / All wheel drive",
          "title": "2013 Land Rover Range Rover Evoque",
          "damage": "Normal wear",
          "seller": null,
          "auction": "copart",
          "odometer": "118507 mi",
          "condition": "Run and drive",
          "photo_url": "https://ucars.pro/lot/images/copart/lpp-0726-0242594e785846fda28131c3e5c794a3_ful",
          "detail_url": "https://ucars.pro/vin/SALVP2BG9DH824893",
          "lot_number": "63551046",
          "title_type": "Other",
          "auction_date": "2026-10-12",
          "odometer_value": 118507
        }
      ],
      "status": "sold",
      "has_more": true,
      "last_page": 417
    },
    "status": "success"
  }
}

About the ucars API

Browsing and Filtering Auction Lots

The search_auction_lots endpoint returns 24 lots per page and accepts filters for auction (copart, copart-canada, iaai, iaai-canada), make, model, year_from/year_to, and odometer_from/odometer_to in miles. The status parameter switches between live (active and upcoming auctions) and sold (ended sales history). Each item in the items array includes vin, lot_number, auction, auction_date (YYYY-MM-DD), title, year, and summary-level fields. Pagination is handled via the page parameter; has_more and last_page tell you how many pages remain.

Lot Detail and Lookup

get_lot_by_vin takes a single VIN and returns the full lot record: year, make, model, fuel, drive, color, keys, loss type, a condition and damage block, vehicle specs, and price with a price_label indicating what the price represents (e.g., "Final bid"). Both price and price_label are null when the source shows no price for the lot. If you have a lot number instead of a VIN, search_by_lot_number accepts the numeric lot_number and returns matching lot summaries in the same shape as search_auction_lots.items without pagination.

Make and Model Discovery

Before filtering searches, use list_makes to retrieve the exact make strings accepted by the search and model-listing endpoints; the response also includes make_slug (URL-form with underscores). Pass one of those make values to list_models along with an optional auction filter to get the raw model strings the site recognizes for that make. These raw strings — lowercase, occasionally including trim variants — are the accepted values for search_auction_lots.model. Both endpoints support an optional auction parameter to restrict results to one auction house.

Reliability & maintenanceVerified

The ucars API is a managed, monitored endpoint for ucars.pro — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ucars.pro changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official ucars.pro API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1h ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track final bid prices on sold Copart and IAAI lots by VIN for insurance valuation reference
  • Build a salvage car search tool filtered by make, model, year range, and mileage
  • Monitor upcoming live auction dates for specific vehicle makes across US and Canada locations
  • Fetch photo galleries and damage condition data for a list of VINs before bidding
  • Aggregate historical sold prices by model and year to analyze salvage market trends
  • Validate a lot number from an external source and retrieve its auction and sale status
  • Enumerate all makes and models available at a specific auction house for UI filter population
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does ucars.pro offer an official developer API?+
ucars.pro does not publish an official developer API or documented public data service. The Parse API is the structured programmatic interface available for this data.
How does get_lot_by_vin handle lots where no price was recorded?+
When the source shows no price for a lot, both the price field (integer) and price_label field are returned as null. When a price is present, price_label indicates what it represents — for example, 'Final bid' for a completed sale.
Does the search_auction_lots endpoint cover Canadian auction locations?+
Yes. The auction filter accepts four values: copart, copart-canada, iaai, and iaai-canada. Omitting the filter returns lots across all four. Individual lot records include an auction field identifying which house and country the lot belongs to.
Is vehicle history report data (e.g., CarFax or AutoCheck records) available?+
Not currently. The API covers lot-level auction data: bid prices, condition and damage fields, odometer, specs, and photo galleries as shown on ucars.pro. Vehicle history report data from third-party services is not part of the response. You can fork this API on Parse and revise it to add an endpoint that integrates a history report service.
Can I retrieve all lots for a given auction without paginating manually?+
Pagination is 24 lots per page. The last_page field in the search_auction_lots response tells you the total number of pages, and has_more is true while more pages exist. There is no bulk-download endpoint that returns all lots in one call. You can fork this API on Parse and revise it to add a helper endpoint that iterates pages and aggregates results.
Page content last updated . Spec covers 5 endpoints from ucars.pro.
Related APIs in AutomotiveSee all →
bid.cars API
Search and browse salvage and insurance vehicle auctions from Copart and IAAI marketplaces, view detailed listing information including photos, pricing history, and vehicle specifications by VIN or lot number. Find similar vehicles, access sales history, and explore available makes and models to discover your next auction opportunity.
bid.cars.com API
Search for vehicles listed at major US auto auctions like Copart and IAAI by make, model, year, and mileage to find detailed vehicle information and photos for your next purchase. Access comprehensive auction inventory data to compare options and make informed bidding decisions across multiple auction houses.
copart.com API
Access data from copart.com.
autobidmaster.com API
Search and browse vehicle auction inventory with detailed lot information, filters by make, type, body style, and damage condition, plus discover featured items and auction locations. Find the perfect vehicle by accessing comprehensive inventory data and exploring popular makes and damage types across AutoBidMaster auctions.
carsandbids.com API
Browse live car auction listings from Cars & Bids to discover current enthusiast vehicle sales in real-time. Find detailed information about available auctions to track specific vehicles and bidding opportunities.
carsforsale.com API
Search vehicle listings and browse detailed car inventory by make, model, and trim to find the perfect vehicle on CarsForSale.com. Access comprehensive listing details including pricing, specifications, and availability all in one place.
autotrader.com API
Search Autotrader.com vehicle listings and access detailed information like pricing, specifications, and VIN data with flexible filtering options. Browse all available vehicle makes and models to refine your search across thousands of listings.
pcarmarket.com API
Access data from pcarmarket.com.