# Alibaba Product & Supplier Scraper (`inexhaustible_glass/alibaba-product-scraper`) Actor

11 operations in one actor: product search, product details, product reviews, supplier search, supplier details, supplier products, supplier reviews, image search, autocomplete, trending keywords and categories — all from Alibaba.com.

- **URL**: https://apify.com/inexhaustible_glass/alibaba-product-scraper.md
- **Developed by:** [Hitman studio](https://apify.com/inexhaustible_glass) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🏭 Alibaba Product & Supplier Scraper — 11 Operations, No Login

Pull products, suppliers, reviews, categories and search suggestions straight
from **Alibaba.com** — no account, no API key. One actor, **11 operations**:

✅ Product search  ✅ Product detail  ✅ Product reviews
✅ Supplier search  ✅ Supplier detail  ✅ Supplier products  ✅ Supplier reviews
✅ Image search  ✅ Autocomplete  ✅ Trending keywords  ✅ Category tree

Most Alibaba scrapers on the Store only do product search + product detail.
This one also gives you the **full supplier side** (profile, their entire
catalog, their reviews) and **discovery tools** (image search, autocomplete,
trending, categories) — the whole sourcing workflow in one actor instead of
stitching three together.

> **Keywords:** Alibaba scraper · B2B sourcing · wholesale supplier data · MOQ pricing · China supplier lookup · product sourcing automation.

### 🎯 Use cases

- **B2B sourcing** — pull tiered pricing, MOQ and verified-supplier status for a product category before you contact anyone.
- **Supplier due diligence** — years on Alibaba, Trade Assurance, Verified Pro status, response rate and review scores in one call.
- **Price/market monitoring** — re-run a saved search weekly to track price and supplier changes.
- **Dropshipping/arbitrage research** — cross-reference Alibaba wholesale prices against retail listings.

### 📥 Input

Pick one `operation` per run (full field list and examples are in the Actor's Input tab):

| Operation | What it needs |
|---|---|
| `productSearch` | `query` or `categoryId`, plus optional price/MOQ/rating/certification/Trade-Assurance filters |
| `productDetail` | `productId` or `productUrl` |
| `productReviews` | `productId` or `productUrl` |
| `supplierSearch` | `query`, plus optional country/verification filters |
| `supplierDetail` / `supplierProducts` / `supplierReviews` | `supplierId` or `supplierUrl` |
| `imageSearch` | `imageUrl` |
| `autocomplete` / `trending` | `query` (autocomplete only) |
| `categories` | `parentCategoryId` (optional — omit for the top-level tree) |

#### Example input

```json
{ "operation": "productSearch", "query": "bluetooth speaker", "currency": "USD", "tradeAssurance": true }
```

### 📤 Output (real example — live-tested)

```json
{
  "_operation": "productSearch",
  "id": 1600805245747,
  "title": "Latest New Portable Waterproof Wireless Speaker BT Speaker Tent Light Speaker with White and Dancing RGB Light",
  "link": "https://www.alibaba.com/product-detail/Latest-New-Portable-Waterproof-Wireless-Speaker_1600805245747.html",
  "price": { "min": 10.0, "max": 11.4, "currency": "USD", "formatted": "$10-11.40" },
  "moq": { "quantity": 2, "unit": "pieces" },
  "rating": { "product_score": 4.9, "review_score": 4.8, "review_count": 12 },
  "supplier": {
    "id": 200016282,
    "name": "Shenzhen Highstar Electrical Co., Ltd.",
    "country_code": "CN",
    "years_on_alibaba": 16,
    "is_gold_supplier": true,
    "is_verified_pro": false
  }
}
```

Every run also pushes one `report` row (pagination/total count) before the results. A failed run pushes `{"success": false, "error_type": "...", "error": "..."}` instead of fabricated data.

### ✅ Why it's reliable

Reads Alibaba's own search/detail/review pages directly — not a cached third-party mirror. 10 of the 11 operations are plain HTTP and return live data in seconds; only supplier search needs a real browser page load (Alibaba gates that one endpoint behind a fingerprint check), which this Actor handles automatically. Blocked/rate-limited responses come back as a distinct, labelled error — never silently empty or fabricated data.

### 🆚 How this compares

| | Typical Alibaba actors | This Actor |
|---|---|---|
| Product search + detail | ✅ | ✅ |
| Product reviews | ❌ | ✅ |
| Supplier profile, catalog & reviews | ❌ or partial | ✅ full coverage |
| Image search | ❌ | ✅ |
| Autocomplete / trending / categories | ❌ | ✅ |
| Operations in one actor | 1-2 | **11** |

### 🚀 How to use

1. Open the Actor, pick an `operation`, fill in the relevant fields.
2. Click **Start**.
3. Export results as JSON/CSV/Excel, or pull them via the API.

### 💰 Cost

Pay-per-result, no subscription.

### 🔌 Integrations

- **Zapier / Make / n8n** — feed a weekly supplier price-check into your sourcing workflow.
- **API** — call this Actor directly with the Apify API client or plain REST.

### 👤 About the developer

Built and maintained by an indie developer running a suite of global business-data Actors (Singapore company/property registries, US business registry, SEC EDGAR, Google Hotels/Flights). Need a 12th operation or a specific field added? Reach out.

### ❓ FAQ

**Q: Do I need an Alibaba account or API key?** No — every operation works anonymously.

**Q: Why is supplier search slower than product search?** It's the one endpoint Alibaba gates behind a real-browser fingerprint check (a slider captcha that only a genuine page load passes); every other operation is plain HTTP and much faster.

**Q: Can results be missing fields?** Alibaba's page layout varies slightly by product/supplier type — optional fields (e.g. certifications) come back empty rather than guessed.

# Actor input Schema

## `operation` (type: `string`):

Which Alibaba.com data to pull this run.

## `query` (type: `string`):

Keyword for productSearch, supplierSearch, supplierProducts (optional) or autocomplete.

## `productId` (type: `string`):

Numeric Alibaba product id, for productDetail / productReviews.

## `productUrl` (type: `string`):

Full alibaba.com product-detail URL, alternative to productId.

## `supplierId` (type: `string`):

Numeric Alibaba supplier/company id, for supplierDetail / supplierProducts / supplierReviews.

## `supplierUrl` (type: `string`):

Full \*.en.alibaba.com storefront URL, alternative to supplierId.

## `imageUrl` (type: `string`):

Image URL to reverse-search, for imageSearch.

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

Alibaba category id, for productSearch by category or imageSearch.

## `parentCategoryId` (type: `string`):

Leave empty for the top-level category tree, or set to get one category's children (categories operation).

## `page` (type: `integer`):

1-100. Each page is 48 results for products, 20 for suppliers.

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

best_match/orders/response_rate for productSearch; newest for supplierProducts.

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

ISO currency code for prices, e.g. USD, EUR. Leave blank for the site default.

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

Lower bound of the product price range. productSearch only.

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

Upper bound of the product price range. productSearch only.

## `minMoq` (type: `integer`):

Lower bound of the minimum order quantity filter. productSearch only.

## `maxMoq` (type: `integer`):

Upper bound of the minimum order quantity filter. productSearch only.

## `minReviewScore` (type: `string`):

productSearch only.

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

2-letter country code, e.g. CN, IN, US.

## `tradeAssurance` (type: `boolean`):

Only suppliers/products covered by Alibaba's Trade Assurance. productSearch/supplierSearch.

## `verifiedSupplier` (type: `boolean`):

Only third-party-verified suppliers. productSearch/supplierSearch.

## `verifiedPro` (type: `boolean`):

Only Verified Pro suppliers (Alibaba's higher verification tier). productSearch/supplierSearch.

## `alibabaGuaranteed` (type: `boolean`):

Only products covered by Alibaba Guaranteed. productSearch only.

## `freeSample` (type: `boolean`):

Only products offering a free sample. productSearch only.

## `shipsFrom` (type: `string`):

Only products shipping from this region. productSearch only.

## `deliveryDays` (type: `integer`):

Maximum delivery time in days. productSearch only.

## `supplierCertifications` (type: `array`):

e.g. \["ISO9001", "BSCI"].

## `productCertifications` (type: `array`):

e.g. \["CE", "RoHS"]. productSearch only.

## `limit` (type: `integer`):

1-20. For autocomplete / trending.

## Actor input object example

```json
{
  "operation": "productSearch",
  "query": "bluetooth speaker",
  "page": 1,
  "sortBy": "best_match",
  "tradeAssurance": false,
  "verifiedSupplier": false,
  "verifiedPro": false,
  "alibabaGuaranteed": false,
  "freeSample": false,
  "shipsFrom": "any",
  "limit": 10
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("inexhaustible_glass/alibaba-product-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("inexhaustible_glass/alibaba-product-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 '{}' |
apify call inexhaustible_glass/alibaba-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,inexhaustible_glass/alibaba-product-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/ehzNlVIJfsueuTb2S/builds/HIqVi9vJKIMm1d1GF/openapi.json
