# Alibaba Scraper (`fastdataapi/alibaba-scraper`) Actor

Alibaba Scraper — Extract Alibaba product data including product names, prices, suppliers, minimum order quantities, ratings, reviews, images, specifications, locations, and product URLs. Useful for supplier research, product sourcing, price comparison, competitor analysis, and e-commerce insights.

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

## Pricing

from $3.34 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Scraper — Product Titles, Prices, MOQ and Supplier Data

Alibaba Scraper pulls product cards straight from Alibaba.com search results for any keyword or category link. Each row carries the **product title**, price, minimum order, supplier name and country, Gold Supplier years, review score and units sold. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a supplier comparison pipeline. No Alibaba account or cookies are needed to run it. Start with one search link, then add the rest of your sourcing list.

![Alibaba Scraper output: price, minimum order, supplier details and review score as JSON](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-alibaba-hero.webp)

***

### What data can I extract with Alibaba Scraper?

Using this Alibaba product search API, you will be able to extract the following Alibaba product data:

| | | | |
|---|---|---|---|
| 🏷️ Product title | 💲 Price (range) | 📦 Minimum order quantity | 🔗 Product page link |
| 🖼️ Main product image | 🎞️ Extra product images | 🏢 Supplier company name | 🌍 Supplier country |
| 🥇 Gold Supplier years | 🌟 Supplier star level | 🧭 Supplier profile link | 🏪 Supplier storefront link |
| ⭐ Average review score | 💬 Review count | 📊 Product score | 🚚 Shipping score |
| 🤝 Supplier service rating | 🔢 Supplier service score | 🛒 Units sold | 🎖️ Certifications |
| 🏅 Badges | 💡 Selling points | 👑 Crown (top-ranked) mark | 📣 Sponsored listing flag |

***

### How to use Alibaba Scraper

Anyone sourcing products on Alibaba can run this actor to pull structured product data from one or many search links in a single call.

**Copy to your AI assistant:**

```text
Alibaba Scraper (Apify Actor ID: fastdataapi/alibaba-scraper, https://apify.com/fastdataapi/alibaba-scraper) is an Apify Actor that returns Alibaba.com product search results as structured JSON: product title, price, minimum order quantity, supplier name and country, Gold Supplier years, review score and units sold. Use it whenever someone needs Alibaba product data without cookies, a login, or a browser - supplier comparisons, price monitoring across a sourcing list, or building a supplier shortlist from a saved search. Inputs: urls (array of Alibaba search result links, keyword or category, required), maxItems (integer, products to collect per search link, 1-100000, default 10), maxPages (integer, page cap per search link, 0-5000, default 0 = no extra limit), proxyConfiguration (object, residential proxy recommended, on by default). Alibaba shows at most about 100 result pages per search, so a narrow search can return fewer products than asked for. Each run also saves a per-link summary (status, result count, pages fetched, products saved) to the key-value store. Full input schema and the complete output field list are visible in the actor's Input and Output tabs in Apify Console.
```

#### Alibaba Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Apify's MCP server and it can call this actor directly from Claude, Cursor or any MCP-aware client, with no scraping logic written into your prompts. The server starts with this actor already registered as a tool, so there is no search-and-add step. Register the server once, and every compatible client on that machine can call it like any other tool, right alongside your other automations.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/alibaba-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. [Open the actor in the Apify Store](https://apify.com/fastdataapi/alibaba-scraper).
3. Paste your Alibaba search link or links, and set how many products to collect per link.
4. Click **Start**.
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale Alibaba Scraper to bulk

Paste every Alibaba search link you want covered into the same run, one per line, and set Max Items once — it applies separately to each link, not to the whole run. A sourcing list of fifty keywords becomes one run with fifty search links, each with its own entry in the run summary and its own product count. A product that shows up under more than one link is only ever saved and charged once. For a recurring sourcing watch, schedule the same input on a timer, or call the Apify API from a script that swaps in a fresh batch of search links each time it runs.

***

### ✨ Features

Alibaba Scraper is an alibaba product scraper that fetches clean, structured product cards from Alibaba.com search results ⚡ and returns the same alibaba wholesale product data on every run. It's ideal for supplier vetting, price monitoring across a sourcing list, market research on a product category, and building a shortlist before reaching out to suppliers.

It extracts, per product:

- **Title** – the product name as shown in the search results
- **Price** – the price or price range Alibaba shows for your connection's country
- **Minimum order quantity** – the smallest order size the supplier accepts
- **Supplier name and country** – who sells it and where they are based
- **Gold Supplier years and star level** – how long and how well-rated the supplier is
- **Review score, review count and units sold** – a sense of demand and trust
- **Main and extra images** – every product photo shown on the card

⚡ Opens only the result pages a search actually needs to reach your target, so a small request finishes in seconds.

***

### Use cases 💡

- **Sourcing agent** — runs it as an alibaba supplier scraper to shortlist by Gold Supplier years.
- **E-commerce seller** — compare minimum order quantity and price across near-identical listings.
- **Price analyst** — uses it as an alibaba price scraper to track ranges over time.
- **Dropshipper** — pull product images and pricing straight into a catalog feed.
- **AI agent builder** — feed product cards into a RAG pipeline that ranks suppliers automatically.

Building an AI agent? [Connect over MCP](#alibaba-scraper-mcp-server-use-these-actors-from-chatgpt-claude-or-cursor) and let it call the actor on its own.

***

### Why choose this actor?

- **Nothing invented when Alibaba leaves a field out.** A live check of 48 real product cards found 32 with no units-sold figure at all; this actor returns `null` for every one of them instead of a fake zero or empty string.
- **Only the pages a search actually needs.** The first result page reports the real page count before any other page is opened, and a live check today found Alibaba capping a broad search at 100 result pages, so the actor never opens pages that do not exist.
- **38 product fields, one Actor.** Title, price, minimum order, supplier identity and ratings, images, badges and certifications all come back on the same row, in the same shape, every run.

***

### ⬇️ Input

![Alibaba Scraper input form with search URLs, max items and max pages](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-alibaba-input.webp)

This actor works as a bulk alibaba listings scraper: it accepts one or more Alibaba search result links, and `urls` is the only required field.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| `urls` | Yes | array | Alibaba search result links (keyword or category), one per line. Plain strings or `{"url": "..."}` objects. | `"https://www.alibaba.com/trade/search?keywords=bluetooth+speaker"` |
| `maxItems` | No | integer | Products to collect per search link. 1–100000, default 10. | `50` |
| `maxPages` | No | integer | Page cap per search link. 0 = no extra limit (default), 1–5000 otherwise. | `0` |
| `proxyConfiguration` | No | object | Apify Proxy configuration. Residential is prefilled and recommended. | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |

#### Free plan limits

Users on the Apify free plan can fetch up to 20 products per run (all search URLs together) and 200 products per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

#### Example input

```json
{
  "urls": [
    "https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&keywords=bluetooth+speaker",
    "https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&categoryId=127734135&keywords=Men%27s+Jackets"
  ],
  "maxItems": 50,
  "maxPages": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### ⬆️ Output

![Alibaba Scraper output fields: price, moq, companyName and soldOrder](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-alibaba-output.webp)

Every product is one typed, normalized JSON item with the same field names on every run. Download or export alibaba products to CSV, or pull them as JSON or Excel, directly from the dataset. Each run also writes a short per-link run summary (status, result count, pages fetched, products saved) to the key-value store.

#### Example output

```json
{
  "title": "Men's Winter Warm Jacket Waterproof Outdoor Coat",
  "price": "$9.40-12.50",
  "moq": "Min. order: 2 pieces",
  "moqV2": "2 pieces",
  "productUrl": "https://www.alibaba.com/product-detail/example_1600981574830.html",
  "productId": "1600981574830",
  "id": 1600981574830,
  "mainImage": "https://sc04.alicdn.com/kf/product.jpg",
  "multiImage": ["https://sc04.alicdn.com/kf/1.jpg", "https://sc04.alicdn.com/kf/2.jpg"],
  "companyName": "Guangzhou Apparel Co., Ltd.",
  "companyId": "100012345",
  "countryCode": "CN",
  "goldSupplierYears": "5 yrs",
  "displayStarLevel": "4",
  "reviewScore": "4.2",
  "reviewCount": "235",
  "soldOrder": null,
  "productScore": "",
  "shippingScore": "4.6",
  "supplierService": "4.5",
  "supplierServiceScore": "4.5",
  "supplierHref": "https://www.alibaba.com/company_profile.html?id=100012345",
  "supplierHomeHref": "https://guangzhouapparel.en.alibaba.com/",
  "badges": [],
  "certifications": [],
  "loopSellingPoints": [],
  "showCrown": false,
  "isShowAd": false
}
```

***

### How does it work?

As an alibaba search results scraper, Alibaba Scraper opens Alibaba's public search pages the same way a visitor's own browser would, without logging in or needing your account. It connects directly first, and switches to a residential proxy automatically if Alibaba starts blocking the connection, so a run keeps going instead of failing outright. The first result page tells the actor the real page count and result count, so it only opens the extra pages it actually needs to reach your target, and it stops as soon as it has collected enough. Every product card is mapped into the same normalized output fields on every run, so the schema stays stable even after Alibaba changes its page layout. The actor returns only what is publicly visible on the search results page — nothing that needs a login or a private account to see.

***

### How do you integrate Alibaba Scraper into your stack?

Alibaba Scraper works with what you already use: a REST API from any language, MCP for AI agents, and no-code automation tools.

#### MCP integration for AI agents

Register Apify's MCP server once and any compatible AI agent can call it directly, without scraping code in your prompts:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/alibaba-scraper"
```

This registers the actor as a tool your agent can call directly, right alongside your other Apify Actors. Claude Code, Cursor and Windsurf all support this transport out of the box, so the same command works across tools. Point your agent at a sourcing task and let it decide when to call the actor and with which search link.

#### No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node's "Run an Actor" operation, or an HTTP Request node pointed at the run-sync endpoint with your Apify token. In Make, the Apify app's "Run an Actor" module followed by "Get Dataset Items" does the same job without code. In LangChain, the `langchain-apify` package wraps any Apify Actor, including this one, as a callable tool.

***

### Is it legal to scrape Alibaba data?

Teams that scrape alibaba products for sourcing or price research are generally on solid legal ground: scraping publicly available web data is lawful in most jurisdictions when no login or account access is required to view it. This actor returns only publicly available data — the same product cards any visitor sees on a search results page without logging in. Under GDPR and similar laws, scraping public data is generally permissible, but storing and using any personal data within it must still comply with local data-protection law. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does Alibaba Scraper return?

As an alibaba product data extractor, it returns the product title, price, minimum order quantity, supplier name and country, and review score, plus 30+ other fields. See [the data fields section](#what-data-can-i-extract-with-alibaba-scraper) above for the full list.

#### Does Alibaba Scraper require an Alibaba account or login?

No. Only public product search data is extracted, and no credentials are needed to run it.

#### What happens if a product is private or doesn't exist?

Alibaba's search results never link to private listings, so this does not come up for product data itself. A link that is not an Alibaba product search link (a product page, a storefront, or any other page) is skipped before any request is made, logged with the reason, and never counted or charged.

#### Can I scrape multiple Alibaba search results at once?

Yes. The `urls` input takes an array, so you can paste as many Alibaba search links as you want into one run; each one collects its own Max Items products, tracked separately in the run summary.

#### Does Alibaba Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — Alibaba Scraper is available as an MCP tool. Run `claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/alibaba-scraper"` to register it in Claude Code, Cursor or Windsurf. Any agent that can call an HTTP endpoint can also use the REST API directly.

#### Does Alibaba Scraper return data in a format LLMs can use directly?

Yes. Every response is typed, normalized JSON with consistent field names. There is no HTML to parse and no selectors to maintain — pass the response straight to an LLM, index it into a vector store, or feed it to an agent tool with no transformation step.

#### What happens when Alibaba changes its layout or updates its anti-bot system?

This actor is maintained to track that. When Alibaba changes its page layout or tightens its anti-bot checks, the actor is updated to match — your calls keep returning the same JSON schema with no changes required on your end.

#### Can I use Alibaba Scraper without managing proxies or browser infrastructure?

Yes. Proxy rotation and the browser session used to reach Alibaba both run on the actor's side. You send one request and get structured JSON back — no proxy accounts, no headless browser setup, no maintenance on your end.

#### Which Alibaba product fields work best for AI training data and RAG indexing?

For RAG indexing, the product title, supplier name and selling points give the richest text context. For training data, price, review score, review count and units sold are the most consistent numeric fields across listings. All fields are typed primitives — strings, numbers, booleans — so no extra normalization is needed.

***

### Your feedback

Found a bug or a field that is missing data it should have? Open an issue on the actor's Issues tab in Apify Console with the search link you used and what you expected back. Every report gets read, and fixes ship as updates to this same actor, so your existing input and automations keep working.

# Actor input Schema

## `urls` (type: `array`):

Add every Alibaba product search you want to collect from, one URL per line.

Works with search result links: alibaba.com/trade/search?... with keywords or a category. Other links are skipped and listed in the log.

Tip: search on Alibaba in your browser, apply your filters, then copy the address bar — the filters travel with the link. Plain strings and { "url": "..." } objects are both accepted.

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

Number of products to save per search URL (a product count, not a page count). Free plan: up to 20 products per run (all search URLs together) and 200 per month; paid plans have no limit.

The first result page shows how many products a page holds (about 48), so only the pages needed for this number are opened. Duplicate products are saved once per run and never charged twice. Alibaba shows at most about 100 result pages per search, so a very high value can still return fewer products than asked for a narrow search.

Example: 50 collects 50 products from that URL. Try 10–50 first, then raise. Default is 10.

## `maxPages` (type: `integer`):

Upper limit on the result pages opened per URL.

0 (default) means no extra limit: pages are opened until Max Items is reached or the search runs out of pages (Alibaba shows at most about 100 pages per search). A positive value stops each URL after that many pages, even when Max Items is not reached yet. Example: 3 opens at most pages 1–3 of each URL.

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

With a proxy selected, every request goes through it and each blocked connection is retried on a fresh IP. With the proxy off, the run starts on a direct connection and switches to the Apify US residential proxy automatically if Alibaba starts blocking.

## Actor input object example

```json
{
  "urls": [
    "https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&categoryId=127734135&has4Tab=true&keywords=Men%27s+Jackets&originKeywords=Men%27s+Jackets&productId=1600981574830&tab=all&&page=1&spm=undefined.pagination.0"
  ],
  "maxItems": 10,
  "maxPages": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

All collected products, one row per product.

## `summary` (type: `string`):

Per-URL status, result counts and pages, saved to the key-value store under the OUTPUT key.

# 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 = {
    "urls": [
        "https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&categoryId=127734135&has4Tab=true&keywords=Men%27s+Jackets&originKeywords=Men%27s+Jackets&productId=1600981574830&tab=all&&page=1&spm=undefined.pagination.0"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/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 = {
    "urls": ["https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&categoryId=127734135&has4Tab=true&keywords=Men%27s+Jackets&originKeywords=Men%27s+Jackets&productId=1600981574830&tab=all&&page=1&spm=undefined.pagination.0"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/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 '{
  "urls": [
    "https://www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&categoryId=127734135&has4Tab=true&keywords=Men%27s+Jackets&originKeywords=Men%27s+Jackets&productId=1600981574830&tab=all&&page=1&spm=undefined.pagination.0"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call fastdataapi/alibaba-scraper --silent --output-dataset

```

## MCP server setup

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