# Bid.cars Scraper (`parsebird/bid-cars-scraper`) Actor

Scrape Bid.cars Copart and IAAI auction lots: VIN, title, lot, location, seller, damage, odometer, sale document, pre-bid and buy-now prices, estimates, images and video. Export JSON, CSV or Excel.

- **URL**: https://apify.com/parsebird/bid-cars-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 1 total users, 1 monthly users, 97.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.69 / 1,000 vehicles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Bid.cars Scraper

Bid.cars Scraper extracts **Copart and IAAI salvage auction lots from [Bid.cars](https://bid.cars/en/search/results)**: VIN, title, lot number, sale location, seller, damage, start code, odometer, sale document, pre-bid and buy-now prices, estimated value range, final bid on sold lots, photos, video and 360° view links. You get one clean row per vehicle, ready to export as JSON, CSV or Excel.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Paste any filtered Bid.cars search URL (active or archived sold lots), or just type a make, model or VIN, narrow the results by keyword and yard location, and get 40+ fields per Copart and IAAI lot with full yard names and full-size photo links.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/bid-cars-scraper — scrapes Copart and IAAI vehicle lots from Bid.cars search results (bid.cars). Input: {"url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All" (optional Bid.cars search results URL; all its filters are used; archived/sold search URLs bid.cars/en/search/archived/results?... also work), "keyword": "Toyota Camry" (optional; keeps only lots whose title, VIN, lot number, seller, damage or sale document contain every word; without a url it first runs Bid.cars' own keyword search, then the sold-lot archive, then the broad default search), "location": "Long Island" (optional yard filter, e.g. "Cleveland (OH)" or "(FL)" for a whole state), "results_wanted": 20 (max vehicles saved, min 1), "max_pages": 2 (max result pages, 50 lots each, Bid.cars allows 50 pages per search), "proxyConfiguration": {"useApifyProxy": false} (optional; switches to Apify Proxy automatically if blocked)}. Run via ApifyClient("YOUR_TOKEN").actor("parsebird/bid-cars-scraper").call(run_input=input). Output, one row per lot: title, title_short, url, lot, auction (Copart or IAAI), tag, vin, year, vehicle_type, location, seller, seller_code, seller_trusted, search_status (active/archived), status_code, sold_before, loss_type, primary_damage, start_code, odometer (miles), sale_document, sale_document_full, sale_document_state, title_has_lien, prebid_close_time, time_left_seconds, time_left, prebid_price, final_bid, final_bid_usd, buy_now_price, buy_now_time_left_seconds, estimated_min, estimated_max, has_video, video_url, has_360_view, view_360_url, image_count, images (full-size URLs), specs {key_info, transmission_code, fuel_type_code, drive_type_code, hybrid, engine}, scraped_at. Pricing: pay per vehicle saved. Get your API token at https://console.apify.com/account#/integrations. Full API spec: https://apify.com/parsebird/bid-cars-scraper/api
```

### What is Bid.cars Scraper?

Bid.cars Scraper is a **Bid.cars data extraction tool**. It reads the public vehicle search on [Bid.cars](https://bid.cars/), a site that lists vehicles from the US insurance auctions [Copart](https://www.copart.com/) and [IAAI](https://www.iaai.com/) in one place. Bid.cars has no public API, so the scraper works as a **Bid.cars API alternative** for importers, car buyers, rebuilders, dealers, parts sellers and analysts who want auction data in a spreadsheet, database or app.

The easiest way to try it: keep the prefilled Toyota Camry search URL, click **Start**, and open the dataset. You get 20 Camry lots with damage, odometer, location, sale document and pre-bid price in a few seconds.

You don't need a Bid.cars account.

### What can Bid.cars Scraper do?

- 🔗 **Filtered search URLs**: choose make, model, year range, auction (Copart or IAAI), status, damage, fuel, body style, odometer, estimate and other filters on Bid.cars, copy the URL and paste it. The scraper reads the exact same search.
- 🗄️ **Sold lot archive**: paste an archived search URL (`bid.cars/en/search/archived/results?...`) to collect lots that already sold, with the final bid.
- 🔎 **Keyword search**: type a make, model or VIN without a URL. The scraper runs Bid.cars' own keyword search, then checks the sold-lot archive, then filters the broad default search.
- 📍 **Location filter**: keep only lots at a matching yard, such as `Long Island`, `Cleveland (OH)`, or `(FL)` for a whole state.
- 🏷️ **Full yard names**: Bid.cars search results cut long yard names (`West Palm... (FL)`). The scraper restores the full name (`West Palm Beach (FL)`) from the Copart and IAAI yard list.
- 🖼️ **Full-size photos**: every image URL Bid.cars lists for the lot, plus video and 360° view links when available.

Because Bid.cars Scraper runs on the Apify platform, you also get:

- ⏰ [Scheduling](https://docs.apify.com/platform/schedules) to check new auction lots every hour or every day.
- 🔌 [API access](https://docs.apify.com/api/v2) and client libraries for Python and JavaScript.
- 🔗 [Integrations](https://apify.com/integrations) with Google Sheets, Slack, Zapier, Make, webhooks and more.
- 📁 Exports to JSON, CSV, Excel, XML or HTML from the dataset.

### What data can you extract from Bid.cars?

| Field | Description |
|-------|-------------|
| `title`, `title_short`, `year` | Vehicle name as Bid.cars shows it, e.g. `2024 Jeep Grand Cherokee, L Laredo` |
| `url`, `lot`, `auction` | Bid.cars lot page, lot number, and the auction it comes from (Copart or IAAI) |
| `vin` | Vehicle identification number |
| `location` | Sale yard and state, e.g. `San Diego (CA)` |
| `seller`, `seller_code`, `seller_trusted` | Seller name (e.g. an insurance company), short label, trusted seller flag |
| `loss_type`, `primary_damage`, `start_code` | Loss type, main damage, and start condition such as `Run / Drive` |
| `odometer` | Odometer reading in miles |
| `sale_document`, `sale_document_full`, `title_has_lien` | Title or sale document (e.g. `SALVAGE CERTIFICATE (CA)`) and lien flag |
| `prebid_close_time`, `time_left_seconds` | When pre-bidding closes and how many seconds are left |
| `prebid_price`, `buy_now_price`, `final_bid` | Current pre-bid, buy-now price, final bid on sold lots |
| `estimated_min`, `estimated_max` | Bid.cars estimated value range in USD |
| `images`, `video_url`, `view_360_url` | Photo URLs, auction video and 360° view links |
| `specs` | Engine, key status and Bid.cars' transmission, fuel and drive codes |

### How to scrape Bid.cars

1. Open [Bid.cars Scraper](https://apify.com/parsebird/bid-cars-scraper) in Apify Console.
2. Open a [Bid.cars search](https://bid.cars/en/search/results), set your filters, and copy the page URL into **Bid.cars search URL**. You can also leave it empty and type a make, model or VIN into **Keyword**.
3. Optional: add a **Keyword** (e.g. `Front end`, `Salvage`) or a **Location** (e.g. `Long Island`) to narrow the results.
4. Set **Max vehicles** and **Max result pages** for the size of the run.
5. Click **Start**. Small runs finish in a few seconds.
6. Open the **Output** tab and download the data as JSON, CSV or Excel, or read it through the API.

A filtered search URL is the most precise starting point, because Bid.cars applies those filters before results are returned. **Keyword** and **Location** filter the lots after they are read, so a narrow keyword or location may need more **Max result pages** to find enough vehicles.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | string | No | Prefilled Toyota Camry search | Bid.cars search results URL. All its filters are used. Archived (sold) search URLs work too. Empty: keyword search or the broad default search. |
| `keyword` | string | No | — | Keep only lots whose title, VIN, lot number, seller, damage or sale document contain every word. Without a URL, also used for Bid.cars' own keyword search. |
| `location` | string | No | — | Keep only lots at a matching yard, e.g. `Long Island`, `Cleveland (OH)`, `(FL)`. |
| `results_wanted` | integer | No | 20 | Maximum number of vehicles to save. Minimum 1. |
| `max_pages` | integer | No | 2 | Maximum number of result pages to read (50 lots per page). Minimum 1, maximum 50. |
| `proxyConfiguration` | object | No | `{"useApifyProxy": false}` | Optional proxy. The scraper switches to Apify Proxy on its own if Bid.cars blocks direct requests. |

**Broad vehicle collection**: the first 20 lots from the default search.

```json
{
    "results_wanted": 20,
    "max_pages": 2
}
```

**Filtered Bid.cars search URL**: Toyota Camry 2018 and newer, Copart and IAAI.

```json
{
    "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All",
    "results_wanted": 50,
    "max_pages": 4
}
```

**Keyword and location**: Toyota Camry lots at the Long Island yard.

```json
{
    "keyword": "Toyota Camry",
    "location": "Long Island",
    "results_wanted": 30,
    "max_pages": 10
}
```

**Sold lots with final bids**: archived Honda Civic auctions.

```json
{
    "url": "https://bid.cars/en/search/archived/results?search-type=filters&status=All&type=Automobile&make=Honda&model=Civic&year-from=2017&year-to=2027&auction-type=All",
    "results_wanted": 100,
    "max_pages": 2
}
```

**Proxy run**: for large or frequent jobs.

```json
{
    "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Honda&model=Civic&year-from=2017&year-to=2027&auction-type=All",
    "results_wanted": 100,
    "max_pages": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

### Output example

Each vehicle lot is one dataset item. Download the dataset in JSON, CSV, Excel, XML or HTML. This lot came from the prefilled Toyota Camry search (October 2026), with the image list shortened:

```json
{
    "title": "2023 Toyota Camry, LE",
    "title_short": "2023 Toyota Camry",
    "url": "https://bid.cars/en/lot/0-45857005/2023-Toyota-Camry-4T1C11AK2PU126391",
    "lot": "0-45857005",
    "auction": "IAAI",
    "tag": "2023-Toyota-Camry-4T1C11AK2PU126391",
    "vin": "4T1C11AK2PU126391",
    "year": 2023,
    "vehicle_type": "Automobile",
    "location": "West Palm Beach (FL)",
    "seller": "Progressive Casualty Insurance",
    "seller_code": "Progressive Cas...",
    "seller_trusted": true,
    "search_status": "active",
    "status_code": 0,
    "sold_before": false,
    "loss_type": "Collision",
    "primary_damage": "Right front",
    "start_code": "Run / Drive",
    "odometer": 51176,
    "sale_document": "Rebuildable",
    "sale_document_full": "REBUILDABLE (Florida)",
    "sale_document_state": "Florida",
    "title_has_lien": false,
    "prebid_close_time": "Mon 26 Oct, 14:30 GMT+1",
    "time_left_seconds": 192539,
    "time_left": "2 d 4 h 28 min",
    "prebid_price": "$0",
    "final_bid": null,
    "final_bid_usd": null,
    "buy_now_price": null,
    "buy_now_time_left_seconds": null,
    "estimated_min": 6810,
    "estimated_max": 10890,
    "has_video": true,
    "video_url": "https://mediastorageaccountprod.blob.core.windows.net/media/46355938_VES-100_1",
    "has_360_view": false,
    "view_360_url": null,
    "image_count": 16,
    "images": [
        "https://pluto.bid.car/0-45857005/2023-Toyota-Camry-4T1C11AK2PU126391-1.jpg",
        "https://pluto.bid.car/0-45857005/2023-Toyota-Camry-4T1C11AK2PU126391-2.jpg"
    ],
    "specs": {
        "key_info": "Present",
        "transmission_code": 0,
        "fuel_type_code": "0",
        "drive_type_code": 0,
        "hybrid": null,
        "engine": "2.5L, I4, 202/203HP"
    },
    "scraped_at": "2026-10-24T07:31:01+00:00"
}
```

Fields Bid.cars leaves empty for a lot are `null`. Sold lots from archived searches have `search_status: "archived"` and the final price in `final_bid` and `final_bid_usd`.

### Use cases

- **Car import sourcing**: shortlist Copart and IAAI lots by model, year, damage and title before auction day.
- **Price research**: collect sold lots from the archive to compare final bids by model, damage and odometer.
- **Yard-based buying**: keep only lots at the yards you can pick up from, or in one state.
- **New lot alerts**: schedule a filtered search and send new lots to Slack, Google Sheets or your CRM.
- **Rebuilder and parts sourcing**: find Run / Drive vehicles with light damage, or a given engine for parts.
- **Market analytics**: track supply, sellers, sale documents and estimates across both auctions over time.

### How it works

1. A pasted search URL is turned into the same search request the Bid.cars page makes, with all its filters. Without a URL, the keyword runs Bid.cars' own keyword search.
2. Bid.cars Scraper reads result pages of 50 lots and stops at **Max vehicles**, **Max result pages**, or the last page. Bid.cars returns at most 50 pages (2,500 lots) per search.
3. Keyword and location filters are applied to each lot, and lots seen twice are saved once.
4. Long yard names that Bid.cars cuts in search results are matched against the Copart and IAAI yard list. When several yards share the same visible start (for example Jacksonville East, North and West), the lot page is checked for the exact yard.
5. Bid.cars shows its sold-lot archive only to visitors outside North America. When an archived search comes back empty, the scraper repeats it through Apify residential proxy in Europe. That traffic is included in the price.
6. No browser is used, so runs are fast. In our tests on the Apify platform, the prefilled run took about 4 seconds, and 2,500 lots took one to two minutes.

### How much does it cost to scrape Bid.cars?

Bid.cars Scraper uses pay-per-event pricing. You pay per vehicle saved to the dataset. Compute and proxy costs are included in the price, so there are no extra platform usage charges.

| Event | Free plan | Bronze | Silver | Gold |
|-------|-----------|--------|--------|------|
| `vehicle-scraped`: per vehicle saved | $0.00099 | $0.00089 | $0.00079 | $0.00069 |
| Per 1,000 vehicles | **$0.99** | **$0.89** | **$0.79** | **$0.69** |

For example, the prefilled run (20 vehicles) costs about $0.02 on the Free plan, and 2,500 vehicles cost about $2.48. Use **Max vehicles** or a [spending limit](https://docs.apify.com/platform/actors/running/usage-and-resources) to cap a run; the scraper stops as soon as the limit is reached. Apify's Free plan includes monthly platform credits you can use to try the scraper.

### Use Bid.cars Scraper with the API

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/bid-cars-scraper").call(run_input={
    "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Tesla&model=All&year-from=2020&year-to=2027&auction-type=All",
    "results_wanted": 200,
    "max_pages": 4,
})
for lot in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(lot["title"], lot["primary_damage"], lot["location"], lot["prebid_price"], lot["url"])
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('parsebird/bid-cars-scraper').call({
    keyword: 'Ford F-150',
    location: '(TX)',
    results_wanted: 100,
    max_pages: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const lot of items) console.log(lot.title, lot.auction, lot.location, lot.estimated_min, lot.estimated_max);
```

See the [API tab](https://apify.com/parsebird/bid-cars-scraper/api) for all endpoints and the [Apify API client docs](https://docs.apify.com/api/client/python) for more options.

### Is it legal to scrape Bid.cars?

Bid.cars Scraper only reads vehicle listings that Bid.cars shows to logged-out visitors. It does not log in, bid, or access account data. Vehicle data and photos still belong to Bid.cars, the auctions and their sellers, so check the [Bid.cars terms](https://bid.cars/en/terms) before republishing them, and make sure your use complies with the laws that apply to you. Consult a lawyer if in doubt. Read more in Apify's post [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other vehicle scrapers

- [IAAI Vehicles Scraper](https://apify.com/parsebird/iaai-vehicles-scraper): salvage lots straight from IAAI, with ZIP code radius search, ACV and auction times.
- [Cars.com Scraper with Contacts](https://apify.com/parsebird/cars-com-scraper): new and used car listings and dealer contacts from Cars.com.
- [AutoTrader.co.uk Scraper](https://apify.com/parsebird/autotrader-scraper): used and new car listings from AutoTrader UK.
- [AutoTrader Canada Scraper](https://apify.com/parsebird/autotrader-ca-scraper): car listings from AutoTrader.ca.
- [Otomoto.pl Scraper with Contacts](https://apify.com/parsebird/otomoto-scraper): car listings from Poland's largest car marketplace.
- [Kayak Car Rental Scraper](https://apify.com/parsebird/kayak-car-rental-scraper): rental car prices compared across providers.

### FAQ

**Do I need a Bid.cars account?**
No. Bid.cars Scraper reads the public search results that Bid.cars shows to guests.

**How do I use filters that aren't inputs?**
Set them on [Bid.cars search](https://bid.cars/en/search/results) (make, model, years, auction, status, damage, fuel, body style, odometer, estimate and more), copy the address from your browser, and paste it into **Bid.cars search URL**.

**How many vehicles can I get?**
Bid.cars returns up to 50 pages of 50 lots, so 2,500 lots per search. For more, split the job into several searches, for example by make, year range or auction, and run each URL.

**Why did a keyword or location run return fewer vehicles than I asked for?**
Keyword and location are applied to the lots on the pages read. If few lots match, raise **Max result pages**, or put the filter into the Bid.cars search URL so Bid.cars filters before paging.

**Why does a location sometimes end with "..."?**
Bid.cars shortens long yard names in search results. The scraper restores the full name from the Copart and IAAI yard list. When several yards start the same way (such as Jacksonville East, North and West), it checks the lot page. If the lot page can't be read, the short name is kept as Bid.cars shows it.

**How does the location filter match?**
The text you enter must appear in the yard name, ignoring case. A state code in brackets must match exactly: `Cleveland (OH)` matches Cleveland East (OH) and Cleveland West (OH), and `(FL)` matches every Florida yard.

**Which lots are Copart and which are IAAI?**
The `auction` field tells you. Bid.cars lot numbers starting with `1-` are Copart, and `0-` are IAAI.

**Can I get sold prices?**
Yes. Use an archived search URL (`bid.cars/en/search/archived/results?...`) to get sold lots with `final_bid`. A keyword run without a URL also checks the archive when the active search has no match, which helps when you look up a VIN. Bid.cars doesn't show its archive to visitors in North America, so the scraper reads archived searches through European residential IPs on its own.

**Why is the title cut off for some lots?**
Bid.cars shortens very long trim names in search results (for example `2025 Tesla Model 3, Long Range Rear-...`). The scraper returns the title as Bid.cars lists it; `title_short`, `year` and `vin` are always complete.

**Can I schedule runs and get new lots automatically?**
Yes. Use Apify [schedules](https://docs.apify.com/platform/schedules) to run a search hourly or daily, and [integrations](https://apify.com/integrations) or webhooks to send results to Google Sheets, Slack or your own app.

**Something isn't working or I need a field?**
Open an issue in the [Issues tab](https://apify.com/parsebird/bid-cars-scraper/issues) and tell us what you need.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/bid-cars-scraper/changelog.md

# Actor input Schema

## `url` (type: `string`):

Paste a Bid.cars search results URL (bid.cars/en/search/results?...). All filters in the URL are used. Archived (sold) search URLs (bid.cars/en/search/archived/results?...) also work. Leave empty to search by keyword or use the broad default search.

## `keyword` (type: `string`):

Keep only vehicles whose title, VIN, lot number, seller, damage or sale document contains every word you enter (e.g. Toyota Camry, Front end, Salvage). Without a URL, the Actor first runs Bid.cars' own keyword search for it (best for make, model or VIN).

## `location` (type: `string`):

Keep only vehicles at a matching yard, e.g. Long Island, Cleveland (OH) or (FL) for a whole state. The text must appear in the yard name; a state code in brackets must match exactly.

## `results_wanted` (type: `integer`):

Maximum number of vehicles to save.

## `max_pages` (type: `integer`):

Maximum number of Bid.cars result pages to read (50 vehicles per page). Bid.cars shows at most 50 pages (2,500 vehicles) per search, so split bigger jobs into several search URLs.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Turn on Apify Proxy (RESIDENTIAL) for large or frequent runs.

## Actor input object example

```json
{
  "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All",
  "results_wanted": 20,
  "max_pages": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All",
    "results_wanted": 20,
    "max_pages": 2,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/bid-cars-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All",
    "results_wanted": 20,
    "max_pages": 2,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/bid-cars-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://bid.cars/en/search/results?search-type=filters&status=All&type=Automobile&make=Toyota&model=Camry&year-from=2018&year-to=2027&auction-type=All",
  "results_wanted": 20,
  "max_pages": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parsebird/bid-cars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/bid-cars-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0Sp3arPDz5uEYBUd0/builds/iWNz82dYYAXKugO0P/openapi.json
