# AliExpress Products Scraper - Prices, Ratings & Order Counts (`convertfleetdotonline/aliexpress-products-scraper`) Actor

Scrapes AliExpress search results and category pages for any keyword. Each product record includes title, product URL, image URL, price, rating, review count, orders sold, store name and shipping details. Built for dropshippers and ecommerce teams doing product and competitor research.

- **URL**: https://apify.com/convertfleetdotonline/aliexpress-products-scraper.md
- **Developed by:** [Hasnain Nisar](https://apify.com/convertfleetdotonline) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## AliExpress Products Scraper

**Scrape AliExpress search results** to find best-selling products. Get prices, ratings, reviews, and order counts — all the data you need for dropshipping product research, price monitoring, and market analysis.

### What it does

Give it search keywords (or AliExpress URLs) and it extracts structured product data straight from AliExpress search results:

- 💵 Current price, original price, and discount percentage
- ⭐ Star rating and review count
- 🔥 Number of orders / units sold — sort by best-selling to find winning products
- 🏷️ Promotional tags (free shipping, deals, coupons)
- 🖼️ Product image, product URL, and store details

### Use cases

| Who | How |
|-----|-----|
| 📦 Dropshippers | Sort by most orders to find products with proven demand |
| 🏷️ Resellers | Compare supplier prices and source at the lowest cost |
| 💰 Price monitoring | Track current vs. original prices and discount patterns |
| 📊 Market researchers | Analyze niches, trends, and competitor keywords |

### Input

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `searchQueries` | array | yes* | Search keywords, one per line |
| `productUrls` | array | yes* | AliExpress product pages (`/item/….html`) or search/category pages (`/w/wholesale-….html`) |
| `maxProducts` | integer | no | Max products per query (default `100`, max `1000`) |
| `sortBy` | string | no | `default`, `price_asc`, `price_desc`, or `orders` (best selling) |
| `proxyConfiguration` | object | no | Apify proxy settings — residential US recommended |

\* Provide at least one of `searchQueries` or `productUrls`.

#### Example input

```json
{
    "searchQueries": ["wireless earbuds", "phone holder"],
    "maxProducts": 100,
    "sortBy": "orders"
}
````

### Output

One dataset item per product:

```json
{
    "productId": "3256811621288203",
    "title": "Pro 3 Bluetooth Noise Cancelling Wireless Earphones",
    "productUrl": "https://www.aliexpress.com/item/3256811621288203.html",
    "imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Se8d10822ef0740c5987a3ba1522f6e77Z.png",
    "priceCurrent": "US $16.89",
    "priceValue": 16.89,
    "priceOriginal": "US $50.67",
    "priceOriginalValue": 50.67,
    "currency": "USD",
    "priceDiscount": 66,
    "ratingValue": 4.9,
    "reviewCount": null,
    "soldCount": 3000,
    "soldText": "3,000+ sold",
    "tags": "New shoppers save $33.78 | Free shipping",
    "storeName": null,
    "searchQuery": "wireless earbuds",
    "scrapedAt": "2026-07-20T12:00:00.000Z"
}
```

Notes:

- `soldCount` is parsed from AliExpress's "3,000+ sold" label, so it is a lower bound.
- `reviewCount` is only available on product detail pages — pass product URLs via `productUrls` to get it. Search result pages expose the star rating but not the review count.
- Prices are normalized to **USD / English** regardless of proxy location.

### Tips

- Use `sortBy: "orders"` to surface best sellers with proven demand.
- Each search page returns ~60 products; `maxProducts: 300` ≈ 5 page fetches per query.
- Residential proxies give the highest success rate. The actor automatically falls back to datacenter proxy if residential is not available on your plan.

### Export

Download your results from the dataset in JSON, CSV, Excel, XML, or RSS — or connect via the Apify API.

### FAQ

**Does it need an AliExpress account or API key?**
No. It reads public search-result and product pages — no login, no API key.

**How do I find best-selling products?**
Set `sortBy` to `orders`. Products are returned with `soldCount`, so you can filter by proven demand (e.g. 1,000+ sold).

**Why is `reviewCount` empty for some rows?**
Search pages expose the star rating but not the review count. Pass product URLs in `productUrls` to get review counts from detail pages.

**Are prices in USD?**
Yes — results are normalized to USD/English regardless of proxy location, so runs are comparable over time.

**How many products can one run return?**
Up to `maxProducts` per query (max 1,000). Each search page holds ~60 products.

**How do I export the data?**
JSON, CSV, Excel, XML or RSS from the dataset tab, or via the Apify API.

# Actor input Schema

## `searchQueries` (type: `array`):

List of search keywords to find products on AliExpress. One query per line. Required if Product URLs are not provided.

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

AliExpress URLs to scrape directly — product pages (https://www.aliexpress.com/item/....html) or search/category listing pages (/w/wholesale-....html). Required if Search Queries are not provided.

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

Maximum number of products to scrape per search query or listing URL.

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

Sort order for search results. Use "Best Selling" to find winning products with the most orders.

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

Proxy to use. Residential proxy with US country is recommended for consistent English listings and USD prices. Falls back to datacenter proxy automatically if residential is not available on your plan.

## Actor input object example

```json
{
  "searchQueries": [
    "wireless earbuds"
  ],
  "maxProducts": 100,
  "sortBy": "default",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "searchQueries": [
        "wireless earbuds"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("convertfleetdotonline/aliexpress-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 = { "searchQueries": ["wireless earbuds"] }

# Run the Actor and wait for it to finish
run = client.actor("convertfleetdotonline/aliexpress-products-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 '{
  "searchQueries": [
    "wireless earbuds"
  ]
}' |
apify call convertfleetdotonline/aliexpress-products-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AliExpress Products Scraper - Prices, Ratings & Order Counts",
        "description": "Scrapes AliExpress search results and category pages for any keyword. Each product record includes title, product URL, image URL, price, rating, review count, orders sold, store name and shipping details. Built for dropshippers and ecommerce teams doing product and competitor research.",
        "version": "0.1",
        "x-build-id": "VruVbpni1KlHc4E1g"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/convertfleetdotonline~aliexpress-products-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-convertfleetdotonline-aliexpress-products-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/convertfleetdotonline~aliexpress-products-scraper/runs": {
            "post": {
                "operationId": "runs-sync-convertfleetdotonline-aliexpress-products-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/convertfleetdotonline~aliexpress-products-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-convertfleetdotonline-aliexpress-products-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "List of search keywords to find products on AliExpress. One query per line. Required if Product URLs are not provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "productUrls": {
                        "title": "Product URLs",
                        "type": "array",
                        "description": "AliExpress URLs to scrape directly — product pages (https://www.aliexpress.com/item/....html) or search/category listing pages (/w/wholesale-....html). Required if Search Queries are not provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxProducts": {
                        "title": "Max Products per Query",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of products to scrape per search query or listing URL.",
                        "default": 100
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "default",
                            "price_asc",
                            "price_desc",
                            "orders"
                        ],
                        "type": "string",
                        "description": "Sort order for search results. Use \"Best Selling\" to find winning products with the most orders.",
                        "default": "default"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy to use. Residential proxy with US country is recommended for consistent English listings and USD prices. Falls back to datacenter proxy automatically if residential is not available on your plan.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
