# AliExpress Products Scraper — Search Results (`darknezz/aliexpress-products-scraper`) Actor

Scrape AliExpress search results for any keyword: product titles, prices, discounts, ratings, order counts and images as clean JSON. No API key, login or proxy required. Ideal for price monitoring, dropshipping research and market analysis.

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

## Pricing

from $2.00 / 1,000 product scrapeds

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/platform/actors/running/actors-in-store#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 Products Scraper — Search Results

Scrape **AliExpress search results for any keyword** and get every product as clean, structured JSON — titles, sale/original prices, discounts, ratings, order counts, badges and a sponsored-ad flag. No API key, no login, no proxy required.

Built for dropshippers, price-monitoring teams and market researchers who need a whole product niche in one table — with prices pinned to USD so rows are comparable run after run.

### Why this Actor

- **No account, no API key, no proxy budget** — reads the server-rendered search page directly, with browser-grade TLS so requests don't get blocked.
- **USD-pinned prices** — the Actor pins the global storefront to USD/English, so prices are stable and comparable regardless of where the run executes.
- **Demand signals included** — average star rating and approximate order count (`"2,000+ sold"` parsed to `2000`) on every row, the two numbers dropshipping research lives on.
- **Sponsored-ad flag** — `isSponsored` marks paid placements so ads never skew your organic analysis.
- **Pay per result** — a small fee per product scraped; a 60-product run costs a fraction of a cent.

### How it works

For each keyword the Actor requests the AliExpress search results page, parses the embedded product-list JSON (the same data the site itself renders from), and outputs **one dataset item per product** — about 60 products per page, paging automatically up to `maxProductsPerKeyword` (max 1,200 per keyword).

### Input

```json
{
  "keywords": ["usb c hub", "wireless earbuds"],
  "maxProductsPerKeyword": 60
}
```

| Field | Type | Description |
|---|---|---|
| `keywords` | array | Product search terms, one search per keyword — **required** |
| `maxProductsPerKeyword` | integer | Products to scrape per keyword (default 60, max 1,200; ~60 per page) |

### Output (one item per product)

```json
{
  "keyword": "usb c hub",
  "productId": "1005006270111215",
  "title": "UGREEN Revodok USB C Hub 4-in-1 ...",
  "productUrl": "https://www.aliexpress.com/item/1005006270111215.html",
  "imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/....jpg",
  "currency": "USD",
  "salePrice": 9.99,
  "originalPrice": 19.99,
  "discountPercent": 50,
  "rating": 4.7,
  "soldText": "2,000+ sold",
  "soldCount": 2000,
  "tags": ["Free shipping"],
  "isSponsored": false,
  "listedAt": "2024-03-01 00:00:00"
}
```

### Use cases

- 📦 **Dropshipping research** — find winning products by order count, rating and discount depth before committing to a supplier.
- 💰 **Price monitoring** — schedule a daily run per keyword and track how sellers price and discount a niche over time.
- 📊 **Market research** — assortment, price bands and demand signals for any product category, ads excluded via `isSponsored`.
- 🏭 **Sourcing** — shortlist supplier listings (price, rating, order history) before contacting them.
- 🔗 **Feed generation** — build product feeds for content, comparison or affiliate sites from fresh search data.

### Run it from the API

```bash
curl -X POST "https://api.apify.com/v2/acts/darknezz~aliexpress-products-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["usb c hub"],"maxProductsPerKeyword":120}'
```

**Scheduling:** attach an Apify Schedule (e.g. daily) to build price and demand history for the keywords you track — run timestamps give you the time axis for free.

### Pricing

Pay per event: a small fee for each product scraped, plus Apify's standard platform events (actor start + dataset item). No subscription — you pay only for what you run.

### FAQ

**Do I need a proxy or an AliExpress account?** No. The Actor reads the public server-rendered search page with browser-grade TLS; nothing to authenticate, no residential proxy budget.

**Are prices localized?** No — the Actor pins the global storefront to USD/English on purpose, so results are stable and comparable no matter where the run executes.

**How accurate is `soldCount`?** It is parsed from AliExpress's own rounded text (`"2,000+ sold"` → `2000`), so treat it as a floor, not an exact figure.

**Are sponsored listings included?** Yes, flagged with `isSponsored: true` so you can filter paid placements out of organic ranking analysis.

**Can it scrape a product's full detail page or reviews?** Not yet — this Actor focuses on search results. Ask in the Issues tab if you need details or reviews.

**Is scraping this legal?** Search results are public and unauthenticated. You are responsible for complying with AliExpress's terms and applicable laws for how you use the data.

# Actor input Schema

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

Product search keywords, one per line (e.g. 'usb c hub', 'wireless earbuds'). Each keyword is searched on aliexpress.com.

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

Maximum number of products to scrape per keyword (about 60 per result page).

## Actor input object example

```json
{
  "keywords": [
    "usb c hub",
    "wireless earbuds"
  ],
  "maxProductsPerKeyword": 60
}
```

# Actor output Schema

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

No description

## `title` (type: `string`):

No description

## `price` (type: `string`):

No description

## `priceValue` (type: `string`):

No description

## `discount` (type: `string`):

No description

## `rating` (type: `string`):

No description

## `orders` (type: `string`):

No description

## `image` (type: `string`):

No description

## `productUrl` (type: `string`):

No description

## `storeName` (type: `string`):

No description

## `shipping` (type: `string`):

No description

# 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": [
        "usb c hub",
        "wireless earbuds"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("darknezz/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 = { "keywords": [
        "usb c hub",
        "wireless earbuds",
    ] }

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

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/AXaizr8GYv3bvU2I4/builds/6A3O3zKKjgv8wccwV/openapi.json
