# AliExpress Product Research: Best Sellers, Prices & Orders (`precious_bathmat/aliexpress-product-research`) Actor

Product research for any AliExpress keyword: price range, best sellers by real order counts, the price band that sells, new products already selling, discounts, ratings, delivery times and where items ship from, plus every product as CSV.

- **URL**: https://apify.com/precious_bathmat/aliexpress-product-research.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** E-commerce, Marketing
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 keyword reports

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

## AliExpress Product Research: Best Sellers, Prices & Orders

Research any product on **AliExpress** before you sell it. For each keyword you get one report: the **real price range**, the **best sellers ranked by their actual order counts**, the **price band that takes the most orders**, **new products that are already selling**, typical **discounts**, **ratings**, the share of **Choice** and **free-shipping** items, **delivery times** and **where items ship from** (China or local warehouses). Every product also comes as a CSV with price, orders, rating, listing date and link.

Built for dropshippers, Amazon/Shopify/TikTok Shop sellers and product researchers.

### What does this AliExpress scraper do?

```
"wireless earbuds" · 104 products · sorted by orders

 regular price  $10.42 median    typical range  $6.13 - $14.79
 sells best at  $10.42 - $14.79  (39% of orders at regular prices)
 best seller    Lenovo XT53, $11.46, 47,790 orders
 new & selling  Baseus Bass BP1 Pro, listed Jul 3, 31,094 orders
 delivery       5 days to the US · 12 of 104 ship from US warehouses
```

1. Enter **keywords**: "wireless earbuds", "yoga mat", "led strip lights".
2. Choose **pages** (about 60 products each), the **sort** (best match, orders, price), an optional **price range**, and the **ship-to country** and **currency**.
3. The Actor reads AliExpress search results and returns **one report per keyword** plus the **products**, most ordered first.

### Who is it for?

- **Dropshippers**: find products that already sell, at what price, and which ship fast from a local warehouse
- **Amazon, Shopify and TikTok Shop sellers**: check what the same product costs to source and how crowded it is
- **Product researchers and agencies**: compare niches by order volume, price band and competition
- **Brands**: watch the cheap alternatives to your products

### What data do you get?

**One report per keyword** (the dataset):

| Field | What it tells you |
|---|---|
| `medianPrice`, `lowPrice25`, `highPrice75`, `lowestPrice`, `highestPrice` | The regular price range (new-shopper deals left out) |
| `bestSellers` | The 10 products with the most orders: price, orders, rating, discount, ship-from, listing date, link |
| `priceBands`, `bestSellingPriceBand` | Orders per price band, and the band buyers spend in most |
| `newAndSelling` | Products listed in the last 90 days that already have orders |
| `totalOrders`, `medianOrders`, `top5OrdersSharePercent` | How big the demand is, and how much the top 5 take |
| `medianDiscountPercent`, `newShopperDealSharePercent` | Typical discount, and how many products show a new-customer-only price |
| `medianRating`, `rated47PlusSharePercent` | Quality |
| `choiceSharePercent`, `freeShippingSharePercent`, `medianDeliveryDays`, `shipsFrom` | Delivery: AliExpress Choice, free shipping, days to arrive, China vs local warehouses |
| `resultsOnAliExpress`, `offTopicSkipped`, `sponsoredSkipped` | How many results AliExpress has, and what was left out |

**Products** (`PRODUCTS_CSV`): title, price, original price, discount, order count, "sold" label, rating, listing date, ship-from country, Choice, free shipping, delivery date and days, new-shopper deal flag, image and link.

### Example: 30 September 2026

**Five keywords, best sellers first, US prices** (46 seconds; a made-up keyword was reported as having no matching products):

| Keyword | Median price | Sells best at | Orders (top 2 pages) | Best seller |
|---|---|---|---|---|
| wireless earbuds | **$10.42** | $10.42 - $14.79 | 882,894 | Lenovo XT53, $11.46, 47,790 orders |
| yoga mat | $12.46 | $2.41 - $6.73 | 110,431 | Pilates mat, $6.19, 12,847 orders |
| led strip lights | $5.39 | $4.17 - $5.39 | 1,807,287 | RGB strip, 170,972 orders |
| dog toy | $3.44 | $2.33 - $3.44 | 829,977 | Bite-resistant ball, 48,908 orders |

For phone cases, 63 of the 68 products read showed a new-shopper price (such as $0.33), so only 5 regular prices were left to price the market; the report says so in `newShopperDealSharePercent`.

**Three keywords shipping to the UK in pounds, £10 to £50, 5 pages**: standing desks median **£27.49** (33 of 142 from UK warehouses), air fryers **£33.29**, camping tents **£29.29**.

### Pricing

**$0.02 per keyword report** and **$0.001 per product** saved.

A keyword with 60 products saved costs **$0.08**; with "Products to save per keyword" at 0 it is **$0.02 per keyword**. The five-keyword run above cost **$0.40** with 300 products.

### Good to know

- **Order counts are real.** AliExpress shows "5K+ sold"; the report uses the exact count it records for each product. `totalOrders` covers the products read, not all of AliExpress.
- **New-shopper prices are left out of the price figures.** Many best sellers show a first-order price only new AliExpress customers get ($0.33, $1.09...). Those products are marked `newShopperDeal`; their orders still count, but the price range uses regular prices.
- **Sponsored products** are left out, and products whose title does not match the keyword are skipped.
- **Prices, delivery and free shipping are for the ship-to country** you choose, in your currency.
- **Reliable runs.** AliExpress blocks an address after about ten searches, so pages are read directly first and then through Apify Proxy (datacenter; residential only if that is blocked too). This is included in the price.

### Input

| Field | Meaning |
|---|---|
| **Keywords** | One per line |
| **Pages per keyword** | 1 to 5, about 60 products each |
| **Sort by** | Best match, orders, price low to high, price high to low |
| **Minimum / maximum price** | Optional |
| **Ship to** | Two-letter country code |
| **Currency** | USD, EUR, GBP... |
| **Products to save per keyword** | 0 to 300, most ordered first |

### Integrations

Export to JSON, CSV, Excel or Google Sheets, or connect through the Apify API, webhooks, Make, Zapier and n8n. **Schedule it weekly** to watch order counts grow and catch new products that start selling.

# Actor input Schema

## `keywords` (type: `array`):

What to research, one per line: "wireless earbuds", "yoga mat", "led strip lights". One report per keyword.

## `pagesPerKeyword` (type: `integer`):

About 60 products per page, 1 to 5 pages.

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

Which products AliExpress lists first. "Orders" reads the best sellers.

## `minPrice` (type: `integer`):

Optional, in the chosen currency.

## `maxPrice` (type: `integer`):

Optional, in the chosen currency.

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

Two-letter country code: prices, delivery dates and free shipping are for this country. US, GB, DE, FR, CA, AU...

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

Three-letter code: USD, EUR, GBP...

## `maxProductsPerKeyword` (type: `integer`):

Products saved to the products file, most ordered first, 0 to 300. The report always uses every product read. Charged per product.

## Actor input object example

```json
{
  "keywords": [
    "wireless earbuds",
    "yoga mat"
  ],
  "pagesPerKeyword": 2,
  "sortBy": "best-match",
  "shipTo": "US",
  "currency": "USD",
  "maxProductsPerKeyword": 60
}
```

# Actor output Schema

## `reports` (type: `string`):

Price range, best sellers, the best-selling price band, new products already selling, discounts, ratings and delivery, per keyword.

## `products` (type: `string`):

Title, price, original price, discount, orders, rating, listed date, ship-from, badges, delivery and link.

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

Source, problems and the limits of the data.

# 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 = {
    "keywords": [
        "wireless earbuds",
        "yoga mat"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/aliexpress-product-research").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 = { "keywords": [
        "wireless earbuds",
        "yoga mat",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/aliexpress-product-research").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 '{
  "keywords": [
    "wireless earbuds",
    "yoga mat"
  ]
}' |
apify call precious_bathmat/aliexpress-product-research --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,precious_bathmat/aliexpress-product-research"
        }
    }
}
```

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/Kt5CP1DJgY14uziMw/builds/PkoO1Bxx92fQTRF8P/openapi.json
