# AliExpress (速卖通) Search Scraper - Real Prices, Sold $3/1K (`om_kh/aliexpress-search-scraper`) Actor

Scrape AliExpress search results: the seller's real price (not the new-shopper deal), list price, discount, rating, units sold, Choice, delivery estimate and badges. Filter by price, rating, orders; ads flagged. Up to 3,000 per search. No login. $3/1K.

- **URL**: https://apify.com/om_kh/aliexpress-search-scraper.md
- **Developed by:** [Khandji Omar](https://apify.com/om_kh) (community)
- **Categories:** E-commerce, Lead generation, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.65 / 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.
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 (速卖通) Search Scraper - Real Prices, Units Sold

Scrape **AliExpress search results** for any keyword: the **seller's real price** (not the "new shopper" deal shown
to logged-out visitors), list price, discount, rating, units sold, **Choice** flag, delivery estimate and badges,
with ads flagged. Filter by price, rating and orders; sort by best match, orders or price. Up to 3,000 products
per search. No login. **$3 per 1,000 products**, the first 10 of every run free.

### What you get

One row per unique product, in AliExpress's order: repeats across pages are removed and every row says whether it
is sponsored. `price` is what an ordinary buyer pays the seller; when AliExpress shows a one-time new-shopper deal,
that price is kept apart in `newShopperPrice` so your price research is not skewed by $0.33 and $1.09 teasers.

### Why use it

- **Real prices.** AliExpress shows logged-out visitors a new-shopper teaser price on 40-55% of products (measured
  on 2026-10-15 on "phone case"). This Actor returns the seller's own price, and the teaser in its own field.
- **Up to 3,000 products per search**, 60 per page, and many searches per run.
- **Units sold, rating, Choice, delivery estimate, badges** ("Lowest price in 90 days", "Top selling") on every
  row where AliExpress shows them.
- **Filters** on price, rating and units sold, sponsored products kept or removed, search links pasted as they are.
- **Fair billing**: searches with no product and AliExpress outages are never charged.

### How to use it in 3 steps

1. Type your search words, one per line (phone case, led strip), or paste AliExpress search links.
2. Pick the sort, the number of products and, if you want, price, rating and order filters.
3. Press **Start**, then download the table as Excel, CSV or JSON, or read it through the API.

### Input

| Field | What it does | Default |
|---|---|---|
| `searchTerms` | Search words, one per line. | `phone case`, `led strip` |
| `searchUrls` | AliExpress search links (`aliexpress.com/w/wholesale-...html`). | none |
| `maxProductsPerSearch` | Unique products per search, 1 to 3,000. | 100 |
| `sortBy` | `best_match`, `orders`, `price_asc`, `price_desc` | `best_match` |
| `minPrice` / `maxPrice` | Seller price range in USD. | none |
| `minRating` | Minimum star rating, 0 to 5. | none |
| `minOrders` | Minimum units sold. | none |
| `includeSponsored` | Keep the products AliExpress shows as ads. | on |
| `maxTotalChargeUsd` | Hard cap on the cost of the run. | none |

### Output

Real row, read on 2026-10-15 (search "phone case" sorted by orders, 4th product of page 2):

```json
{
  "productId": "1005012011127508",
  "title": "For Magesafe Phone Case for iPhone 17 16 15 14 13 12 11 Pro Max Air Plus Magnetic Wireless Charge Transparent Case Back Cover",
  "url": "https://www.aliexpress.com/item/1005012011127508.html",
  "price": 4.2,
  "originalPrice": 4.33,
  "discountPercent": 3,
  "currency": "USD",
  "newShopperPrice": null,
  "rating": 4.9,
  "soldCount": 6633,
  "soldText": "5,000+ sold",
  "isChoice": true,
  "isSponsored": false,
  "deliveryEstimate": "Oct 22 - 27",
  "badges": ["Save $2.16"],
  "listedAt": "2026-04-03",
  "categoryIds": ["202192403", "202228401", "380230"],
  "imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sc5bc564f3f1d45df956fd00c5957b9bff.jpg",
  "position": 64,
  "page": 2,
  "searchTerm": "phone case",
  "sortBy": "orders",
  "type": "product"
}
```

Prices are in US dollars as AliExpress shows them to a US visitor. Fields AliExpress does not show for a product are `null`.

### How much does it cost?

| | Price |
|---|---|
| Per product delivered | $0.003 ($3 per 1,000) |
| Start fee | none |
| Free | the first 10 products of every run |
| Searches with no product, AliExpress outages | not charged |

Paid Apify plans get lower tier prices (see the Pricing tab). `maxTotalChargeUsd` caps any run.

### Use cases

- **Dropshipping and product research**: best sellers by units sold, real margins from real prices.
- **Price monitoring** of a product category or of your own listings.
- **Supplier shortlists**: Choice products with fast delivery estimates and high ratings.
- **Market sizing**: how many products and how many sales a niche already has.
- **AI agents and RAG**: clean product data in JSON through the API or MCP.

### Use it from code (API)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("om_kh/aliexpress-search-scraper").call(run_input={
    "searchTerms": ["phone case", "led strip"],
    "maxProductsPerSearch": 500,
    "sortBy": "orders",
    "minRating": 4.5,
    "includeSponsored": False,
    "maxTotalChargeUsd": 3,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"][:60], item["price"], item.get("soldCount"))
```

### Integrations: n8n, Make, Zapier, Google Sheets

Use the Apify app or node: "Run an Actor" with `om_kh/aliexpress-search-scraper`, then "Get Dataset Items", then
add the rows to a sheet. Schedule it weekly to follow best sellers and prices.

### Use it from an AI agent (MCP)

AI agents can call it through `https://mcp.apify.com` as `om_kh/aliexpress-search-scraper` (tool `aliexpress_search`).

### Compared with other options

| | This Actor | Most used AliExpress search scraper (Oct 2026) |
|---|---|---|
| New-shopper teaser kept apart from the real price | yes | not documented |
| Products per search | up to 3,000 | up to 200 |
| Units sold, rating, Choice, delivery estimate | yes | rating and orders |
| Filters: price, rating, units sold | yes | yes |
| Ads flagged or removed | yes | no |
| Charged for empty searches | no | per dataset row |
| Price | $3 / 1,000 | $9 / 1,000 |

### Tips and limits

- AliExpress shows at most about 60 pages per search; for more, split by price range or more specific words.
- Rating, units sold and delivery estimate appear only when AliExpress shows them on the search card.
- This Actor reads search result pages only; it does not open product pages, so it has no variants or reviews.
- It reads public search results, logged out. Use the data in line with the laws and terms that apply to you.

### FAQ

**Why is `price` sometimes higher than what AliExpress shows me?**
AliExpress shows logged-out and new visitors a one-time deal on some products. `price` is the seller's normal price;
the deal is in `newShopperPrice`.

**Which currency?**
US dollars, as shown to a US visitor.

**Am I charged when something fails?**
No. A search with no product or an AliExpress outage is reported in the run summary and never charged.

**How fresh is the data?**
Live: every run reads AliExpress at that moment.

### Your feedback

Did this Actor save you time? A short review on the **Reviews** tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the **Issues** tab: it is answered and fixed fast.

# Actor input Schema

## `searchTerms` (type: `array`):

What you would type in the AliExpress search box, one per line.

## `searchUrls` (type: `array`):

Paste AliExpress search links (aliexpress.com/w/wholesale-...html); the search words are read from the link.

## `maxProductsPerSearch` (type: `integer`):

Unique products per search (repeats removed). AliExpress serves 60 per page.

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

The AliExpress sort orders.

## `minPrice` (type: `number`):

Only products whose seller price is at or above this.

## `maxPrice` (type: `number`):

Only products whose seller price is at or below this.

## `minRating` (type: `number`):

Only products rated at least this (0 to 5).

## `minOrders` (type: `integer`):

Only products sold at least this many times.

## `includeSponsored` (type: `boolean`):

Keep the products AliExpress shows as ads. Each row says whether it is sponsored.

## `maxTotalChargeUsd` (type: `number`):

The run stops delivering once this amount is reached; you are never charged more.

## Actor input object example

```json
{
  "searchTerms": [
    "phone case",
    "led strip"
  ],
  "maxProductsPerSearch": 100,
  "sortBy": "best_match",
  "includeSponsored": true
}
```

# Actor output Schema

## `report` (type: `string`):

A visual summary of delivery, charges, and source issues.

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

Products in a sortable table. No JSON knowledge required.

## `csv` (type: `string`):

Results ready for spreadsheets, CRMs, and analytics tools.

## `excel` (type: `string`):

Results as an Excel workbook for non-technical teams.

## `runSummary` (type: `string`):

Machine-readable delivery, billing, and source diagnostics.

# 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 = {
    "searchTerms": [
        "phone case",
        "led strip"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("om_kh/aliexpress-search-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 = { "searchTerms": [
        "phone case",
        "led strip",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("om_kh/aliexpress-search-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 '{
  "searchTerms": [
    "phone case",
    "led strip"
  ]
}' |
apify call om_kh/aliexpress-search-scraper --silent --output-dataset

```

## MCP server setup

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