# Alibaba Products Scraper - Prices, MOQ & Suppliers (`mina_safwat/alibaba-products-scraper`) Actor

Scrapes Alibaba.com search results and product pages: USD prices, volume price tiers, minimum order quantity, sold counts, supplier name, country, years and badges, with optional SKU variants, attributes and lead times from each product page.

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

## Pricing

$2.50 / 1,000 products

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

### What does Alibaba Products Scraper do?

**Alibaba Products Scraper** collects **product listings from [Alibaba.com](https://www.alibaba.com) searches and product pages**: **USD prices and volume price tiers, minimum order quantity (MOQ), units sold**, category, and the **supplier's name, country, years on Alibaba, staff size, response rate, rating, Gold, Verified and Verified PRO badges and export markets**. Turn on product details to also get every photo, the product video, all attributes, SKU variants, lead times and packaging size and weight.

Paste a search link from your browser, with any filters you set on Alibaba, and click **Start**. The prefilled example returns 48 yoga mats in about 5 seconds. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, Slack, webhooks), automatic proxy rotation and run monitoring.

### Why scrape Alibaba?

- **Supplier sourcing.** Shortlist manufacturers by price, MOQ, years in business, response rate, badges and the countries they already export to.
- **Price research.** Compare unit prices and volume tiers across hundreds of suppliers before you ask for quotes.
- **Market and product research.** See what sells (units sold), which categories a niche falls into, and how crowded a search is.
- **Competitor and catalog monitoring.** Schedule the same searches daily or weekly and track price and listing changes.
- **Lead lists for B2B sales.** Build lists of supplier companies by category and country.

### How to scrape Alibaba products

1. Search on [alibaba.com](https://www.alibaba.com) and set any filters you need (price range, minimum order, supplier country, Verified suppliers and so on).
2. Copy the link from your browser's address bar, for example `https://www.alibaba.com/trade/search?SearchText=yoga+mat&pricef=5&pricet=10`.
3. Paste it into **Alibaba search or product links**. Add as many searches or product pages as you like, one per line. Plain search words such as `led strip lights` work too.
4. Set **Max products per search**, and turn on **Add product page details** if you need attributes, variants and lead times.
5. Click **Start** and download the results when the run finishes.

**Filters in the link are kept.** Price range (`pricef`/`pricet`), MOQ range (`moqf`/`moqt`), supplier country (`Country=VN`), category (`categoryId`) and Alibaba's other search options travel with the link. Showroom pages (`/showroom/yoga-mat.html`), `/products/...html` pages and catalog pages (`..._cid201273273`) are read as the search they show.

### Input

Everything is set on the Input tab. In JSON, the input looks like this:

```json
{
    "startUrls": [
        "https://www.alibaba.com/trade/search?SearchText=yoga+mat&Country=VN",
        "https://www.alibaba.com/showroom/office-chair.html",
        "https://www.alibaba.com/product-detail/Custom-Print-Eco-Rubber-PU-Yoga_1601083790316.html"
    ],
    "maxResults": 200,
    "includeProductDetails": false
}
```

| Field | What it does |
|---|---|
| `startUrls` | Alibaba search links, showroom or catalog pages, product page links (`www.alibaba.com/product-detail/...`, `m.alibaba.com/product/...`, language sites and supplier stores), or plain search words. Links without `https://` and API objects such as `{"url": "..."}` are accepted. |
| `maxResults` | Stops after this many products for each search, in Alibaba's order. Default: 100, at most 960: Alibaba shows 48 products per page and 20 pages per search. |
| `includeProductDetails` | Opens each product's own page to add photos, video, attributes, variants, lead times, packaging and product rating. Default: off. Product links always include these details. |

### Output

Each product becomes one row. Here is a real search result, with its lists shortened:

```json
{
    "productId": "62547009798",
    "title": "Cheap Price Guangdong Office Furniture Factory Sillasgamer Ergonomic Mesh Ceo Desk Office Chair",
    "url": "https://www.alibaba.com/product-detail/Cheap-Price-Guangdong-Office-Furniture-Factory_62547009798.html",
    "priceRange": "US $19.90-$39.90",
    "priceMin": 19.9,
    "priceMax": 39.9,
    "currency": "USD",
    "minOrder": "1 piece",
    "minOrderQuantity": 1,
    "unit": "piece",
    "tieredPrices": [
        { "minQuantity": 1, "maxQuantity": 199, "price": 39.9 },
        { "minQuantity": 200, "maxQuantity": 499, "price": 29.9 },
        { "minQuantity": 500, "maxQuantity": null, "price": 19.9 }
    ],
    "soldCount": 856,
    "isAd": false,
    "imageUrl": "https://s.alicdn.com/@sc04/kf/Hf3b90e856f204716b1b6ae320c457b6fd.jpg",
    "hasVideo": true,
    "categoryId": "201715704",
    "categoryName": "Office Chairs",
    "supplierName": "Foshan Bonai Furniture Co., Ltd.",
    "supplierId": "248183959",
    "supplierUrl": "https://bonaichair.en.alibaba.com/",
    "supplierCountry": "China",
    "supplierCountryCode": "CN",
    "supplierYears": 7,
    "supplierEmployees": 130,
    "supplierMainProducts": ["Office Chair"],
    "supplierResponseRate": 99.3,
    "supplierRating": 4.9,
    "supplierReviewCount": 29,
    "goldSupplier": true,
    "verifiedSupplier": true,
    "verifiedProSupplier": false,
    "exportCountries": ["United States", "United Arab Emirates", "Armenia", "Australia"],
    "reviewTags": [{ "tag": "excellent service", "count": 3 }, { "tag": "good experience", "count": 1 }],
    "searchUrl": "https://www.alibaba.com/trade/search?SearchText=office+chair",
    "page": 1,
    "position": 34,
    "scrapedAt": "2026-10-11T07:48:01Z"
}
```

With **Add product page details** on (and for product links), each row also has these fields, here from another office chair:

```json
{
    "images": ["https://sc04.alicdn.com/kf/H207dfd59ff8c49d09926569e04feef776.jpg", "..."],
    "videoUrl": "https://gv.videocdn.alibaba.com/icbu_vod_video/video_target/gv96-e640c093-a18409ca-96335514-4614/trans/aidc/o8vgf0-h264-hd.mp4?bizCode=icbu_vod_video",
    "attributes": [{ "name": "place of origin", "value": "Zhejiang, China" }, { "name": "brand name", "value": "SITSTAR" }],
    "variants": [{ "skuId": "106847220048", "options": { "size": "FEDO-GMW-P-D*W*H:58.5*69*(101.5-113.5),Seat height:45.5-55", "color": "Gray" }, "price": null }],
    "leadTimes": [{ "minQuantity": 1, "maxQuantity": 500, "days": 35 }],
    "categoryPath": ["Furniture", "Commercial Furniture", "Office Furniture", "Office Chairs"],
    "productRating": 5,
    "productReviewCount": 20,
    "supplierBusinessType": "Manufacturer,Trading Company",
    "supplierResponseTime": "≤2h",
    "supplierOnTimeDeliveryRate": 100,
    "packageSizeCm": "76X34.5X64",
    "packageWeightKg": 32.5
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The Output tab has four views: **Products**, **Prices & MOQ**, **Suppliers** and **Product page details**.

### Data fields

| Field | Description |
|---|---|
| `productId` | Alibaba's product ID. |
| `title` | Product title. |
| `url` | Link to the product page. |
| `priceRange` | The price as Alibaba writes it, always in US dollars, such as `US $2.42-$15.12`. |
| `priceMin`, `priceMax` | Lowest and highest unit price in USD, as numbers. |
| `currency` | Always `USD`. |
| `minOrder` | Minimum order as shown, such as `50 pieces`. |
| `minOrderQuantity` | The minimum order as a number. |
| `unit` | The selling unit, such as `piece`, `set` or `meter`. |
| `tieredPrices` | Volume prices: `minQuantity`, `maxQuantity` (`null` means "and above") and USD `price`. Empty when the product has one price or prices by variant. |
| `soldCount` | Units sold, when Alibaba shows it. |
| `isAd` | `true` for sponsored listings. Empty for product links. |
| `imageUrl` | Full-size main image. |
| `hasVideo` | Whether the listing has a product video. |
| `categoryId`, `categoryName` | Alibaba's product category. |
| `supplierName`, `supplierId`, `supplierUrl` | The supplier company and its Alibaba store. |
| `supplierCountry`, `supplierCountryCode` | Where the supplier is based. Product links give only the code. |
| `supplierYears` | Years the supplier has been on Alibaba. |
| `supplierEmployees` | Staff count the supplier reports. Search results only. |
| `supplierMainProducts` | The supplier's main product lines. Search results only. |
| `supplierResponseRate` | Percent of messages the supplier answers. Search results only. |
| `supplierRating`, `supplierReviewCount` | The supplier's review score (out of 5) and review count, as shown next to the listing. |
| `goldSupplier` | Alibaba's Gold Supplier membership. |
| `verifiedSupplier` | The **Verified** badge shown on the listing, the one Alibaba's "Verified Supplier" filter selects. Search results only. |
| `verifiedProSupplier` | The rarer **Verified PRO** badge. Search results only. |
| `exportCountries` | Countries the supplier says it exports to. Search results only. |
| `reviewTags` | Buyer review highlights such as "fast delivery", with counts. Search results only. |
| `searchUrl`, `page`, `position` | The search the product came from, its results page and its rank in the whole search (page 2 starts at 49), also when the link starts on a later page. Empty for product links. |
| `scrapedAt` | When the product was collected, in UTC. |
| `images`, `videoUrl` | All product photos (full size) and the product video (MP4). Details only. |
| `attributes` | Every attribute on the product page, as `name` and `value`. Details only. |
| `variants` | Each SKU with its options (such as color and size) and its own USD price when the product prices variants separately. Details only. |
| `leadTimes` | Production time in days by order quantity. Details only. |
| `categoryPath` | The full category path. Details only. |
| `productRating`, `productReviewCount` | The product's own review score and count. Details only. |
| `supplierBusinessType`, `supplierResponseTime`, `supplierOnTimeDeliveryRate` | Manufacturer or trading company, typical reply time, and on-time delivery percent. Details only. |
| `packageSizeCm`, `packageWeightKg` | Size and gross weight of one shipping package. Details only. |

### How much does it cost to scrape Alibaba?

The Actor uses **pay-per-event** pricing: you pay for each product saved, and only for products saved. See the **Pricing** tab for the exact prices.

- Each product row is one **product** event.
- Rows saved with product page details (with **Add product page details** on, and every product link) also count one **product-details** event, because each needs its own ~350 KB page.

Searches that find nothing, links that are not Alibaba products, removed products and blocked pages are never saved or charged. If you set a maximum cost for a run, the Actor stops as soon as it is reached. Apify's free plan includes monthly credit you can use to try it.

### Tips for scraping Alibaba

- **Filter on Alibaba first.** Price range, MOQ and supplier-country filters in the link mean fewer, better products per run.
- **Alibaba shows at most 960 products per search** (20 pages of 48), so that is the most one search link gives. For more, split a search into several with different price ranges, countries or categories. Products found by more than one of your searches are saved once.
- **Leave product details off** unless you need attributes, variants or lead times. Search results already carry prices, tiers, MOQ and supplier data, and runs are much faster: about 1,000 products a minute.
- **Schedule runs** to track prices and new listings over time.
- **Prices are always in US dollars**, whatever country the request comes from.

### FAQ, disclaimers and support

**Which links work?** Alibaba.com searches (`/trade/search?...`, with `SearchText` or `keywords`, or a `categoryId`), showroom, `/products/` and catalog pages, and product pages on www.alibaba.com, m.alibaba.com, Alibaba's language sites and supplier stores. Plain search words work too. 1688.com and AliExpress are different sites and are not supported.

**What happens to links that give nothing?** They are not saved, so they are not charged. Each is listed with its reason (not an Alibaba link, no matching products, search in a non-Latin script, product no longer available, page could not be loaded) in the `FAILED_INPUTS` record of the run's key-value store, and the status message gives the counts. A run fails only when every link could not be loaded. Products saved without their page details, and searches that stopped early, are listed there too.

**Why do some searches return "no matching products"?** When nothing matches, Alibaba fills the page with loosely similar items (a search for random letters returns electronic parts). The Actor recognizes this and saves nothing instead of charging you for unrelated products. Misspellings that Alibaba corrects, such as "sneekers", and searches in Latin-script languages, such as "tapis de yoga", still return results.

**Can I search in Chinese, Russian, Japanese or Arabic?** No, searches in non-Latin scripts are not supported. Alibaba does not translate them and shows random products instead, so a search written only in another script, such as "手机" or "ノートパソコン", saves nothing and is listed in `FAILED_INPUTS` with the reason "searches in non-Latin scripts are not supported — use English words". Search in English instead, such as "mobile phone" or "laptop".

**Is it legal to scrape Alibaba?** This Actor reads public product listings that suppliers publish so buyers can find them, without logging in. It saves company and product data, not the names or contact details of the people behind the stores. Alibaba's robots.txt asks crawlers to stay out of search pages. You are responsible for making sure your use complies with Alibaba's terms and with the laws that apply to you, such as database and copyright rules for republishing listings. If in doubt, ask a lawyer.

**Found a problem or need a custom solution?** Open an issue on the **Issues** tab and we will look into it. Custom Alibaba data feeds (supplier profiles, reviews, other marketplaces) are available on request.

# Actor input Schema

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

One per line. Paste a search from alibaba.com (search, set any filters such as price, MOQ or supplier country, then copy the address bar), a showroom page such as https://www.alibaba.com/showroom/yoga-mat.html, or a product page such as https://www.alibaba.com/product-detail/...\_1601083790316.html. You can also type plain search words, such as led strip lights. Links that are not Alibaba searches or products are listed in the FAILED_INPUTS record.

## `maxResults` (type: `integer`):

Stops after this many products for each search link, in Alibaba's order. Alibaba shows 48 products per page and at most 20 pages, so one search gives up to 960 products; for more, split it into several searches (by price range, supplier country or category). Product links always give one product.

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

Also opens each product's own page to add every photo, the video, all attributes (material, size, brand...), SKU variants with their prices, lead times by quantity, packaging size and weight, and product rating. Slower, and billed as a product-details event on top of each product. Product links always include these details.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.alibaba.com/trade/search?SearchText=yoga+mat"
  ],
  "maxResults": 48,
  "includeProductDetails": false
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrls": [
        "https://www.alibaba.com/trade/search?SearchText=yoga+mat"
    ],
    "maxResults": 48
};

// Run the Actor and wait for it to finish
const run = await client.actor("mina_safwat/alibaba-products-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 = {
    "startUrls": ["https://www.alibaba.com/trade/search?SearchText=yoga+mat"],
    "maxResults": 48,
}

# Run the Actor and wait for it to finish
run = client.actor("mina_safwat/alibaba-products-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 '{
  "startUrls": [
    "https://www.alibaba.com/trade/search?SearchText=yoga+mat"
  ],
  "maxResults": 48
}' |
apify call mina_safwat/alibaba-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mina_safwat/alibaba-products-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/SVdQa3Q39DET6Blge/builds/13Xzf23iG8jOFsUd3/openapi.json
