# SalvageBid Scraper (`solidcode/salvagebid-scraper`) Actor

\[💰 $1.2 / 1K] Extract salvage & insurance auto auction listings from SalvageBid — VIN, decoded specs, odometer, damage, title type, yard location, current bid, buy-it-now price, sale date, and photos. Filter by make, model, year, damage, title, vehicle type, and 50 US states.

- **URL**: https://apify.com/solidcode/salvagebid-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SalvageBid Scraper

Pull salvage and insurance auto auction inventory from SalvageBid at scale — VIN and decoded specs, primary and secondary damage, title type, odometer, storage yard, current bid, Buy It Now price, sale date, and the full photo set for every vehicle. Built for used-car dealers, exporters, rebuilders, parts recyclers, insurers, and market analysts who need the whole salvage catalog as a spreadsheet instead of clicking through auction listings one lot at a time.

### Why This Scraper?

- **Every SalvageBid filter as a dropdown** — 19 damage categories, 15 vehicle types, 3 title types, all 50 US states, and a model-year range, all pickable without learning how SalvageBid builds its search links.
- **Buy It Now and live auction, cleanly separated** — one dropdown splits fixed-price inventory from lots still headed to the block. The two sets never overlap, so a Buy It Now pull is a true "available right now" list.
- **VIN plus the full decode on every row** — engine displacement and horsepower, cylinder count, transmission, fuel type, drive line, body class, and airbag status, not just the 17-character VIN.
- **Primary *and* secondary damage on the same row** — paired with start code (Run & Drive Verified / Vehicle Starts / Stationary), key status, odometer reading, and its Actual / Not Actual / Exempt qualifier.
- **Complete photo sets — 10 to 24 full-size images per vehicle** — full-size and thumbnail URLs on every row, plus the 360° spin link and walk-around videos on detail-enriched rows.
- **Full detail enrichment adds 20 fields** — trim, insurer loss type, the storage yard's street address, highest and next accepted bid, bidding status, sold flag, formatted sale location, auction lane run number, shipping origin ZIP and yard id, restraint system, 360° spin link, videos, and a last-updated timestamp.
- **Four valuation numbers side by side** — current bid, Buy It Now price, estimated retail value, and actual cash value (ACV) on the same row, so margin math needs no second lookup.
- **Nine result orderings** — sort by auction date, model year, odometer, or current bid in either direction, so the cheapest or lowest-mileage lots land on page one.
- **One global result cap, not per link** — paste 20 SalvageBid links with a 500-vehicle cap and you get 500 vehicles, not 10,000. Duplicates are removed automatically across overlapping searches.

### Use Cases

**Dealer & Rebuilder Sourcing**
- Build a daily shortlist of Run & Drive Verified lots with clean or salvage titles
- Track hail-damage and theft-recovery inventory that repairs cheaply
- Watch specific make/model/year combinations you already have parts and buyers for
- Spot lots still sitting at a $0 current bid before the auction heats up

**Export & International Trade**
- Pull state-by-state inventory to plan container loads out of a single port region
- Compare storage yards by ZIP and shipping origin before committing to transport
- Filter to non-repairable titles for markets that accept them
- Track sale dates and timezones across yards to schedule bidding coverage

**Parts Recycling & Dismantling**
- Source rollover, burn, and undercarriage-damage lots where the drivetrain survives
- Match VIN-decoded engine, transmission, and drive line against your parts demand
- Identify vehicles with airbags marked as not deployed
- Monitor high-odometer inventory that prices as parts rather than as a rebuild

**Pricing, Valuation & Market Research**
- Benchmark current bids against retail value and ACV by make, model, and damage type
- Measure how title brand and loss type move final pricing in a given state
- Track Buy It Now price spreads across yards for the same model year
- Build historical series by running the same search on a schedule

**Insurance, Claims & Data Enrichment**
- Cross-reference VINs against your own claims or inventory database
- Enrich internal records with damage, title state, and odometer status
- Feed structured salvage inventory into BI dashboards and pricing models
- Power alerting when a specific VIN or stock number appears at auction

### Getting Started

#### Simple keyword search

```json
{
    "searchQuery": "toyota camry",
    "maxResults": 50
}
````

#### Filtered by make, model, year, state, and title

```json
{
    "makes": ["Ford"],
    "models": ["F-150"],
    "yearFrom": 2015,
    "yearTo": 2022,
    "locationStates": ["texas", "oklahoma"],
    "titleTypes": ["s"],
    "maxResults": 500
}
```

#### Buy It Now SUVs with light damage, cheapest first

```json
{
    "vehicleTypes": ["suvs"],
    "saleType": "buyItNow",
    "damageTypes": ["Hail", "Normal Wear"],
    "sortBy": "currentBidAsc",
    "maxResults": 250
}
```

#### Paste SalvageBid links and collect everything

```json
{
    "startUrls": [
        "https://www.salvagebid.com/search/make-honda",
        "https://www.salvagebid.com/vehicle/45238778-2014-toyota-camry"
    ],
    "includeDetails": true,
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | string\[] | `[]` | Paste SalvageBid links — a search page, a category page, or a single vehicle page. Filters already built into a link are kept exactly as they are. |
| `searchQuery` | string | `""` | Plain-words search, e.g. `"2019 f-150"`, a VIN, or a stock number. |

#### Vehicle Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `makes` | string\[] | `[]` | Manufacturer names, e.g. `"Toyota"`, `"Mercedes-Benz"`. Empty means all makes. |
| `models` | string\[] | `[]` | Model names, e.g. `"Camry"`, `"Silverado"`. Empty means all models. |
| `vehicleTypes` | string\[] | `[]` | 15 categories: cars, SUVs, pickup trucks, medium and heavy duty trucks, buses, motorcycles, snowmobiles, jet skis, boats, RVs, trailers, farming equipment, industrial equipment, other. |
| `yearFrom` | integer | *(none)* | Earliest model year (1900–2030). |
| `yearTo` | integer | *(none)* | Latest model year (1900–2030). |

#### Damage, Title & Location

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `damageTypes` | string\[] | `[]` | 19 categories including Front End, Rear End, Rollover, Roof, Undercarriage, Hail, Burn, Interior Burn, Water / Flood, Mechanical, Theft, Repossession, and Normal Wear. |
| `titleTypes` | string\[] | `[]` | `"c"` Clean Title, `"s"` Salvage Title, `"j"` Non-Repairable. |
| `locationStates` | string\[] | `[]` | Any of the 50 US states, lowercase and hyphenated, e.g. `"texas"`, `"new-york"`. |
| `saleType` | string | `"any"` | `"any"`, `"buyItNow"` for fixed-price lots only, or `"auction"` for live auction lots only. |

#### Sorting, Limits & Depth

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | string | `"default"` | `"saleDateAsc"`, `"saleDateDesc"`, `"yearDesc"`, `"yearAsc"`, `"odometerAsc"`, `"odometerDesc"`, `"currentBidAsc"`, `"currentBidDesc"`, or `"default"`. |
| `maxResults` | integer | `50` | Total vehicles across everything above — not per link. `0` means no limit, up to a safety ceiling of 100,000 vehicles. A single search is capped at 10,000 by SalvageBid itself. The final page is always kept in full, so you may receive a few extra rows. |
| `includeDetails` | boolean | `false` | Open each vehicle's own page to add 20 extra fields. Slower, because every vehicle needs an extra look. Best-effort: a vehicle whose own page cannot be opened still arrives with all of its listing information. |

### Output

One row per vehicle. Empty fields are dropped, so rows stay clean.

```json
{
    "lotId": "6a1977e729f709c288124458",
    "stockNumber": 45238778,
    "vin": "4T4BF1FK2ER438140",
    "vehicleName": "2014 Toyota Camry 2.5L",
    "year": 2014,
    "make": "Toyota",
    "model": "Camry",
    "vehicleType": "Passenger Car",
    "bodyStyle": "Sedan",
    "color": "Grey",
    "engine": "2.5L I-4 DOHC, VVT, 173HP",
    "cylinders": "4",
    "transmission": "Automatic",
    "fuelType": "Gas",
    "driveType": "Front Wheel Drive",
    "airbags": "Deployed",
    "odometer": 203362,
    "odometerUnit": "mi",
    "odometerStatus": "Actual",
    "primaryDamage": "Front End",
    "secondaryDamage": "Left Side",
    "startCode": "Run & Drive Verified",
    "hasKeys": true,
    "titleName": "Clear",
    "titleBrand": "REBUILT",
    "titleState": "VA",
    "docType": "VA Clear PRIOR VA TITLE REBUILT",
    "currentBid": 0,
    "retailValue": 5791,
    "actualCashValue": 5791,
    "currency": "USD",
    "auctionType": "Preliminary Bidding",
    "saleDate": "2026-07-24T06:30:00-07:00",
    "saleDateFormatted": "Fri, Jul 24, 06:30am (PDT)",
    "saleTimezone": "America/Los_Angeles",
    "lane": "B",
    "itemNumber": 8,
    "locationName": "Richmond",
    "locationCity": "Ashland",
    "locationState": "VA",
    "locationZip": "23005",
    "images": [
        "https://s3-us-west-1.amazonaws.com/vehimg/26415/45238778-1L.jpg",
        "https://s3-us-west-1.amazonaws.com/vehimg/26415/45238778-2L.jpg",
        "https://s3-us-west-1.amazonaws.com/vehimg/26415/45238778-3L.jpg"
    ],
    "lotUrl": "https://www.salvagebid.com/vehicle/45238778-2014-toyota-camry",
    "scrapedAt": "2026-07-23T22:08:06+00:00"
}
```

The photo arrays are shortened above for readability — this lot carries 16 full-size and 16 thumbnail URLs.

#### Vehicle & Identity

| Field | Type | Description |
|-------|------|-------------|
| `lotId` | string | SalvageBid lot identifier |
| `stockNumber` | number | Auction stock / lot number |
| `vin` | string | Vehicle identification number |
| `vehicleName` | string | Full display name, e.g. "2014 Toyota Camry 2.5L" |
| `year` | number | Model year |
| `make` | string | Manufacturer |
| `model` | string | Model |
| `vehicleType` | string | Passenger Car, Truck, Motorcycle, Personal Watercraft, … |
| `bodyStyle` | string | Sedan, Sport Utility, Crew Cab, … |
| `color` | string | Exterior color |
| `interiorColor` | string | Interior color, when the yard reports it |

#### VIN-Decoded Specs

| Field | Type | Description |
|-------|------|-------------|
| `engine` | string | Engine description with displacement and horsepower |
| `cylinders` | string | Cylinder count |
| `transmission` | string | Automatic or Manual |
| `fuelType` | string | Gas, Diesel, Hybrid, Electric, … |
| `driveType` | string | Front / Rear / Four Wheel Drive |
| `vinBody` | string | Body class from the VIN decode |
| `vinModel` | string | Model name from the VIN decode |
| `airbags` | string | Airbag status, e.g. Deployed |

#### Condition, Damage & Title

| Field | Type | Description |
|-------|------|-------------|
| `odometer` | number | Odometer reading |
| `odometerUnit` | string | `mi` or `km` |
| `odometerStatus` | string | Actual, Not Actual, Exempt, … |
| `primaryDamage` | string | Primary damage category |
| `secondaryDamage` | string | Secondary damage category, when reported |
| `startCode` | string | Run & Drive Verified, Vehicle Starts, or Stationary |
| `hasKeys` | boolean | Whether keys come with the vehicle |
| `repairCost` | number | Estimated repair cost, when the insurer supplies one |
| `notes` | string | Free-text lot notes |
| `shrinkWrap` | boolean | Whether the vehicle is shrink-wrapped |
| `titleName` | string | Clear, Salvage, Repossession Paperwork, … |
| `titleBrand` | string | Title brand, e.g. REBUILT |
| `titleState` | string | Two-letter title state |
| `titleStateName` | string | Full title state name |
| `titleNotes` | string | Title notes |
| `docType` | string | Full document type, e.g. "VA Clear PRIOR VA TITLE REBUILT" |

#### Auction & Pricing

| Field | Type | Description |
|-------|------|-------------|
| `currentBid` | number | Current high bid (0 when nobody has bid yet) |
| `buyItNowPrice` | number | Fixed Buy It Now price, on lots that offer one |
| `retailValue` | number | Estimated retail value |
| `actualCashValue` | number | Actual cash value (ACV) |
| `currency` | string | Currency code |
| `auctionType` | string | Preliminary Bidding, Buy It Now / Preliminary Bidding, … |
| `saleTypeCode` | number | 1 = live auction, 2 = Buy It Now |
| `auctionInProgress` | boolean | Whether the lane is running right now |
| `alreadySold` | boolean | Whether the lot has already sold |
| `saleDate` | string | Auction date and time, ISO 8601 |
| `saleDateFormatted` | string | Human-readable sale date with timezone |
| `saleTimezone` | string | Timezone of the sale yard |
| `lane` | string | Auction lane |
| `itemNumber` | number | Run item number within the lane |
| `auctionVerification` | string | Verification status |

#### Location

| Field | Type | Description |
|-------|------|-------------|
| `locationName` | string | Storage yard / branch name |
| `locationCity` | string | Yard city |
| `locationState` | string | Yard state code |
| `locationZip` | string | Yard ZIP |
| `locationId` | number | Yard identifier |
| `sellingBranch` | string | Selling branch name |
| `sellingBranchId` | number | Selling branch identifier |
| `offsite` | boolean | Whether the vehicle is stored offsite |
| `offsiteLocation` | string | Offsite storage address, when applicable |

#### Media & Links

| Field | Type | Description |
|-------|------|-------------|
| `images` | string\[] | Full-size photo URLs, typically 10–24 per vehicle |
| `imagesThumb` | string\[] | Matching thumbnail URLs |
| `lotUrl` | string | SalvageBid vehicle page URL |
| `scrapedAt` | string | ISO 8601 timestamp of collection |

#### Enriched Detail Fields

These 20 fields arrive when `includeDetails` is on.

| Field | Type | Description |
|-------|------|-------------|
| `trim` | string | Trim level |
| `lossType` | string | Loss type as reported by the insurer |
| `locationAddress` | string | Storage yard street address |
| `saleLocationFull` | string | Formatted sale location |
| `shippingOriginZip` | string | Shipping origin ZIP |
| `highestBid` | number | Highest bid recorded on the lot |
| `nextBid` | number | Next accepted bid amount |
| `bidStatus` | string | Current bidding status |
| `sold` | boolean | Confirmed sold flag |
| `preliminaryBiddingClosed` | boolean | Whether preliminary bidding has closed |
| `image360Url` | string | 360° spin link |
| `videos` | object\[] | Walk-around and engine videos with `url` and `title` |
| `heroImage` | string | Main photo URL |
| `vinSeries` | string | Series from the VIN decode |
| `vehicleClass` | string | Vehicle class from the VIN decode |
| `manufacturedCountry` | string | Country of manufacture |
| `restraintSystem` | string | Restraint system from the VIN decode (airbag and seatbelt configuration) |
| `laneRun` | string | Auction lane run number |
| `shippingOriginLocationId` | number | SalvageBid's id for the yard the vehicle ships from |
| `lastUpdated` | string | When SalvageBid last updated the lot |

### Tips for Best Results

- **Start with 25–50 results** to confirm the filters match what you expect, then raise `maxResults` for the full pull.
- **Leave `includeDetails` off unless you need those 20 fields** — VIN, specs, damage, title, current bid, sale date, and photos are all on the fast listing rows already.
- **Pair `saleType: "auction"` with `sortBy: "currentBidAsc"`** to surface lots still sitting at a `currentBid` of 0 — that first page is your unbid inventory, and it is the single cheapest place to enter a lane.
- **Use `startCode` as your rebuild-versus-parts filter** — "Run & Drive Verified" is a far stronger signal than damage category alone, and combined with `hasKeys: true` it separates a repairable car from a shell.
- **Check `titleTypes` against your state's rules** — Non-Repairable (`"j"`) lots can never be re-titled for road use in most states, so filter to Salvage (`"s"`) if you intend to rebuild and register.
- **SalvageBid serves at most 10,000 vehicles per search**, so for a bigger harvest split the job — one state per run, or one model-year range per run — and combine the datasets afterwards.
- **Compare `currentBid` against `actualCashValue` and `retailValue`** in the same row to rank lots by margin headroom before you ever open the auction site.
- **Detail enrichment is best-effort** — a vehicle whose own page will not open still arrives as a complete listing row, and the run summary tells you how many were affected. Re-running usually fills the gaps.

### Pricing

**From $1.20 per 1,000 results** — one flat rate whether you pull plain listing rows or fully enriched ones. Bronze, Silver, and Gold subscribers pay progressively less; the table shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.140 | $0.135 | $0.130 | $0.120 |
| 1,000 | $1.40 | $1.35 | $1.30 | $1.20 |
| 10,000 | $14.00 | $13.50 | $13.00 | $12.00 |
| 100,000 | $140.00 | $135.00 | $130.00 | $120.00 |

A "result" is one vehicle row in your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger your own systems when a run finishes
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly visible salvage auction listings for legitimate vehicle sourcing, valuation, logistics, and market research. It does not collect account-scoped or private bidder information. You are responsible for complying with applicable laws and SalvageBid's Terms of Service, and for meeting any local titling, import, and disclosure requirements that apply to salvage vehicles. Do not use collected data for spam, harassment, odometer or title misrepresentation, or any illegal purpose.

# Actor input Schema

## `startUrls` (type: `array`):

Paste SalvageBid links — a search page (https://www.salvagebid.com/search/make-toyota), a category page (https://www.salvagebid.com/salvage-suvs-for-sale/toyota), or a single vehicle page (https://www.salvagebid.com/vehicle/44809092-2016-kia-optima). Any filters already built into the link are kept exactly as they are. If you also pick filters below, those are collected as an additional search rather than being added to your links. Leave empty to use the guided filters only.

## `searchQuery` (type: `string`):

Search in plain words, e.g. 'toyota camry', '2019 f-150', a VIN, or a stock number. Leave empty to browse without a keyword.

## `makes` (type: `array`):

Manufacturer names, e.g. 'Toyota', 'Ford', 'Mercedes-Benz'. Add as many as you like. Leave empty for all makes.

## `models` (type: `array`):

Model names, e.g. 'Camry', 'F-150', 'Silverado'. Leave empty for all models.

## `vehicleTypes` (type: `array`):

Only collect these kinds of vehicle. Leave empty for everything.

## `yearFrom` (type: `integer`):

Only include vehicles from this model year onwards. Leave empty for no lower limit.

## `yearTo` (type: `integer`):

Only include vehicles up to this model year. Leave empty for no upper limit.

## `damageTypes` (type: `array`):

Only include vehicles with these kinds of damage. Leave empty for any damage.

## `titleTypes` (type: `array`):

Only include vehicles with these titles. Leave empty for all title types.

## `locationStates` (type: `array`):

Only include vehicles stored in these US states. Leave empty for all states.

## `saleType` (type: `string`):

Choose between vehicles you can buy instantly at a fixed price, or vehicles that go to live auction.

## `sortBy` (type: `string`):

How to order the vehicles you get back.

## `maxResults` (type: `integer`):

Total number of vehicles to collect across everything above — not per link. Start small to preview, then raise it. Set to 0 for no limit (a safety ceiling of 100,000 vehicles still applies). The last page is always kept in full, so you may get a few extra rows. SalvageBid serves at most 10,000 vehicles per search, however many really match, so a single search stops at 10,000 — to collect more, split the job across several searches (for example one state or one year range at a time).

## `includeDetails` (type: `boolean`):

Open each vehicle's own page to add 20 extra fields: live bidding info (highest bid, next accepted bid, bidding status, whether preliminary bidding has closed, whether it has already sold), the auction lane and run number, the shipping origin ZIP and yard id, the trim level, the insurer's loss type, the storage yard's street address, the formatted sale location, the 360° spin link, engine and walk-around videos, the main photo, four extra VIN-decoded fields, and a last-updated timestamp. Slower, because each vehicle needs an extra look. This step is best-effort: if a vehicle's own page cannot be opened, or if the extra look-ups for one page of vehicles take longer than about four minutes, the remaining vehicles still arrive with all of their listing information — just without these extra fields. Leave off for a fast run — everything else (VIN, specs, damage, title, current bid, sale date, photos) is already included either way.

## Actor input object example

```json
{
  "startUrls": [],
  "makes": [],
  "models": [],
  "vehicleTypes": [],
  "damageTypes": [],
  "titleTypes": [],
  "locationStates": [],
  "saleType": "any",
  "sortBy": "default",
  "maxResults": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

Every vehicle at a glance — year, make, model, odometer, damage, title, bid, sale date, and state.

## `details` (type: `string`):

Full per-vehicle rows including VIN, damage breakdown, title info, yard location, and photo URLs.

## `specs` (type: `string`):

VIN-decoded technical specifications — engine, cylinders, transmission, fuel, drive type, body class, and restraints.

## `pricing` (type: `string`):

Current and next bids, buy-it-now price, estimated retail value, ACV, and repair cost for valuation work.

## `locations` (type: `string`):

Storage yard, city, state, ZIP, selling branch, offsite storage, auction lane, and shipping origin for logistics planning.

# 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 = {
    "startUrls": [],
    "searchQuery": "",
    "makes": [],
    "models": [],
    "vehicleTypes": [],
    "damageTypes": [],
    "titleTypes": [],
    "locationStates": [],
    "saleType": "any",
    "sortBy": "default",
    "maxResults": 50,
    "includeDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/salvagebid-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 = {
    "startUrls": [],
    "searchQuery": "",
    "makes": [],
    "models": [],
    "vehicleTypes": [],
    "damageTypes": [],
    "titleTypes": [],
    "locationStates": [],
    "saleType": "any",
    "sortBy": "default",
    "maxResults": 50,
    "includeDetails": False,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "searchQuery": "",
  "makes": [],
  "models": [],
  "vehicleTypes": [],
  "damageTypes": [],
  "titleTypes": [],
  "locationStates": [],
  "saleType": "any",
  "sortBy": "default",
  "maxResults": 50,
  "includeDetails": false
}' |
apify call solidcode/salvagebid-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/salvagebid-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SalvageBid Scraper",
        "description": "[💰 $1.2 / 1K] Extract salvage & insurance auto auction listings from SalvageBid — VIN, decoded specs, odometer, damage, title type, yard location, current bid, buy-it-now price, sale date, and photos. Filter by make, model, year, damage, title, vehicle type, and 50 US states.",
        "version": "1.0",
        "x-build-id": "gWJ6EBEpN7mfkurVN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~salvagebid-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-salvagebid-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~salvagebid-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-salvagebid-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~salvagebid-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-salvagebid-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "SalvageBid URLs",
                        "type": "array",
                        "description": "Paste SalvageBid links — a search page (https://www.salvagebid.com/search/make-toyota), a category page (https://www.salvagebid.com/salvage-suvs-for-sale/toyota), or a single vehicle page (https://www.salvagebid.com/vehicle/44809092-2016-kia-optima). Any filters already built into the link are kept exactly as they are. If you also pick filters below, those are collected as an additional search rather than being added to your links. Leave empty to use the guided filters only.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQuery": {
                        "title": "Search",
                        "type": "string",
                        "description": "Search in plain words, e.g. 'toyota camry', '2019 f-150', a VIN, or a stock number. Leave empty to browse without a keyword."
                    },
                    "makes": {
                        "title": "Makes",
                        "type": "array",
                        "description": "Manufacturer names, e.g. 'Toyota', 'Ford', 'Mercedes-Benz'. Add as many as you like. Leave empty for all makes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "models": {
                        "title": "Models",
                        "type": "array",
                        "description": "Model names, e.g. 'Camry', 'F-150', 'Silverado'. Leave empty for all models.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "vehicleTypes": {
                        "title": "Vehicle Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only collect these kinds of vehicle. Leave empty for everything.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "cars",
                                "suvs",
                                "pickup-trucks",
                                "medium-duty-trucks",
                                "heavy-duty-trucks",
                                "buses",
                                "motorcycles",
                                "snowmobiles",
                                "jet-skis",
                                "boats",
                                "rvs",
                                "trailers",
                                "farming-equipment",
                                "industrial-equipment",
                                "other"
                            ],
                            "enumTitles": [
                                "Cars",
                                "SUVs",
                                "Pickup Trucks",
                                "Medium Duty Trucks",
                                "Heavy Duty Trucks",
                                "Buses",
                                "Motorcycles",
                                "Snowmobiles",
                                "Jet Skis",
                                "Boats",
                                "RVs & Motorhomes",
                                "Trailers",
                                "Farming Equipment",
                                "Industrial Equipment",
                                "Other"
                            ]
                        }
                    },
                    "yearFrom": {
                        "title": "Year From",
                        "minimum": 1900,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Only include vehicles from this model year onwards. Leave empty for no lower limit."
                    },
                    "yearTo": {
                        "title": "Year To",
                        "minimum": 1900,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Only include vehicles up to this model year. Leave empty for no upper limit."
                    },
                    "damageTypes": {
                        "title": "Damage",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include vehicles with these kinds of damage. Leave empty for any damage.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Front End",
                                "Rear End",
                                "Front & Rear",
                                "Left Side",
                                "Right Side",
                                "Left & Right",
                                "Left Rear",
                                "Rollover",
                                "Roof",
                                "Undercarriage",
                                "Hail",
                                "Burn",
                                "Interior Burn",
                                "Water/Flood",
                                "Mechanical",
                                "Theft",
                                "Repossession",
                                "Normal Wear",
                                "Unknown"
                            ],
                            "enumTitles": [
                                "Front End",
                                "Rear End",
                                "Front & Rear",
                                "Left Side",
                                "Right Side",
                                "Left & Right",
                                "Left Rear",
                                "Rollover",
                                "Roof",
                                "Undercarriage",
                                "Hail",
                                "Burn",
                                "Interior Burn",
                                "Water / Flood",
                                "Mechanical",
                                "Theft",
                                "Repossession",
                                "Normal Wear",
                                "Not Specified"
                            ]
                        }
                    },
                    "titleTypes": {
                        "title": "Title Type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include vehicles with these titles. Leave empty for all title types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "c",
                                "s",
                                "j"
                            ],
                            "enumTitles": [
                                "Clean Title",
                                "Salvage Title",
                                "Non-Repairable"
                            ]
                        }
                    },
                    "locationStates": {
                        "title": "States",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include vehicles stored in these US states. Leave empty for all states.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "alabama",
                                "alaska",
                                "arizona",
                                "arkansas",
                                "california",
                                "colorado",
                                "connecticut",
                                "delaware",
                                "florida",
                                "georgia",
                                "hawaii",
                                "idaho",
                                "illinois",
                                "indiana",
                                "iowa",
                                "kansas",
                                "kentucky",
                                "louisiana",
                                "maine",
                                "maryland",
                                "massachusetts",
                                "michigan",
                                "minnesota",
                                "mississippi",
                                "missouri",
                                "montana",
                                "nebraska",
                                "nevada",
                                "new-hampshire",
                                "new-jersey",
                                "new-mexico",
                                "new-york",
                                "north-carolina",
                                "north-dakota",
                                "ohio",
                                "oklahoma",
                                "oregon",
                                "pennsylvania",
                                "rhode-island",
                                "south-carolina",
                                "south-dakota",
                                "tennessee",
                                "texas",
                                "utah",
                                "vermont",
                                "virginia",
                                "washington",
                                "west-virginia",
                                "wisconsin",
                                "wyoming"
                            ],
                            "enumTitles": [
                                "Alabama",
                                "Alaska",
                                "Arizona",
                                "Arkansas",
                                "California",
                                "Colorado",
                                "Connecticut",
                                "Delaware",
                                "Florida",
                                "Georgia",
                                "Hawaii",
                                "Idaho",
                                "Illinois",
                                "Indiana",
                                "Iowa",
                                "Kansas",
                                "Kentucky",
                                "Louisiana",
                                "Maine",
                                "Maryland",
                                "Massachusetts",
                                "Michigan",
                                "Minnesota",
                                "Mississippi",
                                "Missouri",
                                "Montana",
                                "Nebraska",
                                "Nevada",
                                "New Hampshire",
                                "New Jersey",
                                "New Mexico",
                                "New York",
                                "North Carolina",
                                "North Dakota",
                                "Ohio",
                                "Oklahoma",
                                "Oregon",
                                "Pennsylvania",
                                "Rhode Island",
                                "South Carolina",
                                "South Dakota",
                                "Tennessee",
                                "Texas",
                                "Utah",
                                "Vermont",
                                "Virginia",
                                "Washington",
                                "West Virginia",
                                "Wisconsin",
                                "Wyoming"
                            ]
                        }
                    },
                    "saleType": {
                        "title": "How It Sells",
                        "enum": [
                            "any",
                            "buyItNow",
                            "auction"
                        ],
                        "type": "string",
                        "description": "Choose between vehicles you can buy instantly at a fixed price, or vehicles that go to live auction."
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "default",
                            "saleDateAsc",
                            "saleDateDesc",
                            "yearDesc",
                            "yearAsc",
                            "odometerAsc",
                            "odometerDesc",
                            "currentBidAsc",
                            "currentBidDesc"
                        ],
                        "type": "string",
                        "description": "How to order the vehicles you get back."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Total number of vehicles to collect across everything above — not per link. Start small to preview, then raise it. Set to 0 for no limit (a safety ceiling of 100,000 vehicles still applies). The last page is always kept in full, so you may get a few extra rows. SalvageBid serves at most 10,000 vehicles per search, however many really match, so a single search stops at 10,000 — to collect more, split the job across several searches (for example one state or one year range at a time)."
                    },
                    "includeDetails": {
                        "title": "Include Full Vehicle Details",
                        "type": "boolean",
                        "description": "Open each vehicle's own page to add 20 extra fields: live bidding info (highest bid, next accepted bid, bidding status, whether preliminary bidding has closed, whether it has already sold), the auction lane and run number, the shipping origin ZIP and yard id, the trim level, the insurer's loss type, the storage yard's street address, the formatted sale location, the 360° spin link, engine and walk-around videos, the main photo, four extra VIN-decoded fields, and a last-updated timestamp. Slower, because each vehicle needs an extra look. This step is best-effort: if a vehicle's own page cannot be opened, or if the extra look-ups for one page of vehicles take longer than about four minutes, the remaining vehicles still arrive with all of their listing information — just without these extra fields. Leave off for a fast run — everything else (VIN, specs, damage, title, current bid, sale date, photos) is already included either way."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
