# AliExpress Scraper: Products, Prices, Orders Sold & Reviews (`zaiq/aliexpress-scraper`) Actor

AliExpress search results as a shopper in your country sees them: price, discount, orders sold, rating, images, ship-from, listing date, sponsored and Choice flags, in any currency; plus buyer reviews with text, English translation and photos, and each product's star breakdown. No login.

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

## Pricing

from $4.80 / 1,000 search results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## AliExpress Scraper: products, prices, orders sold, ratings and reviews

![AliExpress Scraper: Products, Prices, Orders Sold & Reviews](https://api.apify.com/v2/key-value-stores/4VJNANhwKgqPpXtAi/records/hero-aliexpress-scraper.jpg)

Get **AliExpress search results as a shopper in your country sees them**: **price**, **original price and discount**, **orders sold**, **rating**, images, **ship-from country**, **listing date**, **sponsored** and **Choice** flags, free-shipping and deal tags, category ids and rank, for any keyword or AliExpress search link, **sorted by best match, most orders or price**, in **any ship-to country and currency**.

Add **buyer reviews** for any product, with the text, **AliExpress's English translation**, photos, the variant bought, buyer country and date, and each product's **star breakdown**, **positive-review share** and **review highlights** (what buyers mention most). Built for **dropshipping product research**, **price monitoring** and **market research**. No account, no API key, no browser.

### What you get

| Field | What it holds |
|---|---|
| Search result rows | `productId`, `title`, `price`, `originalPrice`, `discountPercent`, `currency`, `priceText`, `sold`, `soldText`, `rating`, `sponsored`, `choice`, `freeShipping`, `tags`, `shipFrom`, `listedOn`, `categoryIds`, `image`, `images`, `url`, `search`, `rank`, `shipTo` |
| Rating summary rows (free) | `productId`, `rating`, `reviewCount`, `ratingBreakdown` (5 to 1 stars), `positiveReviewPercent`, `withPhotos`, `reviewHighlights` (e.g. 'good quality', mentioned 199 times) |
| Review rows | `stars`, `text`, `translation` (English), `date`, `variant` bought, `buyerName` (as AliExpress masks it), `buyerCountry`, `photos`, `helpful` votes, `shipping` method used, `additionalReview` |

### What people use it for

- **Dropshipping product research:** sort a niche by **Most orders** to see proven sellers, their prices and ratings
- **Price monitoring:** schedule a daily search and track prices and discounts of the products you sell
- **Review mining:** pull written reviews with photos and English translations to see what buyers love or complain about
- **Supplier shortlists:** compare similar products by orders sold, rating, discount and ship-from country
- **Market research:** see what sells and at what price in any country, in its currency
- **Catalog and AI datasets:** clean, consistent product and review rows

### How to use it

1. Add **searches** (or paste AliExpress search links with their filters), and choose the **sort** and how many **results per search**.
2. For reviews, add **product links or ids**, or turn on **Reviews for every search result**, and set **Reviews per product**.
3. Pick the **ship-to country** and **currency**, then click **Start**. Download the rows as JSON, CSV or Excel, or schedule the run.

### Input

| Field | Example | Notes |
|---|---|---|
| Searches | `wireless earbuds` | Or AliExpress search links (aliexpress.com/w/wholesale-...) |
| Results per search | `60` | 60 a page, up to 3,000 per search |
| Sort | Most orders | Best match, Most orders, Price low-high, Price high-low |
| Skip sponsored results | off | Ads are flagged either way |
| Products (for reviews) | `https://www.aliexpress.com/item/1005006852821618.html` | Links or product ids |
| Reviews for every search result | off | Star breakdown and reviews of each result |
| Reviews per product | `20` | 0 = only the free star breakdown |
| Which reviews | With written text | With text, with photos, or all |
| Ship to | `DE` | Two-letter country code |
| Currency | `EUR` | Three-letter currency code |

### Output

Each result is one row in the run's dataset (download it as JSON, CSV, Excel, XML or HTML, or read it through the API). An example row (values shortened):

```json
{
  "kind": "search-result",
  "productId": "1005006852821618",
  "title": "LED Camping Lantern, USB Rechargeable, 3 Light Modes",
  "price": 3.65,
  "originalPrice": 9.12,
  "discountPercent": 60,
  "currency": "EUR",
  "priceText": "3,65€",
  "sold": 163,
  "soldText": "163 sold",
  "rating": 4.6,
  "sponsored": false,
  "choice": true,
  "freeShipping": false,
  "tags": [
    "Free shipping over 10,00€"
  ],
  "shipFrom": "CN",
  "listedOn": "2024-06-11",
  "image": "https://ae-pic-a1.aliexpress-media.com/kf/S0000000000000000000000000000000.jpg",
  "url": "https://www.aliexpress.com/item/1005006852821618.html",
  "search": "camping lantern",
  "rank": 3,
  "shipTo": "DE"
}
```

A record named `SUMMARY` in the run's key-value store says what each input returned, with any notes (for example an account that does not exist), what was charged and how much traffic the run used.

### Pricing

- **$0.006 per search result** (each product listed in AliExpress search)
- **$0.003 per review**
- Each product's **rating summary** (star breakdown, positive share, highlights) is free with its reviews
- Pages AliExpress refused are free

What typical jobs cost at the list price:

| Job | Cost |
|---|---|
| One page of search results (60 products) | $0.36 |
| Top 500 best sellers of a niche | $3.00 |
| 20 written reviews of one product | $0.06 |
| 60 search results + 20 reviews each | $3.96 |
| Daily price check of a 60-product search, for a month | $10.80 |

On Apify's Scale and Business plans the per-event prices are lower (Store discounts). Set **Maximum cost per run** and the Actor stops cleanly when it is reached: you never pay more than that.

### Tips

- Sort by **Most orders** to see proven sellers first: in that order every card carries its sold count and rating.
- Set **Ship to** to your store's market: AliExpress shows different products and prices per country.
- Leave **Which reviews** on 'With written text' to pay only for reviews you can read; star breakdowns come free.
- Set **Reviews per product** to 0 to get every product's star breakdown and review highlights for free with its search result.

### Use it through the API

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("zaiq/aliexpress-scraper").call(run_input={"searches": ["camping lantern"], "sort": "orders", "maxResultsPerSearch": 60, "shipTo": "DE", "currency": "EUR"})
for row in client.dataset(run.default_dataset_id).iterate_items():
    print(row)
```

**JavaScript**

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('zaiq/aliexpress-scraper').call({"searches": ["camping lantern"], "sort": "orders", "maxResultsPerSearch": 60, "shipTo": "DE", "currency": "EUR"});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**HTTP (one call, results back)**

```bash
curl -X POST 'https://api.apify.com/v2/acts/zaiq~aliexpress-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"searches": ["camping lantern"], "sort": "orders", "maxResultsPerSearch": 60, "shipTo": "DE", "currency": "EUR"}'
```

### Integrations and schedules

- **Schedules:** run it every hour, day or week from the Apify Console (Schedules) and keep a history of results.
- **Make, Zapier, n8n, Google Sheets, Slack, Airtable:** connect it through Apify's integrations, or send each finished run to a **webhook**.
- **Datasets:** results stay in the run's dataset; export them or read them by API whenever you need them.

### Use it with AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) to Claude, ChatGPT, Cursor, VS Code or any MCP client. The agent can find this Actor and run it for you: ask it for "the 50 best-selling camping lanterns on AliExpress for Germany, in euros". AI agents can also pay for runs directly through Apify's agentic payments.

### Limits

- Pages are read signed out: app-only prices and personal coupons are not shown; welcome-deal tags appear as AliExpress shows them to new shoppers.
- In 'Best match' order AliExpress leaves the sold count and rating off some search cards; 'Most orders' order has them all.
- Product pages (variants, stock, shipping options) are not read: AliExpress refuses most automated product-page visits from cloud servers.
- Up to 3,000 products (50 pages) per search.

### FAQ

**Do I need an AliExpress account?**

No. Everything is read signed out, like a visitor.

**Which countries and currencies?**

Any ship-to country AliExpress delivers to, and any currency it offers (USD, EUR, GBP, AUD, CAD, BRL, ZAR...). US shoppers see aliexpress.us listings, whose product ids differ.

**Are reviews in English?**

Each review has the buyer's original text and AliExpress's English translation.

**Why do prices differ from what I see in my browser?**

AliExpress prices depend on the country, the currency and whether you are signed in (personal coupons, app prices). This Actor reads as a signed-out shopper in the ship-to country you choose.

**Do you read product pages with variants and stock?**

Not at the moment: AliExpress refuses most automated product-page visits from cloud servers. Search results carry price, discount, orders sold and rating; reviews carry the variant each buyer bought.

**How fast is it?**

A page of 60 search results takes a few seconds; reviews come 50 at a time.

### Related Actors from Zaiq

- [amazon-product-scraper](https://apify.com/zaiq/amazon-product-scraper): the same products' prices and ratings on Amazon in 23 stores
- [tiktok-shop-scraper](https://apify.com/zaiq/tiktok-shop-scraper): what sells on TikTok Shop, with items sold and stock
- [google-trends-scraper](https://apify.com/zaiq/google-trends-scraper): is demand for a product rising before you list it?
- [facebook-ads-library-scraper](https://apify.com/zaiq/facebook-ads-library-scraper): which stores already run ads for a product

### Support

Questions, a site that changed, or a field you need? Open an issue on this Actor's **Issues** tab: we answer there, usually within a day.

***

Also found as: aliexpress scraper, aliexpress api, aliexpress product scraper, aliexpress search scraper, aliexpress reviews scraper, aliexpress dropshipping research, aliexpress price tracker, aliexpress orders sold, aliexpress best sellers.

# Actor input Schema

## `searches` (type: `array`):

What to search AliExpress for, one per line. AliExpress search links (aliexpress.com/w/wholesale-...) work too, with their filters.

## `maxResultsPerSearch` (type: `integer`):

AliExpress shows 60 products a page; up to 3,000 per search.

## `sort` (type: `string`):

Order of the search results.

## `skipSponsored` (type: `boolean`):

Leave out the ads AliExpress mixes into search results (they are flagged either way).

## `products` (type: `array`):

AliExpress product links or product ids, one per line: their star breakdown and buyer reviews.

## `reviewsForSearchResults` (type: `boolean`):

Also read the star breakdown and reviews of each search result (reviews charged as above).

## `maxReviews` (type: `integer`):

Buyer reviews per product ($0.003 each); 0 = only the free star breakdown.

## `reviewFilter` (type: `string`):

Star-only reviews have no text; leave them out to pay only for reviews you can read.

## `shipTo` (type: `string`):

Two-letter country code: search results and prices are what a shopper there sees (US, GB, DE, FR, ES, AU, CA, BR, ZA...).

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

Three-letter currency code for prices (USD, EUR, GBP, AUD, CAD, BRL, ZAR...).

## Actor input object example

```json
{
  "searches": [
    "wireless earbuds"
  ],
  "maxResultsPerSearch": 60,
  "sort": "default",
  "skipSponsored": false,
  "reviewsForSearchResults": false,
  "maxReviews": 20,
  "reviewFilter": "text",
  "shipTo": "US",
  "currency": "USD"
}
```

# Actor output Schema

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

Dataset: the results.

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

What each input returned, and notes.

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

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

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

```

## MCP server setup

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