# Bonanza Listings Scraper (`piotrv1001/bonanza-listings-scraper`) Actor

The Bonanza Listings Scraper extracts product listings from the Bonanza marketplace by keyword or category URL, capturing titles, prices, currencies, sellers, conditions, availability, full descriptions, images — ideal for price monitoring, market research, and competitive analysis.

- **URL**: https://apify.com/piotrv1001/bonanza-listings-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 product listings

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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

### 🛍️ Bonanza Listings Scraper

Easily extract product listings from **[Bonanza](https://www.bonanza.com/)**, the US online marketplace and popular eBay/Etsy alternative. The **Bonanza Listings Scraper** gathers structured product data — titles, prices, images, condition, availability, and seller booths — for **price monitoring, market research, and competitive analysis**.

Search by keyword or point it at any category/search URL, then download the results as JSON, CSV, or Excel, or pull them straight from the [Apify API](https://docs.apify.com/api/v2). Run it on a schedule, plug it into your own pipeline, and let Apify handle proxy rotation and anti-bot protection for you.

### ✨ Features

-   🏷️ **Comprehensive product data** – Titles, current price, currency, thumbnail, seller, and listing URL for every item.
-   🔎 **Keyword or URL based** – Start from a simple search term (e.g. `iphone`) or paste in Bonanza category/search result URLs.
-   📦 **Optional full details** – Flip on detail mode to also capture full descriptions, every product image, availability, item condition, and the seller's booth.
-   💸 **Pay only for what you scrape** – Cheap per-listing pricing for quick scans, with a separate rate for full detail enrichment so you stay in control of costs.
-   ⚡ **Fast & reliable** – Built to collect large catalogs cleanly, with automatic retries and anti-blocking handled behind the scenes.

### 🛠️ How to use the Bonanza Listings Scraper

1.  **Enter a search term or start URLs** – Type a keyword like `vintage camera`, or add Bonanza category/search URLs.
2.  **Set your limits** – Choose how many listings to collect with **Max items**, and toggle **Scrape listing details** if you need full product data.
3.  **Run the scraper** – Press **Start** and watch the results stream into the dataset in real time.
4.  **Export your data** – Download as JSON, CSV, HTML, or Excel, or fetch it via the Apify API.

### 🔧 Input

| Field | Description |
| --- | --- |
| **Search term** | Keyword to search for on Bonanza (e.g. `iphone`). |
| **Start URLs** | Optional Bonanza category or search result URLs to scrape instead of, or in addition to, the search term. |
| **Max items** | Maximum number of listings to collect (default `50`). |
| **Scrape listing details** | When enabled, opens each listing to extract full details. Slower and more expensive than the quick listing view. |
| **Proxy configuration** | Proxy settings. US residential proxies are used by default and recommended for reliable results. |

### 📊 Sample output data

The scraper provides structured JSON output. With **Scrape listing details** enabled, each item looks like this:

```json
{
    "itemId": "1807427995",
    "title": "Apple iPhone 14 Pro Max 128GB Smartphone 48MP Camera Locked READ As Is Gold",
    "price": 272.61,
    "currency": "USD",
    "thumbnail": "https://images-bucket.bonanzastatic.com/afu/images/345f/4421/f8c1_16126323700/__57_thumb200.png",
    "sellerId": "1819827",
    "url": "https://www.bonanza.com/listings/Apple-iPhone-14-Pro-Max-128GB.../1807427995",
    "availability": "instock",
    "condition": "UsedCondition",
    "description": "Apple iPhone 14 Pro Max 128GB Smartphone 48MP Camera Locked READ As Is Gold...",
    "images": [
        "https://images-bucket.bonanzastatic.com/afu/images/345f/4421/f8c1_16126323700/__57.png",
        "https://images-bucket.bonanzastatic.com/afu/images/6520/b87a/0157_16126323696/__57_thumb200.jpg"
    ],
    "booth": "cellularwholesales"
}
````

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data fields

| Field | Description |
| --- | --- |
| `itemId` | Unique Bonanza listing ID. |
| `title` | Product title. |
| `price` | Listing price as a number. |
| `currency` | Price currency (e.g. `USD`). |
| `thumbnail` | Main product image (listing view). |
| `sellerId` | Numeric ID of the seller. |
| `url` | Direct link to the listing. |
| `availability` | Stock status (detail mode), e.g. `instock`. |
| `condition` | Item condition (detail mode), e.g. `UsedCondition`, `NewCondition`. |
| `description` | Full item description (detail mode). |
| `images` | All product image URLs (detail mode). |
| `booth` | Seller's booth/store slug (detail mode). |

### 💰 How much does it cost to scrape Bonanza?

This Actor uses a **pay-per-result** model — there is **no monthly rental fee** and **no charge to start a run**:

| What you scrape | Price |
| --- | --- |
| Listing (search/category view) | **$0.002** per item |
| Full listing detail | **$0.008** per item |

For example, collecting **1,000 listings** costs about **$2**, and enriching **1,000 listings** with full details costs about **$8**. New Apify accounts include free monthly usage credits, so you can try it at no cost. Keep **Scrape listing details** off when you only need core listing data to minimize cost.

### 💡 Tips

- Use **Start URLs** with category pages to target a specific niche, and combine with **Max items** to control volume.
- Bonanza caps each individual search/category query at a few thousand results — for very large catalogs, split your run across multiple narrower searches or categories.
- Leave **Scrape listing details** off for fast, cheap price monitoring; turn it on only when you need descriptions and full image galleries.

### ❓ FAQ

**Is it legal to scrape Bonanza?**
Scraping publicly available data is generally legal, but you are responsible for how you use the collected data. Review Bonanza's Terms of Service and applicable laws, and avoid collecting personal or copyrighted data without permission.

**Why are some fields empty?**
Fields like `description`, `images`, `condition`, and `availability` are only populated when **Scrape listing details** is enabled.

**Can I run it on a schedule?**
Yes. Use Apify [Schedules](https://docs.apify.com/platform/schedules) to run the scraper automatically and monitor price changes over time.

**Need a custom solution or hit an issue?**
Report problems or feature requests via the **Issues** tab on the Actor's page — feedback is welcome.

# Actor input Schema

## `search` (type: `string`):

Keyword to search for on Bonanza (e.g. "iphone", "vintage camera").

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

Optional Bonanza category or search result URLs to scrape instead of (or in addition to) the search term.

## `maxItems` (type: `integer`):

Maximum number of listings to collect.

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

Open each listing to extract full details (description, all images, availability, condition, seller booth). Slower and more expensive than the quick search-results view.

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

Proxy settings. US residential proxies are used by default and recommended for reliable results.

## Actor input object example

```json
{
  "search": "iphone",
  "startUrls": [],
  "maxItems": 50,
  "scrapeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountryCode": "US"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "search": "iphone",
    "startUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/bonanza-listings-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 = {
    "search": "iphone",
    "startUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/bonanza-listings-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 '{
  "search": "iphone",
  "startUrls": []
}' |
apify call piotrv1001/bonanza-listings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bonanza Listings Scraper",
        "description": "The Bonanza Listings Scraper extracts product listings from the Bonanza marketplace by keyword or category URL, capturing titles, prices, currencies, sellers, conditions, availability, full descriptions, images — ideal for price monitoring, market research, and competitive analysis.",
        "version": "0.0",
        "x-build-id": "ksjppyWgPO9Z5tjxD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/piotrv1001~bonanza-listings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-piotrv1001-bonanza-listings-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/piotrv1001~bonanza-listings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-piotrv1001-bonanza-listings-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/piotrv1001~bonanza-listings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-piotrv1001-bonanza-listings-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": {
                    "search": {
                        "title": "Search term",
                        "type": "string",
                        "description": "Keyword to search for on Bonanza (e.g. \"iphone\", \"vintage camera\")."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional Bonanza category or search result URLs to scrape instead of (or in addition to) the search term.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to collect.",
                        "default": 50
                    },
                    "scrapeDetails": {
                        "title": "Scrape listing details",
                        "type": "boolean",
                        "description": "Open each listing to extract full details (description, all images, availability, condition, seller booth). Slower and more expensive than the quick search-results view.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. US residential proxies are used by default and recommended for reliable results.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountryCode": "US"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
