# AliExpress Scraper — Products, Reviews & Sellers (`muhammadafzal/aliexpress-products-reviews-sellers`) Actor

Extract public AliExpress products, prices, variants, buyer reviews, and seller/store metrics for research, monitoring, and supplier analysis.

- **URL**: https://apify.com/muhammadafzal/aliexpress-products-reviews-sellers.md
- **Developed by:** [Muhammad Afzal](https://apify.com/muhammadafzal) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 aliexpress records

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Scraper — Products, Reviews & Sellers

Extract public AliExpress product listings, buyer reviews, and seller/store profiles from keyword searches or exact product URLs. The Actor is designed for product research, supplier comparison, catalog monitoring, dropshipping analysis, and marketplace datasets.

### What it extracts

Each dataset row has a `recordType` discriminator:

| Type | Main fields |
|---|---|
| `product` | Product ID, title, canonical URL, images, localized price, original price, currency, rating, review count, sold text, specifications, variants, seller reference |
| `review` | Review ID, rating, text, date, reviewer display name/country, purchased options, images, seller reply |
| `seller` | Seller/store IDs, name, URL, country, opening date, feedback rate/count, store score, top-rated flag, public metrics |

Use this Actor for public product and supplier intelligence. Do not use it for checkout, account data, messages, private orders, or bypassing authentication and access controls.

### Input

Provide `searchQueries`, `productUrls`, or both. Results are deduplicated by product ID.

```json
{
  "searchQueries": ["wireless headphones"],
  "productUrls": [
    { "url": "https://www.aliexpress.com/item/1005008082049439.html" }
  ],
  "maxProducts": 10,
  "includeReviews": true,
  "maxReviewsPerProduct": 5,
  "includeSellers": true,
  "currency": "USD",
  "shipToCountry": "US",
  "maxConcurrency": 3,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

`maxProducts` limits unique products. Review and seller rows are additional records. Prices and availability can vary by currency, destination, time, account state, and promotions.

### Output example

```json
{
  "recordType": "product",
  "productId": "1005008082049439",
  "productUrl": "https://www.aliexpress.com/item/1005008082049439.html",
  "title": "Camera decal skin",
  "price": 15.73,
  "originalPrice": 22.61,
  "currency": "USD",
  "rating": 2,
  "reviewCount": 1,
  "sellerName": "HineFilm Official Store",
  "sellerId": "249061897",
  "scrapedAt": "2026-08-31T11:00:00.000Z"
}
```

The `OUTPUT` key-value-store record contains the terminal outcome, counts, warnings, build number, and duration. A valid no-match search returns zero dataset rows plus an explicit `EMPTY` summary. Access or parser failures are never converted into fabricated product records.

### Pricing

This Actor uses pay per event:

| Event | Price |
|---|---:|
| Actor start | $0.00005 |
| One product, review, or seller dataset record | $0.002 |

A run that returns 10 products, 30 reviews, and 8 unique sellers produces 48 records and costs about `$0.09605` in events. Your maximum depends on `maxProducts`, `maxReviewsPerProduct`, and `includeSellers`; the Actor reports a conservative estimate at startup. Apify may enforce a lower event-charge limit, in which case platform dataset-item charging stops according to the configured limit.

### Reliability and limits

The Actor uses three public AliExpress-owned data surfaces: server-rendered search init data, the product page's signed MTop request, and public feedback pages. It keeps bounded concurrency and retries, supports an optional Apify proxy, normalizes records before storage, and writes partial valid data when individual products fail. To absorb short anti-creep incidents, it may reuse public detail or review data fetched within the previous six hours; `OUTPUT` warnings disclose every cached fallback and its original fetch time.

AliExpress changes markup, localization, promotions, and anti-automation policies. If direct access is blocked, configure a consistent proxy route and lower concurrency. The Actor does not solve CAPTCHAs, use logged-in cookies, or bypass access controls. Review availability depends on AliExpress exposing both a public seller identifier and public feedback for the product.

### API use

Run the Actor through the Apify API with the same JSON input, then read `defaultDatasetId` for records or the run output links generated by the output schema. For automation, filter by `recordType` before loading product, review, and seller rows into separate downstream tables.

### Legal and responsible use

Scrape only publicly available data and comply with AliExpress terms, applicable law, privacy rules, and your intended use. Review names may be masked but can still be personal data; minimize retention and do not use the output for harassment, discrimination, or unsolicited outreach. AliExpress is a trademark of its owner and is not affiliated with this Actor.

For support, include the Apify run ID, input with sensitive values removed, expected result type, and the relevant `OUTPUT` warning.

### Use cases

- Monitor public products, prices, availability, sellers, and catalog changes.
- Build public prospect lists and qualify organizations or professionals before responsible outreach.
- Schedule repeatable collection and export results to downstream workflows.
- Run a one-off research job and export the structured result as JSON, CSV, Excel, XML, or RSS from Apify.
- Schedule the same input to monitor changes over time and send completed datasets to a webhook or integration.

# Actor input Schema

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

Use this to discover AliExpress products by keyword, for example `wireless headphones`. Accepts up to 20 queries; it is not a product-ID field.

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

Use this for exact public product pages such as `https://www.aliexpress.com/item/1005008082049439.html`. Search and store-home URLs are not accepted here.

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

Use this to cap unique products across all inputs. Default 10; allowed range 1–500. Reviews and seller rows are additional records.

## `includeReviews` (type: `boolean`):

Use this to add public buyer-review rows for each product. Enabled by default; disable it when only product and seller data is needed.

## `maxReviewsPerProduct` (type: `integer`):

Use this to cap buyer reviews per product when reviews are enabled. Default 5; allowed range 0–100.

## `includeSellers` (type: `boolean`):

Use this to emit one deduplicated seller/store record when public store metrics are available. Enabled by default.

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

Use this for product prices in an ISO 4217 currency code, for example `USD`. Default USD; availability follows AliExpress localization.

## `shipToCountry` (type: `string`):

Use this for localized availability and pricing as a two-letter country code, for example `US`. Default US; it does not verify delivery to a street address.

## `maxConcurrency` (type: `integer`):

Use this to control parallel AliExpress product requests. Default 3; allowed range 1–8. Lower it if the target rate-limits a proxy route.

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

Use this when direct access is blocked or localized data needs a consistent proxy country. The default direct route avoids proxy cost.

## Actor input object example

```json
{
  "searchQueries": [
    "wireless headphones"
  ],
  "productUrls": [],
  "maxProducts": 10,
  "includeReviews": true,
  "maxReviewsPerProduct": 5,
  "includeSellers": true,
  "currency": "USD",
  "shipToCountry": "US",
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Product, review, and seller records.

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

Outcome, counts, warnings, and timing.

# 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 headphones"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammadafzal/aliexpress-products-reviews-sellers").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 headphones"] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,muhammadafzal/aliexpress-products-reviews-sellers"
        }
    }
}

```

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/hYQpANfFBE0232OGW/builds/K0HfivMhSedJoJ1dk/openapi.json
