# Alibaba Scraper: Products, Suppliers, Prices and MOQ (`sourabhbgp/alibaba-scraper`) Actor

Search Alibaba.com for wholesale products with quantity price breaks, MOQ, specs, variants and the supplier behind each listing. Browse a category, paste product URLs, or pull manufacturer profiles with factory verification reports. Buyer review text included at no extra charge.

- **URL**: https://apify.com/sourabhbgp/alibaba-scraper.md
- **Developed by:** [Sourabh Kumar](https://apify.com/sourabhbgp) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/actors/running/actors-in-store.md#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

### Alibaba scraper: products, suppliers, tier pricing, MOQ and factory reports

Search Alibaba.com and get the whole sourcing picture in one row: quantity price breaks, minimum order, specs, variants, and the factory behind the listing. Browse a category, paste product URLs, or pull manufacturer profiles instead.

**$3.00 per 1,000 results. Buyer reviews and factory verification reports are included, not billed as separate add-ons.**

Sponsored listings are skipped and never charged for unless you ask for them.

Runs on plain HTTP. No browser, no proxy setup, no account.

### Why this scraper?

- 💰 **Real tier pricing, not a stale cached number.** You get the full quantity ladder (100 units at $1.16, 10,000 at $0.95), so you can cost an order at the quantity you actually intend to buy.
- 🧩 **Four price shapes, and the row tells you which one it is.** Alibaba prices products as a quantity ladder, per variant, as a plain range, or quote-only. With full product detail on, `priceModel` tells you which, so a missing price is never a mystery.
- 🚫 **You never pay for an ad you didn't ask for.** Paid placements are dropped before billing unless you switch them on.
- 🏭 **The factory audit is in the box.** Year established, floor space, production lines, quality inspectors, R and D engineers, the inspecting company, and the factory tour video.
- 💬 **Review text with the buyer's country and rating**, labelled product review or store review so you always know which you are reading.
- 🔎 **One actor, four ways in.** Keyword search, whole-category browse, direct product URLs, and a supplier directory.
- 🌍 **Prices localise to your destination.** Pick a delivery country and currency and the shipping cost and localised prices follow, with a US dollar figure alongside wherever a price exists.
- ⚡ **Fast.** A 3,000 row search across several keywords finished in under two minutes in our tests.

### What data can you extract?

<table>
<tr><td>💵 Quantity price ladder</td><td>📦 Minimum order (MOQ)</td><td>🏷️ Per variant prices</td><td>💲 Normalised USD price</td></tr>
<tr><td>📋 ~30 specifications</td><td>🎨 Variants and options</td><td>📊 Stock by variant</td><td>⏱️ Production lead times</td></tr>
<tr><td>🏭 Supplier profile</td><td>✅ Certifications</td><td>💬 Buyer reviews</td><td>📸 Product images and video</td></tr>
<tr><td>🚚 Shipping cost where quoted</td><td>🛠️ Customization minimums</td><td>📁 Category</td><td>🔖 Sponsored flag</td></tr>
</table>

### Scraping modes

#### 🔍 Products by keyword

Search any term and get 48 products per page with pricing, MOQ and the supplier on every row, plus ratings where buyers have left them.

```json
{
  "resultType": "products",
  "searchTerms": ["led light", "solar panel"],
  "maxItems": 500,
  "scrapeProductDetails": true
}
```

#### 📁 Browse a whole category

Skip keywords and walk an entire category. Use the numeric leaf category ID from an Alibaba category URL.

```json
{
  "resultType": "products",
  "categoryId": "39050101",
  "maxItems": 1000,
  "scrapeProductDetails": true
}
```

#### 🔗 Specific product URLs

Already know the products? Paste the URLs and get the full detail payload for each.

```json
{
  "resultType": "products",
  "productUrls": [
    "https://www.alibaba.com/product-detail/Custom-Smd2835-220v-5050-Led-Flexible_1601679650976.html"
  ],
  "scrapeProductDetails": true
}
```

#### 🏭 Suppliers and factory reports

Find manufacturers instead of products, with staff count, factory size, transaction volume and the independent verification report.

```json
{
  "resultType": "suppliers",
  "searchTerms": ["led strip"],
  "maxItems": 50,
  "includeVerificationReport": true
}
```

#### 💬 Add review text to any product run

```json
{
  "searchTerms": ["led flashlight"],
  "maxItems": 100,
  "scrapeProductDetails": true,
  "includeReviews": true,
  "maxReviewsPerProduct": 10
}
```

### How to scrape Alibaba: step by step

1. [Create a free Apify account](https://console.apify.com/sign-up). Takes 30 seconds, no card needed.
2. Open [Alibaba Scraper](https://console.apify.com/actors/6OgQ682YOGpuv5dFR?addFromActorId=6OgQ682YOGpuv5dFR) in the Apify Console.
3. Type a search term, or paste product URLs, or switch to Suppliers.
4. Click **Start**. A 20 product run with full detail takes under a minute.
5. Export as JSON, CSV, or Excel, or pull it from the API.

### How much does Alibaba Scraper cost?

**$3.00 per 1,000 results**, whichever mode you run. There is a $0.005 charge when a run starts.

The Apify Free plan gives you $5 of usage credit a month, which is roughly **1,600 results**. The $29 Starter plan covers about **9,600 results a month**.

Buyer review text and factory verification reports do not cost extra. Neither do sponsored listings, which are skipped before billing, or product URLs that turn out to be dead. You pay for rows you actually receive.

### Input

```json
{
  "resultType": "products",
  "searchTerms": ["office chair"],
  "maxItems": 200,
  "scrapeProductDetails": true,
  "includeReviews": true,
  "maxReviewsPerProduct": 10,
  "sortBy": "response_rate",
  "minPrice": 20,
  "maxPrice": 80,
  "tradeAssuranceOnly": true,
  "supplierCountry": "CN",
  "country": "DE",
  "currency": "EUR",
  "includeSponsored": false
}
```

| Field | Type | Default | Notes |
|---|---|---|---|
| `resultType` | string | `products` | `products` or `suppliers` |
| `searchTerms` | array | none | One or more keywords, searched separately |
| `categoryId` | string | none | Numeric category ID, browse without a keyword |
| `productUrls` | array | none | Alibaba product pages to read directly |
| `maxItems` | integer | 100 | Hard cap on delivered results |
| `scrapeProductDetails` | boolean | false | Adds specs, variants, stock, lead times, supplier |
| `includeReviews` | boolean | false | Adds buyer review text |
| `maxReviewsPerProduct` | integer | 10 | Up to 20 |
| `includeVerificationReport` | boolean | false | Suppliers mode, adds the factory audit |
| `sortBy` | string | `relevance` | `relevance`, `trade_ranking`, `response_rate` |
| `minPrice` / `maxPrice` | integer | none | Unit price window in US dollars |
| `tradeAssuranceOnly` | boolean | false | Only Trade Assurance listings |
| `supplierCountry` | string | none | Two letter code, e.g. `CN`, `IN`, `VN` |
| `country` | string | `US` | Delivery destination, one of 20 supported countries |
| `currency` | string | `USD` | One of 16 supported currencies |
| `includeSponsored` | boolean | false | Paid placements. Off by default, and skipped rows are never billed |

### Output

A product row with full detail:

```json
{
  "productId": "1601679650976",
  "title": "Custom Smd2835 220v 5050 Led Flexible Strip Lighting High Power Holiday Rgb App Remote Controlled Smart Led Strip Lights",
  "url": "https://www.alibaba.com/product-detail/Custom-Smd2835-220v-5050-Led-Flexible_1601679650976.html",
  "priceModel": "ladder",
  "priceUsdMin": 0.95,
  "priceUsdMax": 1.16,
  "priceText": "US $0.95-$1.16",
  "priceLadder": [
    { "minQuantity": 100,   "maxQuantity": 4999, "priceUsd": 1.16 },
    { "minQuantity": 5000,  "maxQuantity": 9999, "priceUsd": 0.96 },
    { "minQuantity": 10000, "maxQuantity": null, "priceUsd": 0.95 }
  ],
  "minOrderQuantity": 100,
  "unit": "meter",
  "categoryName": "Smart Strip Lights",
  "leadTimeDays": 3,
  "reviewScore": 5,
  "reviewCount": 5,
  "isSponsored": false,
  "certifications": ["Declaration of Conformity", "CE", "RoHS"],
  "attributes": [
    { "name": "Color Temperature(CCT)", "value": "2700K, 4000K, 3000K, 5000K, 5700K, 6500K" },
    { "name": "Control Mode", "value": "Switch Control, Remote Control" }
  ],
  "skuOptions": [
    { "name": "Emitting Color", "values": ["RGB", "Warm White", "Cold White", "Blue"] }
  ],
  "supplier": {
    "companyName": "Guangdong Lumenhub Technology Co., Ltd.",
    "businessType": "Manufacturer,Trading Company",
    "registeredCountry": "CN",
    "yearsOnAlibaba": "1 yr",
    "responseTime": "≤2h",
    "onTimeDeliveryRate": "93.8%",
    "ratingAverage": "5.0",
    "ordersLast6Months": 21,
    "revenueLast6Months": "40,000+"
  }
}
```

A supplier row with the verification report:

```json
{
  "companyId": "265634318",
  "companyName": "Guangdong Metalux Led Limited",
  "goldSupplierYears": "5 yrs",
  "isAssessedSupplier": true,
  "responseTime": "≤1h",
  "reviewScore": 4.8,
  "staff": "100+ staff",
  "factoryArea": "8,000+ m²",
  "transactions": "US $170,000+",
  "mainProducts": "COB LED Strip, LED Strip Light, LED Module, Aluminium Profile",
  "verificationReport": {
    "yearEstablished": "2019-04-26",
    "floorSpaceSqm": 8000,
    "productionLines": "3",
    "productionEquipment": "24",
    "qualityInspectors": "3",
    "inspectionProcess": "Inspection of all products, Random inspection",
    "rdEngineers": "4",
    "newProductsPerYear": "75",
    "customizationLevels": "light customization, sample processing, customized on demand",
    "exportMarkets": "North America(70%), Western Europe(10%), Southern Europe(8%)",
    "inspectionProvider": "Intertek",
    "factoryTourVideoUrl": "https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/386144864344.mp4"
  }
}
```

Reviews, when `includeReviews` is on:

```json
{
  "reviewsScope": "product",
  "reviews": [
    {
      "scope": "product",
      "content": "good",
      "rating": 3,
      "reviewedAt": "Feb 1, 2026",
      "buyerName": "K***M",
      "buyerCountry": "IN",
      "isVerifiedPurchase": false,
      "images": []
    }
  ]
}
```

### Use cases

- 🏷️ **Private label sourcing.** Cost a product at 500, 5,000 and 10,000 units from the price ladder before you ever message a supplier.
- 🔍 **Supplier due diligence.** Pull the factory audit: floor space, production lines, inspectors, engineers and who inspected them.
- 📊 **Price benchmarking.** Track what a category actually costs at MOQ across hundreds of listings.
- 📦 **Dropshipping and Amazon FBA research.** Filter to low minimum orders and Trade Assurance, then compare landed cost by destination.
- 🧾 **Competitor teardown.** See which certifications and specs rival products claim.
- 🧲 **Lead generation.** Build a list of manufacturers in a category with response times, ratings and transaction volume.
- 🌍 **Import cost modelling.** Set a delivery country and read the shipping cost on the listings that quote one.
- 💬 **Reputation research.** Read buyer reviews with country and rating before shortlisting.

### Limitations

- **Seller descriptions are published on roughly 15% of products.** The field is null when the seller never wrote one, which is normal and not a scrape failure.
- **A broad keyword tops out around 3,850 unique products, and narrower terms yield fewer.** For deeper coverage, split by category, price band or supplier country rather than raising the limit.
- **There is no price sort.** Alibaba does not offer one on this data. Use the price range filters instead.
- **Product reviews exist only where a product has them.** Otherwise you get store reviews for that seller, and every review says which it is.
- **Verification reports exist only for audited suppliers.** Unaudited suppliers return null for the report.
- **Prices localise to the destination on the localised fields.** Wherever a price exists, a US dollar figure is populated alongside the local one, whatever currency you pick.

### FAQ

#### How much does Alibaba Scraper cost?

Alibaba Scraper uses pay-per-result pricing. You pay **$3.00 for 1,000 results**, plus $0.005 when a run starts. The Apify Free plan gives you $5 in usage credits a month, enough for around 1,600 results. If you run regularly, the $29/month Starter plan covers about 9,600 results.

No subscription lock-in. Pause whenever.

#### Is it legal to scrape Alibaba?

Scraping public data is generally allowed in the US and most of the EU. Just don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible pages, but how you use the output is on you.

Apify's full breakdown: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/).

#### Can I integrate Alibaba Scraper with other tools?

Push results into **Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive**, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.

Full list: [Apify integrations](https://docs.apify.com/platform/integrations).

#### Can I use Alibaba Scraper with the Apify API?

Yes. Every run is available via the Apify REST API:

```bash
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~alibaba-scraper/runs?token=APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchTerms": ["led light"], "maxItems": 100, "scrapeProductDetails": true}'
```

Docs: [Apify API reference](https://docs.apify.com/api/v2).

#### Can I use Alibaba Scraper through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call Alibaba Scraper. Setup: [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

#### Your feedback

Found a bug, or need a field that isn't here? Tell me: [open an issue](https://console.apify.com/actors/6OgQ682YOGpuv5dFR/issues). I read every one.

# Actor input Schema

## `resultType` (type: `string`):

<b>Products</b>: product listings with the supplier attached.<br><b>Suppliers</b>: manufacturer and factory profiles.

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

Keywords to search. Each term is searched separately and returns 48 products per page.

## `categoryId` (type: `string`):

Browse a whole category instead of, or alongside, a keyword. Use the numeric leaf category ID from an Alibaba category URL, for example 39050101 for Flashlights and Torches. Leave empty for a plain keyword search.

## `productUrls` (type: `array`):

Alibaba product pages to read directly. Use this instead of search when you already know the products.

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

Stop after this many results. You are only charged for results actually delivered.

## `scrapeProductDetails` (type: `boolean`):

Adds around 30 specifications, product variants and per variant prices, stock by variant, production lead times, customization minimums, all product images and the full supplier profile. Also adds the seller written description where the seller published one. Costs one extra request per product.

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

Adds buyer reviews with the text, rating, buyer country and photos. Product reviews are used when the product has them, otherwise store reviews are returned. Every review says which of the two it is.

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

Upper limit on reviews returned for each product.

## `includeVerificationReport` (type: `boolean`):

Suppliers mode only. Adds the independent verification report where one exists: year established, floor space, production lines, quality inspectors, R and D engineers, customization levels, the inspecting company and the factory tour video.

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

Order results. <b>Alibaba trade ranking</b> re-ranks toward established trading suppliers: it returns a substantially different result set, but it is not a strict units-sold ordering, so do not read it as one. <b>Supplier response rate</b> puts the fastest-replying suppliers first. Alibaba offers no price sort on this data.

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

Only products at or above this unit price, in US dollars.

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

Only products at or below this unit price, in US dollars.

## `tradeAssuranceOnly` (type: `boolean`):

Only listings covered by Alibaba Trade Assurance order protection.

## `supplierCountry` (type: `string`):

Only suppliers based in this country. Two letter country code, for example CN, IN or VN.

## `country` (type: `string`):

Buyer destination. Changes the shipping cost quoted on each listing and which listings can ship at all.

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

Currency for the localised price fields. A US dollar figure is always returned as well, whatever you pick here.

## `includeSponsored` (type: `boolean`):

Alibaba mixes paid placements into search results. They are skipped and never charged for by default. Turn this on if you want them, marked with isSponsored.

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

Datacenter proxy is used by default and is all this scraper needs. Residential is not required for any part of it.

## Actor input object example

```json
{
  "resultType": "products",
  "searchTerms": [
    "led light"
  ],
  "maxItems": 20,
  "scrapeProductDetails": true,
  "includeReviews": false,
  "maxReviewsPerProduct": 10,
  "includeVerificationReport": false,
  "sortBy": "relevance",
  "tradeAssuranceOnly": false,
  "country": "US",
  "currency": "USD",
  "includeSponsored": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

View the scraped products in the 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 = {
    "resultType": "products",
    "searchTerms": [
        "led light"
    ],
    "maxItems": 20,
    "scrapeProductDetails": true,
    "country": "US",
    "currency": "USD"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sourabhbgp/alibaba-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 = {
    "resultType": "products",
    "searchTerms": ["led light"],
    "maxItems": 20,
    "scrapeProductDetails": True,
    "country": "US",
    "currency": "USD",
}

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

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

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

```

## CLI example

```bash
echo '{
  "resultType": "products",
  "searchTerms": [
    "led light"
  ],
  "maxItems": 20,
  "scrapeProductDetails": true,
  "country": "US",
  "currency": "USD"
}' |
apify call sourabhbgp/alibaba-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sourabhbgp/alibaba-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6OgQ682YOGpuv5dFR/builds/ba3Gehpvtlxi5GiNd/openapi.json
