# Banggood Scraper - Products, Prices, Specs & Reviews (`scrapesage/banggood-scraper`) Actor

Scrape Banggood by keyword, category or URL: live price, discount %, rating, review count, full SKU/variant matrix, specifications, all images, warehouse & buyer reviews. Choose currency & warehouse, filter, and monitor price drops & restocks.

- **URL**: https://apify.com/scrapesage/banggood-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 product scrapeds

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Banggood Scraper — Products, Prices, Variants, Specs & Reviews

Extract **complete Banggood product data** — live **price & discount**, **average rating + review count**, the **full SKU/variant matrix** (per-option price & availability), **brand**, **category breadcrumb**, **all product images**, **warehouse**, and **buyer reviews** (rating, text, reviewer country, photos, purchase date). Built for **dropshipping product research, repricing, catalog building, and price/stock monitoring**.

No login, no API key, no browser — fast HTML/JSON extraction with retry-and-rotate reliability.

### Why this Banggood scraper?

Most Banggood scrapers only accept a list of product URLs and return a thin record. This actor adds **keyword & category search**, the **full variant matrix with prices**, **buyer reviews**, and a built-in **price/restock monitor** — the **richest dataset in the category**:

| Data | Typical scrapers | This actor |
|---|---|---|
| Keyword / category search (no URLs needed) | ❌ URL-only | ✅ |
| Live price + currency | partial | ✅ |
| Average rating + review count | ❌ | ✅ |
| Full SKU / variant matrix (per-option price & stock) | ❌ | ✅ |
| Brand, category breadcrumb, warehouse | ❌ | ✅ |
| All product images | partial | ✅ |
| Buyer reviews (rating, text, country, photos, date) | ❌ | ✅ opt-in |
| Currency & warehouse localization | ❌ | ✅ |
| Price-drop / restock **monitor mode** (only new/changed) | ❌ | ✅ |

### Use cases

- **Dropshipping product research** — find winning products by keyword/category, capture price, rating, review count, variants and images, and feed them straight into your store or research sheet.
- **Repricing & price intelligence** — track Banggood prices and discounts against your own listings or competitors; export to your repricer.
- **Catalog & content building** — pull titles, descriptions, brands, specs, images and variants to build or enrich product catalogs.
- **Review mining** — analyze buyer sentiment, photos and reviewer countries to vet products before sourcing.
- **Price-drop & restock alerts** — schedule recurring runs in monitor mode to emit only products whose price or stock changed.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Banggood Scraper**, enter search keywords (or paste Banggood URLs / product IDs), choose currency & warehouse, and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "searchTerms": ["mini drone", "led strip"],
    "sort": "default",
    "currency": "USD",
    "warehouse": "CN",
    "maxProducts": 100,
    "includeProductDetails": true,
    "includeReviews": false,
    "monitorMode": false
}
```

- **searchTerms** — keywords; each is scraped as its own ~60-per-page product feed.
- **startUrls** — paste Banggood product pages (`…-p-<id>.html`), search/category pages (`/search/<kw>.html`, `…-c-<id>.html`), or review pages (`…-reviews-p<id>.html`).
- **productIds** — Banggood product IDs to fetch full detail directly (e.g. `1940642`).
- **sort** — `default` (Popular), `newest`, `priceAsc`, `priceDesc`.
- **currency / warehouse** — localize prices & availability (e.g. `USD` + `CN`, `GBP` + `UK`, `EUR` + `CZ`).
- **minPrice / maxPrice / fourStarPlus** — filters (price filters apply once detail is fetched).
- **includeProductDetails** *(default true)* — open each product for live price, the full SKU/variant matrix, specifications, all images, brand, breadcrumb and warehouse. The search card does **not** carry a price, so keep this on to get prices. Turn off for a faster/cheaper discovery run.
- **includeReviews** *(default false)* — pull buyer reviews per product (rating, text, reviewer country, photos, purchase date) as separate `review` records.
- **maxReviewsPerProduct** — cap reviews per product (default 20).
- **monitorMode** *(default false)* — remember products across runs and emit **only** new/changed items, each tagged with a `changeType` (`new` / `price_drop` / `price_rise` / `restocked` / `out_of_stock`).
- **monitorKey** — name independent monitors (e.g. one per keyword).
- **proxyConfiguration** — Apify Proxy; datacenter is the default and works well. Switch to residential only if you see repeated empty-shell warnings.

### Output

One record per product (`type: "product"`), plus optional buyer review records (`type: "review"`):

```json
{
    "type": "product",
    "productId": "1940642",
    "title": "JJRC H36 Mini 2.4G 4CH 6 Axis Headless Mode RC Drone Quadcopter RTF",
    "brand": "Eachine",
    "url": "https://www.banggood.com/JJRC-H36-Mini-2_4G-4CH-6-Axis-Headless-Mode-RC-Drone-Quadcopter-RTF-p-1940642.html",
    "price": 18.99,
    "priceMax": null,
    "currency": "USD",
    "inStock": true,
    "rating": 4.93,
    "reviewsCount": 11414,
    "category": "RC Quadcopters",
    "breadcrumb": ["Toys Hobbies and Robot", "RC Drones", "RC Quadcopters"],
    "variesBy": "color",
    "variantsCount": 3,
    "variants": [
        { "option": "Mode 2 One Battery Blue", "price": 18.99, "currency": "USD", "availability": "InStock" }
    ],
    "mainImage": "https://imgaz1.staticbg.com/thumb/view/.../3a973f36.jpg.webp",
    "images": ["https://imgaz1.staticbg.com/.../1.jpg.webp", "..."],
    "imagesCount": 6,
    "warehouse": "CN",
    "keywords": "Eachine E010, Mini RC Drone, 2.4G Quadcopter, Headless Mode, 6-Axis Gyro",
    "searchTerm": "mini drone",
    "scrapedAt": "2026-06-17T20:40:36.515Z"
}
```

```json
{
    "type": "review",
    "productId": "2029055",
    "productTitle": "FIMI X8 MINI 3 … Foldable RC Drone Quadcopter RTF",
    "reviewId": "10596739",
    "rating": 5,
    "date": "10/07/2025",
    "author": "zezoka",
    "country": "Hungary",
    "countryCode": "HU",
    "content": "Good product! Good quality, extra light weight after my Fimi X8! :)",
    "images": ["https://imgaz.staticbg.com/customers_images/.../2029055.jpg"],
    "imagesCount": 4,
    "scrapedAt": "2026-06-17T20:40:36.515Z"
}
```

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it hourly/daily to watch a keyword or product set; pair with **monitorMode** to emit only price drops & restocks.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (repricer update, Slack alert, sheet append) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/banggood-scraper').call({
    searchTerms: ['mini drone'],
    currency: 'USD',
    includeProductDetails: true,
    monitorMode: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Banggood products`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new products or price drops into Sheets, Airtable or your store.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored keyword finds a price drop or restock.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find the cheapest 4-star+ mini drones on Banggood and list their prices and variants" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **e-commerce & dropshipping data stack** across the marketplaces your products come from and sell on:

- **[AliExpress Scraper](https://apify.com/scrapesage/aliexpress-scraper)** — products, prices, orders sold, variants & supplier leads.
- **[Made-in-China Scraper](https://apify.com/scrapesage/made-in-china-scraper)** — B2B suppliers, products & company contacts.
- **[TradeIndia Scraper](https://apify.com/scrapesage/tradeindia-scraper)** — Indian B2B suppliers & product listings.
- **[eBay Scraper](https://apify.com/scrapesage/ebay-scraper)** — live listings, sold comps & seller leads.
- **[Poshmark Scraper](https://apify.com/scrapesage/poshmark-scraper)** — fashion resale listings, sold comps & seller leads.
- **[Reverb Scraper](https://apify.com/scrapesage/reverb-scraper)** — musical-instrument marketplace, price guide & seller leads.
- **[Discogs Scraper](https://apify.com/scrapesage/discogs-scraper)** — vinyl/CD marketplace prices, demand & seller leads.
- **[Shopify Store Scraper](https://apify.com/scrapesage/shopify-store-scraper)** — products, prices & inventory from any Shopify store.
- **[Gumtree Scraper](https://apify.com/scrapesage/gumtree-scraper)** — UK classifieds listings, prices & seller leads.

### Tips

- **Get prices**: the search card has no price — keep **includeProductDetails** on so each product is opened for its live price and variant matrix.
- **Localize correctly**: set both **currency** and **warehouse** (e.g. `EUR` + `CZ` for the EU warehouse). Prices and availability change per warehouse.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with **monitorMode** to track only price drops & restocks; use a distinct **monitorKey** per keyword.
- **Cost control**: turn detail off for a cheap discovery pass (id, title, URL, image, rating, review count), then re-run with detail on the products you care about.
- **Proxies**: the default datacenter proxy works; switch to residential only if you see repeated "empty-shell / blocked" warnings.

### FAQ

**Do I need a Banggood API key or login?** No. The actor reads publicly available pages and endpoints — no key, no login, no browser.

**Why is `price` null in a search-only run?** Banggood does not put the price on the search-result card; it loads on the product page. Keep **includeProductDetails** on (the default) to get prices, variants and specs.

**Can I scrape a whole category?** Yes — paste the category URL (`…-c-<id>.html`) or a `/search/<kw>.html` URL into **startUrls**, or just use **searchTerms**.

**How do I monitor price drops?** Turn on **monitorMode**, set a **monitorKey**, and create a [Schedule](https://docs.apify.com/platform/schedules). Each run emits only products that are new or whose price/stock changed, tagged with `changeType`.

**Does monitor mode conflict with Apify Schedules?** No — they complement each other. The Schedule starts the run on your cadence; monitor mode deduplicates against previous runs so you only pay for new/changed products.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**A field is null — why?** Some products genuinely don't publish a field (e.g. no discount, single variant, or a brand-less generic item). Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

**Is scraping Banggood legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws and Banggood's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search Banggood for, e.g. <code>drone</code>, <code>phone case</code>, <code>led strip</code>, <code>rc car</code>. Each keyword is scraped as its own product feed (~60 products per page). Leave empty if you only use Start URLs / Product IDs.

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

Banggood URLs to scrape directly: product pages (<code>…-p-\<id>.html</code>), search/category pages (<code>/search/\<kw>.html</code> or <code>…-c-\<id>.html</code>), or review pages (<code>…-reviews-p\<id>.html</code>). Used in addition to the keyword search.

## `productIds` (type: `array`):

Banggood product IDs to fetch full product detail for directly (e.g. <code>1940642</code>). Equivalent to pasting their product URLs.

## `sort` (type: `string`):

How Banggood orders the keyword search results.

## `minPrice` (type: `integer`):

Only keep products whose price (in the chosen currency) is at least this much. Requires product detail (price is not on the search card).

## `maxPrice` (type: `integer`):

Only keep products whose price (in the chosen currency) is at most this much. Requires product detail.

## `fourStarPlus` (type: `boolean`):

Only keep products with an average rating of 4.0 stars or higher (drops new / low-rated items).

## `currency` (type: `string`):

Currency code for all prices (e.g. <code>USD</code>, <code>EUR</code>, <code>GBP</code>, <code>AUD</code>, <code>CAD</code>). Banggood converts displayed prices to this currency.

## `warehouse` (type: `string`):

Preferred shipping warehouse code that prices & availability are localized to (e.g. <code>CN</code>, <code>US</code>, <code>UK</code>, <code>CZ</code>, <code>AU</code>). Affects displayed price & stock.

## `maxProducts` (type: `integer`):

Maximum number of product records to scrape across all searches/URLs. Banggood search returns ~60 products per page.

## `maxPagesPerSearch` (type: `integer`):

How many search result pages to page through per keyword/listing (~60 products each).

## `includeProductDetails` (type: `boolean`):

Open each product to add live price, discount, the full SKU/variant matrix (per-option price & availability), specifications, all images, brand, category breadcrumb and warehouse. The search card itself does NOT carry a price — keep this ON to get prices. Turn OFF for a faster/cheaper discovery run (id, title, URL, image, rating, review count only). Adds one request per product.

## `includeReviews` (type: `boolean`):

Fetch buyer reviews per product (rating, text, reviewer country, purchased SKU, photos, date). Pushed as separate review records. Adds one or more requests per product.

## `maxReviewsPerProduct` (type: `integer`):

Maximum number of buyer reviews to pull per product when reviews are enabled (~10 per page).

## `deduplicateProducts` (type: `boolean`):

Drop duplicate products that appear in more than one search/page in the same run.

## `monitorMode` (type: `boolean`):

Remember products across runs in a named key-value store and emit ONLY products that are new OR whose price/stock changed since the last run (each carries a <code>changeType</code>: new / price\_drop / price\_rise / restocked / out\_of\_stock). Pair with Apify Schedules for price-drop & restock alerts — it complements the scheduler (the schedule starts the run; monitor mode dedupes against prior runs). Needs product detail ON to compare prices.

## `monitorKey` (type: `string`):

Names the monitor's memory store so you can run several independent monitors (e.g. one per keyword). Reuse the same key to keep tracking the same feed.

## `maxConcurrency` (type: `integer`):

Parallel page/request fetches. Keep moderate (3–5) so Banggood's anti-bot doesn't serve empty shells.

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

Proxies to use. Banggood serves cleanly to Apify datacenter proxies; keep the default. Switch to RESIDENTIAL only if you see repeated empty-shell / blocked warnings.

## Actor input object example

```json
{
  "searchTerms": [
    "drone"
  ],
  "sort": "default",
  "fourStarPlus": false,
  "currency": "USD",
  "warehouse": "CN",
  "maxProducts": 100,
  "maxPagesPerSearch": 10,
  "includeProductDetails": true,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "deduplicateProducts": true,
  "monitorMode": false,
  "monitorKey": "default",
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped Banggood product records and optional buyer review records as JSON items in the default dataset.

# 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 = {
    "searchTerms": [
        "drone"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/banggood-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 = {
    "searchTerms": ["drone"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/banggood-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 '{
  "searchTerms": [
    "drone"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/banggood-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BMgPXmaI6K3BJvarl/builds/wCJM2Edr6m2bF1fcX/openapi.json
