# CrankyApe Scraper - Repo & Salvage Powersport Auctions (`lulzasaur/crankyape-scraper`) Actor

Scrape CrankyApe.com online auctions for bank-repo and salvage ATVs, boats, RVs, snowmobiles, watercraft, motorcycles, cars and trailers. Get titles, current bids, locations, close dates, condition, listing URLs and images. Browse by category or filter by keyword.

- **URL**: https://apify.com/lulzasaur/crankyape-scraper.md
- **Developed by:** [lulz bot](https://apify.com/lulzasaur) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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.

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

## CrankyApe Scraper - Repo & Salvage Powersport Auctions

Scrape live online auction listings from [CrankyApe.com](https://www.crankyape.com), the auction company specializing in **bank-repossessed, insurance-repairable, and consignment recreational vehicles** — ATVs, boats, RVs, snowmobiles, watercraft, motorcycles, cars, trucks, and trailers.

Get structured data for every current auction lot: title (year/make/model), current bid, location, close date, status, condition/description, listing URL, and images. Perfect for resellers, dealers, flippers, market researchers, and powersports arbitrage.

### What it scrapes

For each auction lot:

| Field | Description |
|-------|-------------|
| `title` | Lot title — typically year / make / model |
| `currentBid` | Current high bid (e.g. `$4,500.00`) |
| `currentBidValue` | Numeric bid amount (e.g. `4500`) |
| `highBidder` | Current high bidder username (if shown) |
| `status` | Listing status (e.g. `open`) |
| `closeDate` | Auction close date/time |
| `location` | Warehouse location (e.g. `Bridgeport, TX`) |
| `category` | Category name (ATVs, Watercraft, RVs, ...) |
| `description` | Condition / details summary |
| `image` | Primary listing image URL |
| `url` | Direct link to the lot |
| `itemNumber` | CrankyApe unit number |
| `scrapedAt` | ISO timestamp of the scrape |

With **Scrape Detail Pages** enabled, each record is also enriched with:
`reserve` (reserve-met status), `minBidIncrement`, `bidStart`, `bidEnd`, `lastBidMade`, `titleBrand`, and a full `images` array.

### Input

```json
{
    "categories": ["ATVs", "Watercraft"],
    "searchQueries": ["Polaris"],
    "maxResults": 100,
    "scrapeDetails": false,
    "site": "crankyape",
    "proxyConfiguration": { "useApifyProxy": false }
}
````

- **categories** — Which auction categories to browse. Accepts friendly names (`ATVs`, `Cars`, `Motorcycles`, `RVs`, `Snowmobiles`, `Trailers`, `Trucks`, `Watercraft`, `Power Equipment`, `Lawn & Garden`, `Miscellaneous`) and the special lists `Closing Soon` and `Buy It Now`. Raw category codes (e.g. `1`, `11`) also work.
- **searchQueries** — Optional keywords that **filter** results by title/description. CrankyApe has no native keyword search, so listings are pulled from the chosen categories and filtered client-side (a lot matches if any keyword appears). Leave empty to return everything in the categories.
- **maxResults** — Cap across all categories. `0` = unlimited.
- **scrapeDetails** — Visit each lot's detail page for richer data (slower).
- **site** — Currently only `crankyape`.
- **proxyConfiguration** — Optional Apify proxy. Residential recommended for very large runs.

### Output

Each result is pushed to the dataset. Example:

```json
{
    "site": "crankyape",
    "itemNumber": "142458",
    "title": "2017 Polaris RZR XP 1000 Ride Command AWD",
    "category": "ATVs/Golf Carts",
    "status": "open",
    "currentBid": "$4,500.00",
    "currentBidValue": 4500,
    "highBidder": "Paintsmith512",
    "closeDate": "6/24/2026 1:48:00 PM CST",
    "location": "Bridgeport, TX",
    "description": "2017 Polaris RZR XP 1000 Ride Command AWD powered by a 999cc engine. Starts and runs with 3,342 miles.",
    "image": "https://www.crankyape.com/Images//UnitImages/2460/2460364.jpg",
    "url": "https://www.crankyape.com/default.asp?pg=DispSingleItem&ItemNumber=142458",
    "scrapedAt": "2026-06-24T18:51:00.000Z"
}
```

### Use cases

- **Resale / flipping** — find undervalued repo and salvage powersports to buy and resell.
- **Dealers** — monitor inventory and pricing across CrankyApe's 6 nationwide warehouses.
- **Market research** — track salvage/repo pricing trends for ATVs, boats, RVs, and watercraft.
- **Alerts** — combine with a schedule to watch closing-soon lots matching your keywords.

### Notes

- Data is parsed from CrankyApe's server-rendered HTML — no login required.
- Respect CrankyApe's terms of use and scrape responsibly.

***

Built with the Apify SDK and Crawlee.

# Actor input Schema

## `categories` (type: `array`):

Auction categories to browse on CrankyApe. Use names like 'ATVs', 'Cars', 'Motorcycles', 'RVs', 'Snowmobiles', 'Trailers', 'Trucks', 'Watercraft', 'Power Equipment', 'Lawn & Garden', 'Miscellaneous', or the special lists 'Closing Soon' and 'Buy It Now'. You may also pass raw Cat codes (e.g. '1', '11').

## `searchQueries` (type: `array`):

Optional keywords used to FILTER listings by title/description (e.g. 'Polaris', 'pontoon', 'Harley'). CrankyApe has no keyword search, so listings are pulled from the selected Categories and filtered client-side. A listing matches if any keyword appears. Leave empty to return all listings in the categories.

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

Maximum number of auction listings to scrape across all selected categories. Set to 0 for unlimited. Default is 100.

## `scrapeDetails` (type: `boolean`):

Visit each listing's detail page to enrich records with reserve status, minimum bid increment, bid start/end times, title brand, and all photos. Slower but more complete.

## `site` (type: `string`):

Auction site to scrape. Currently only 'crankyape' is supported.

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

Proxy settings. Not required for basic scraping but recommended for large-scale runs.

## Actor input object example

```json
{
  "categories": [
    "ATVs",
    "Watercraft"
  ],
  "searchQueries": [],
  "maxResults": 100,
  "scrapeDetails": false,
  "site": "crankyape",
  "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 = {
    "categories": [
        "ATVs",
        "Watercraft"
    ],
    "searchQueries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("lulzasaur/crankyape-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 = {
    "categories": [
        "ATVs",
        "Watercraft",
    ],
    "searchQueries": [],
}

# Run the Actor and wait for it to finish
run = client.actor("lulzasaur/crankyape-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 '{
  "categories": [
    "ATVs",
    "Watercraft"
  ],
  "searchQueries": []
}' |
apify call lulzasaur/crankyape-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CrankyApe Scraper - Repo & Salvage Powersport Auctions",
        "description": "Scrape CrankyApe.com online auctions for bank-repo and salvage ATVs, boats, RVs, snowmobiles, watercraft, motorcycles, cars and trailers. Get titles, current bids, locations, close dates, condition, listing URLs and images. Browse by category or filter by keyword.",
        "version": "1.0",
        "x-build-id": "0PqVHqwWmOvbIJUZ3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lulzasaur~crankyape-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lulzasaur-crankyape-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/lulzasaur~crankyape-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lulzasaur-crankyape-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/lulzasaur~crankyape-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lulzasaur-crankyape-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": {
                    "categories": {
                        "title": "Categories",
                        "type": "array",
                        "description": "Auction categories to browse on CrankyApe. Use names like 'ATVs', 'Cars', 'Motorcycles', 'RVs', 'Snowmobiles', 'Trailers', 'Trucks', 'Watercraft', 'Power Equipment', 'Lawn & Garden', 'Miscellaneous', or the special lists 'Closing Soon' and 'Buy It Now'. You may also pass raw Cat codes (e.g. '1', '11').",
                        "default": [
                            "Closing Soon"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQueries": {
                        "title": "Search Keywords (filter)",
                        "type": "array",
                        "description": "Optional keywords used to FILTER listings by title/description (e.g. 'Polaris', 'pontoon', 'Harley'). CrankyApe has no keyword search, so listings are pulled from the selected Categories and filtered client-side. A listing matches if any keyword appears. Leave empty to return all listings in the categories.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of auction listings to scrape across all selected categories. Set to 0 for unlimited. Default is 100.",
                        "default": 100
                    },
                    "scrapeDetails": {
                        "title": "Scrape Detail Pages",
                        "type": "boolean",
                        "description": "Visit each listing's detail page to enrich records with reserve status, minimum bid increment, bid start/end times, title brand, and all photos. Slower but more complete.",
                        "default": false
                    },
                    "site": {
                        "title": "Site",
                        "enum": [
                            "crankyape"
                        ],
                        "type": "string",
                        "description": "Auction site to scrape. Currently only 'crankyape' is supported.",
                        "default": "crankyape"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Not required for basic scraping but recommended for large-scale runs.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
