Bonanza Marketplace Scraper
Pricing
from $13.00 / 1,000 bonanza listings
Bonanza Marketplace Scraper
Scrape public Bonanza marketplace listings, prices, shipping, seller data, item traits, images, and descriptions by keyword or URL.
Pricing
from $13.00 / 1,000 bonanza listings
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Free-plan limit: Apify free-plan users receive at most 5 delivered records per run. Paid users may use the Actor’s configured result limit.
Scrape public Bonanza marketplace listings for product research, resale sourcing, catalog monitoring, and competitive pricing. Enter keyword searches, public Bonanza search/category/booth URLs, or a listing URL. The Actor returns one normalized JSON record per unique listing in the default dataset.
What it extracts
Without detail enrichment, records contain the item ID, title, canonical listing URL, displayed price and currency, shipping text, primary image, featured flag, source type, and scrape timestamp. Enable includeDetails to visit each product page and add:
- condition, availability, quantity, category, brand, model, UPC, and normalized item traits;
- all full-size product images and the public seller booth URL/username;
- seller rating and transaction count when shown;
- shipping origin, offer-policy signal, and the seller's plain-text description.
Fields that Bonanza does not expose are returned as null; missing arrays and trait maps are returned as empty collections. Search cards can show truncated titles, so use includeDetails when the full product title matters.
Input
| Field | Description |
|---|---|
searchQueries | Array of keyword searches. Defaults to vintage camera. |
startUrls | Public bonanza.com search, category, booth, or listing URLs. Queries and URLs are combined and deduplicated. |
maxItems | Maximum unique listings across the run (1–10,000; default 20). |
includeDetails | Visit each listing page for traits, seller information, images, and description. Adds one detail-enrichment event per enriched row. |
sortBy | Keyword-search ordering: relevancy, price_desc, price_asc, newest, or seller_rating. |
minPrice, maxPrice | Optional bounds applied to the displayed currency for the run's locale. |
maxPagesPerSource | Pagination safety limit (1–100; default 20). |
maxConcurrency | Browser-page concurrency (1–10; default 3). Lower values reduce rate-limit/challenge risk. |
proxyConfiguration | Apify Proxy configuration. Use Residential if Bonanza challenges datacenter sessions. |
Example keyword input:
{"searchQueries": ["vintage camera", "polaroid land camera"],"maxItems": 25,"includeDetails": true,"sortBy": "price_asc","proxyConfiguration": { "useApifyProxy": true }}
Example URL input:
{"startUrls": [{ "url": "https://www.bonanza.com/booths/vintage_finders?item_sort_options%5Bfilter_category_id%5D=625" },{ "url": "https://www.bonanza.com/listings/Example/1234567890" }],"maxItems": 10,"includeDetails": true,"proxyConfiguration": { "useApifyProxy": true }}
Output
The default dataset is homogeneous: each item is a listing record. The SUMMARY key-value record contains the outcome classification (DATA, EMPTY, BLOCKED, REJECTED, or FAILED), pages attempted, warnings, records returned, and detail-event count. Access the dataset and summary from the Output tab or the API links exposed by output_schema.json.
Billing
This Actor uses pay-per-event pricing. The Actor start event is synthetic. Each validated listing written to the default dataset is the primary result event, and each detail-enriched row may add one detail-enrichment event. Empty, rejected, blocked, and failed runs do not create result charges. The run stops when Apify's configured maximum total charge prevents another detail event.
When a direct /listings/ URL is supplied, the product page must be opened to identify the listing, so that row is treated as detail-enriched and can incur the detail event even if includeDetails is false.
Reliability and limits
The crawler uses Playwright, bounded concurrency, persistent Crawlee sessions, retry limits, and challenge-aware diagnostics. Bonanza may return a Cloudflare managed challenge depending on IP reputation, geography, or request volume. The Actor never submits CAPTCHAs, uses login cookies, or fabricates listings; switch to a permitted Residential proxy route or use a public source URL when a run is classified as BLOCKED.
The Actor reads only public pages. Respect Bonanza's Terms of Use, robots directives, applicable law, and reasonable request rates. Do not use it to access private seller dashboards, accounts, or authentication-gated content.
Local development
npm cinpm testnpm start
npm test builds the TypeScript source and runs parser/lifecycle-independent unit tests. Cloud runs should use a small maxItems first, then increase gradually while watching challenge rate, runtime, and event charges.
FAQ
Does this require a Bonanza login or API key?
No. The default path uses public Bonanza pages and does not accept or store login cookies. Bonanza can still challenge a network identity; configure Apify Proxy and keep concurrency low.
Can it scrape a seller booth?
Yes. Add a public /booths/{seller} URL to startUrls. The Actor follows the booth's public listing pagination until maxItems or maxPagesPerSource is reached.
Are prices always in USD?
No. Bonanza localizes displayed prices by session. The currency field reports the visible currency code when present, and price filters apply to that displayed currency. Use a consistent proxy geography when comparing runs.
Why did a run return zero records?
Check SUMMARY: EMPTY means the page loaded and no matching public listings were found; BLOCKED means Bonanza challenged or denied every usable request; REJECTED means the input was invalid. A blocked run never writes a fake placeholder record.
Pricing
This Actor uses pay-per-event pricing. These are the current Apify Store event prices:
| Event | Price (USD) | When it is charged |
|---|---|---|
apify-default-dataset-item | FREE: $0.018; BRONZE: $0.017; SILVER: $0.016; GOLD: $0.013; PLATINUM: $0.013; DIAMOND: $0.013 | Bonanza listing — One normalized Bonanza listing saved to the default dataset. |
detail-enrichment | FREE: $0.03; BRONZE: $0.028; SILVER: $0.025; GOLD: $0.022; PLATINUM: $0.022; DIAMOND: $0.022 | Detail enrichment — Adds product-page traits, seller data, images, availability, and description to one saved listing. |
apify-actor-start | $0.005 | Actor Start — Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). — Charged once per run. |
Apify platform usage for this Actor run is included alongside the event prices above; no separate per-run platform-usage fee is passed to users.
This covers Apify platform usage for this Actor run. Other Apify products or usage outside this Actor run may still follow your account plan.