Cars APIbid.cars.com ↗
Search Copart and IAAI auction inventory via the bid.cars.com API. Filter by make, model, year, and mileage. Returns vehicle details and photo URLs.
What is the Cars API?
The bid.cars.com API provides a single search_vehicles endpoint that queries live US auto auction listings from sources including Copart and IAAI, returning up to 20 vehicles per page with details across at least 3 response fields: total match count, a vehicles array with photos, and the current page number. Filters let you narrow results by make, model, year range, and odometer range in a single call.
curl -X GET 'https://api.parse.bot/scraper/2adeb1e1-947a-4c71-88b5-5ef2feb90fad/search_vehicles?make=Toyota&model=Camry&year_to=2023&year_from=2015' \ -H 'X-API-Key: $PARSE_API_KEY'
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 bid-cars-com-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: Bid.Cars auction vehicle search — bounded, re-runnable."""
from parse_apis.bid_cars_com_api import BidCars, ParseError
client = BidCars()
# Search for Toyota Camry vehicles from 2015-2023, cap total items fetched.
for vehicle in client.vehicles.search(make="Toyota", model="Camry", year_from="2015", year_to="2023", limit=5):
print(vehicle.name, vehicle.lot, vehicle.odometer_miles, "mi")
# Drill-down: take one result to inspect details.
vehicle = client.vehicles.search(make="Honda", model="Civic", limit=1).first()
if vehicle is not None:
print(vehicle.vin, vehicle.engine, vehicle.location)
print("Bid:", vehicle.current_bid, "Est:", vehicle.estimated_min, "-", vehicle.estimated_max)
if vehicle.video_url:
print("Video:", vehicle.video_url)
# Browse all vehicles under 50k miles, capped at 3 results.
try:
for v in client.vehicles.search(odometer_to="50000", limit=3):
print(v.name, v.primary_damage, v.start_code)
except ParseError as e:
# Upstream markup changed or extraction failed
print("Parse error:", e)
print("exercised: vehicles.search")
Search auction vehicles by make, model, year range, and mileage. Returns paginated results with vehicle details and photos. Each page returns approximately 20 vehicles. Use the page parameter to paginate through results. When all optional filters are omitted, returns all available automobiles.
| Param | Type | Description |
|---|---|---|
| make | string | Vehicle make (e.g. Toyota, Honda, BMW, Ford). Case-sensitive, use title case. Omitting returns all makes. |
| page | integer | Page number for pagination. Each page returns ~20 vehicles. |
| model | string | Vehicle model (e.g. Camry, Civic, 3 Series). Case-sensitive, use title case. Omitting returns all models for the selected make. |
| year_to | string | Maximum model year filter (e.g. 2023). Omitting defaults to 2027. |
| year_from | string | Minimum model year filter (e.g. 2015). Omitting defaults to 1900. |
| odometer_to | string | Maximum odometer reading in miles (e.g. 50000). Omitting applies no upper mileage filter. |
| odometer_from | string | Minimum odometer reading in miles (e.g. 10000). Omitting applies no lower mileage filter. |
{
"type": "object",
"fields": {
"total": "integer — total number of matching vehicles",
"vehicles": "array of vehicle objects with details and photo URLs",
"current_page": "integer — current page number"
},
"sample": {
"data": {
"total": 913,
"vehicles": [
{
"lot": "0-45604781",
"tag": "2017-Toyota-Camry-4T1BF1FKXHU801475",
"vin": "4T1BF1FKXHU801475",
"name": "2017 Toyota Camry, LE",
"engine": "2.5L, I4, 178HP",
"photos": [
"https://images.bid.cars/045604781_6a8ab8f8d7112/2017-Toyota-Camry-4T1BF1FKXHU801475-1.jpg",
"https://images.bid.cars/045604781_6a8ab8f8d7112/2017-Toyota-Camry-4T1BF1FKXHU801475-2.jpg"
],
"seller": "Geico Insurance",
"status": "active",
"location": "Long Island (NY)",
"loss_type": "Other",
"time_left": "0 d 4 h 0 min",
"video_url": "https://mediastorageaccountprod.blob.core.windows.net/media/46103205_VES-100_1",
"drive_type": 0,
"start_code": "Run / Drive",
"current_bid": "$1,050",
"odometer_km": 50,
"photos_large": [
"https://pluto.bid.car/0-45604781/2017-Toyota-Camry-4T1BF1FKXHU801475-1.jpg",
"https://pluto.bid.car/0-45604781/2017-Toyota-Camry-4T1BF1FKXHU801475-2.jpg"
],
"view_360_url": "https://vis.iaai.com/Home/ThreeSixtyView?keys=SID-46103205~STP-1~INT-1&iframeview=true",
"estimated_max": 6380,
"estimated_min": 3270,
"sale_document": "Salvage (Idaho)",
"odometer_miles": 31083,
"primary_damage": "Rear"
}
],
"current_page": 1
},
"status": "success"
}
}About the Cars API
What the API Returns
The search_vehicles endpoint returns paginated auction vehicle listings aggregated from major US salvage and used-car auctions, including Copart and IAAI. Each response includes a total integer showing how many vehicles match your filters, a current_page integer for tracking pagination state, and a vehicles array containing individual vehicle objects with details and photo URLs.
Filtering and Pagination
All filter parameters are optional. You can narrow results with make and model (both case-sensitive, title case — e.g. Toyota, Camry), a year range via year_from and year_to, and an odometer range via odometer_from and odometer_to in miles. Omitting all filters returns the full available inventory. Each page contains approximately 20 vehicles; use the page integer parameter to step through results. The total field tells you how many pages to expect.
Coverage and Scope
Listings cover vehicles available at US auto auctions. The data reflects auction inventory including salvage, clean-title, and rebuilt vehicles depending on what the underlying auction houses have listed. Photo URLs are included per vehicle, making it straightforward to display visual listings in an application without a separate image-fetching step.
The Cars API is a managed, monitored endpoint for bid.cars.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bid.cars.com 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 bid.cars.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a cross-auction search tool that lets buyers compare matching vehicles across Copart and IAAI by make and model
- Track auction inventory volume for a specific make/model/year combination using the
totalfield over time - Filter low-mileage used vehicles using
odometer_toto find candidates under a target mileage threshold - Populate a vehicle browsing UI with photos by consuming the photo URLs returned in the
vehiclesarray - Identify year-range supply for a specific model by varying
year_fromandyear_toand comparingtotalcounts - Alert users when new auction lots matching their saved search criteria (make, model, year) appear in paginated results
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does bid.cars.com have an official developer API?+
What does the `vehicles` array contain for each listing?+
vehicles array includes vehicle details (make, model, year, odometer reading) and photo URLs. The exact field set reflects what is available in the auction listing at query time.Are auction results from both Copart and IAAI returned together in the same response?+
search_vehicles endpoint aggregates listings from multiple US auction sources, including Copart and IAAI, in a single paginated result set. There is no per-auction-house filter parameter currently exposed.Does the API return bid history or sale prices for completed auctions?+
How should I handle pagination when the result set is large?+
total field in the first response to calculate how many pages exist (total / ~20 per page), then increment the page parameter in subsequent requests. The current_page field in each response confirms which page was returned.