# AliExpress Scraper - Products & Sellers (`parsebird/aliexpress-scraper`) Actor

Scrape AliExpress products and sellers by keyword or URL. Extract prices, ratings, SKU variants, images, and seller details. Export as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/aliexpress-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.60 / 1,000 aliexpress result scrapeds

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/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 Scraper

Extract **AliExpress** product data at scale — prices, ratings, images, SKU variants, and seller details — by keyword search or by URL, with no official API required.

<table><tr>
<td style="border-left:4px solid #FF4747;padding:12px 16px;font-weight:600">
Search by keyword or scrape any AliExpress search, category, or product URL — get structured prices, ratings, order counts, SKU variants, and seller info, delivered through Apify residential proxies with automatic anti-bot session rotation.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="2" style="padding:10px 14px;background:#FF4747;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird AliExpress Suite</span>
<span style="color:#FFD9D9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Products, variants &amp; pricing data</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:50%;background:#FFF5F5">
🛒 &nbsp;<a href="https://apify.com/parsebird/aliexpress-scraper" style="color:#FF4747;text-decoration:none;font-weight:700;font-size:13px">AliExpress Scraper</a><br>
<span style="color:#FF4747;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:50%;background:#FFFFFF">
🎨 &nbsp;<a href="https://apify.com/parsebird/aliexpress-product-variants-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">AliExpress Product Variants Scraper</a><br>
<span style="color:#78716C;font-size:11px">SKU variants, price &amp; stock</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/aliexpress-scraper — Scrape AliExpress products and sellers by keyword or URL.
Usage: from apify_client import ApifyClient; client = ApifyClient("YOUR_TOKEN"); run = client.actor("parsebird/aliexpress-scraper").call(run_input={"searchQuery": "mechanical keyboard", "maxResults": 25, "detailedItems": True, "site": "aliexpress.com", "shipCountry": "US"})
Inputs: searchQuery (string), startUrls (array of AliExpress search/category/product URLs, auto-detected), maxResults (int, default 25, caps listings+products combined), detailedItems (bool, visits product pages for full specs/SKU/seller info), site (string, e.g. aliexpress.com), shipCountry (string, 2-letter code, e.g. US), proxyConfiguration (object, residential by default)
Output fields: recordType (listing|product), productId, title, productUrl, imageUrl, price, originalPrice, discountPercent, currency, rating, reviewsCount, ordersCount, storeName, storeId, storeUrl, shipsFrom, specs, skuVariants, images, description, categoryPath, site, scrapedAt
API spec: https://apify.com/parsebird/aliexpress-scraper/api
Get token: https://console.apify.com/account/integrations
```

### What does AliExpress Scraper do?

**AliExpress Scraper** runs a real Chromium browser against [AliExpress](https://www.aliexpress.com) to collect structured product and pricing data without needing AliExpress API access. It works as an **AliExpress API alternative** for teams that need clean, structured data instead of parsing HTML by hand.

Key capabilities:

- 🔍 Keyword search across AliExpress's full catalog
- 🔗 Direct URL input — search pages, category pages, or individual product pages, auto-detected
- 💰 Prices, original prices, discount percentages, and currency per item
- ⭐ Ratings, review counts, and order counts
- 🧩 Full product detail mode: specifications, SKU/variant options, complete image gallery, description, and category path
- 🏪 Seller/store name, ID, and URL when available on the product page
- 🌍 Regional site and ship-to country selection, with currency following the ship-to country
- 🛡️ Apify residential proxies with automatic session rotation when AliExpress's anti-bot check blocks a request

### What data can you extract from AliExpress?

| Field | Description |
|-------|-------------|
| `recordType` | `listing` or `product` |
| `productId` | AliExpress product identifier |
| `title` | Product title |
| `productUrl` | Canonical product URL |
| `imageUrl` | Primary product image |
| `price` / `originalPrice` / `discountPercent` | Current price, pre-discount price, and computed discount |
| `currency` | Currency code for the displayed price |
| `rating` / `reviewsCount` / `ordersCount` | Star rating, review count, and orders/sold count |
| `storeName` / `storeId` / `storeUrl` | Seller store details (product records) |
| `specs` / `skuVariants` | Specification key-value pairs and SKU/variant options (product records) |
| `images` | Full image gallery (product records) |

### How to scrape AliExpress with AliExpress Scraper

1. Go to [AliExpress Scraper](https://apify.com/parsebird/aliexpress-scraper) on Apify Store
2. Click **Try for free** to open the input form
3. Enter a search keyword (e.g. "wireless earbuds") or paste AliExpress search, category, or product URLs into Start URLs
4. Turn on **Visit product pages for full details** if you need specs, SKU variants, and seller info
5. Set your **Ship-to Country** to control currency and proxy region
6. Click **Start** and download results as JSON, CSV, or Excel — or pull them via the API

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| searchQuery | string | No | — | Keyword to search on AliExpress |
| startUrls | array | No | `[]` | AliExpress search, category, or product URLs (type auto-detected) |
| maxResults | integer | No | 25 | Max dataset records across listings and products |
| detailedItems | boolean | No | false | Visit each product page for full specs, SKU variants, images, and seller info |
| site | string | No | "aliexpress.com" | AliExpress regional domain |
| shipCountry | string | No | "US" | Two-letter ship-to country code |
| proxyConfiguration | object | No | Residential | Proxy settings, pinned to shipCountry by default |

At least one of `searchQuery` or `startUrls` is required.

### Output example

```json
{
  "recordType": "product",
  "productId": "3256806808315712",
  "title": "MACHENIKE K500 Mechanical Keyboard Wired Gaming Keyboard K500-B94 Hot Swappable 94 Keys 90% Layout RGB BackLight for PC Laptop",
  "productUrl": "https://www.aliexpress.com/item/3256806808315712.html",
  "imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/Sc84170854e1e4729bc5e3a6ff18ccfe88.jpg",
  "price": 27.89,
  "originalPrice": null,
  "discountPercent": null,
  "currency": "USD",
  "rating": 4.9,
  "reviewsCount": null,
  "ordersCount": 5000,
  "storeName": null,
  "site": "www.aliexpress.com",
  "images": [
    "https://ae-pic-a1.aliexpress-media.com/kf/Sc84170854e1e4729bc5e3a6ff18ccfe88.jpg",
    "https://ae-pic-a1.aliexpress-media.com/kf/Sd5621359553a46a383920f9cd7a971fah.jpg"
  ],
  "scrapedAt": "2026-08-22T03:19:34.000Z"
}
```

### Use cases

- 📈 **Price monitoring** — Track price and discount changes for products or entire categories over time
- 🛒 **Dropshipping research** — Compare suppliers by price, orders, rating, and seller reputation before listing a product
- 🧾 **Catalog enrichment** — Pull structured titles, specs, and images into your own product database
- 🏪 **Seller/competitor tracking** — Monitor a competitor's storefront by scraping their product URLs directly
- 🤖 **AI agent tooling** — Feed structured AliExpress data into LLM pipelines or shopping assistants

### How it works

1. Launches a headless Chromium browser (via `rebrowser-playwright`) through Apify residential proxies pinned to the selected ship-to country.
2. Warms up each session with a homepage visit before any deep link and applies session-level anti-detection patches — AliExpress's bot wall reacts to page-level signals as much as IP reputation.
3. For search and category pages, reads the product ID list AliExpress server-renders into the page, then enriches each entry with live pricing and rating data captured directly from the browser's own network responses (not a reverse-engineered API), falling back to on-page price and title elements when that data isn't available for a given card.
4. For product pages, extracts specifications, SKU variants, the full image gallery, description, and seller details the same way: live network responses first, page content as a fallback.
5. If a session hits AliExpress's anti-bot challenge, the actor automatically rotates to a fresh residential IP and retries before moving on, so a single bad IP doesn't fail the run.
6. Records are pushed to the dataset as they're scraped.

### How much does it cost to scrape AliExpress?

AliExpress Scraper uses two pay-per-event billables:

| Event | Free/Bronze | Silver | Gold |
|-------|-------------|--------|------|
| `result` (per listing or product record) | $0.0019 / $1.90 per 1,000 | $0.0017 / $1.70 per 1,000 | $0.0016 / $1.60 per 1,000 |
| `detailed-product` (per product page visited with "Visit product pages" enabled) | $0.0039 / $3.90 per 1,000 | $0.0037 / $3.70 per 1,000 | $0.0035 / $3.50 per 1,000 |

A basic search run of 25 listings costs about $0.05 (Free tier). Adding `detailedItems` for those same 25 products adds roughly $0.10 more. The [free trial](https://apify.com/pricing) includes enough credits to test the actor. Platform compute is included in the event price — you only pay for results.

### Integrations and API access

AliExpress Scraper runs on the [Apify platform](https://apify.com), giving you:

- **Scheduling** — Run daily, weekly, or at any custom interval
- **API access** — Start runs and fetch results programmatically
- **Webhooks** — Get notified when a run completes
- **Integrations** — Connect to Google Sheets, Slack, Zapier, Make, and [more](https://docs.apify.com/platform/integrations)
- **Export formats** — Download as JSON, CSV, Excel, or XML

#### Python example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/aliexpress-scraper").call(run_input={
    "searchQuery": "wireless earbuds",
    "maxResults": 25,
    "detailedItems": True,
    "site": "aliexpress.com",
    "shipCountry": "US",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['recordType']}: {item.get('title')} — {item.get('price')} {item.get('currency')}")
```

#### JavaScript example

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor("parsebird/aliexpress-scraper").call({
    searchQuery: "wireless earbuds",
    maxResults: 25,
    detailedItems: true,
    site: "aliexpress.com",
    shipCountry: "US",
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(`${item.recordType}: ${item.title} — ${item.price} ${item.currency}`));
```

### Is it legal to scrape AliExpress?

Web scraping of publicly available data is generally legal, as established by the US Ninth Circuit Court ruling in *hiQ Labs v. LinkedIn* (2022). AliExpress Scraper collects only publicly visible information from AliExpress's search and product pages — data that any visitor can see without logging in.

This actor does not access private account data or bypass payment or authentication systems. Users are responsible for ensuring their use case complies with applicable laws and [AliExpress's terms of service](https://rule.alibaba.com/rule/detail/2041.htm).

For more on web scraping legality, see [Apify's guide to web scraping and the law](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

- [AliExpress Product Variants Scraper](https://apify.com/parsebird/aliexpress-product-variants-scraper) — Extract every SKU variant (color, size, price, stock) from an AliExpress product URL
- [Data Deduplicator](https://apify.com/parsebird/dataset-deduplicator) — Remove duplicate records from any Apify dataset
- [Data Cleaner](https://apify.com/parsebird/data-cleaner) — Clean, filter, and transform dataset records
- [HTTP Request Actor](https://apify.com/parsebird/http-request-actor) — Send arbitrary HTTP requests as part of a pipeline

### FAQ

**Why are some fields (like `storeName` or `originalPrice`) sometimes null?**
AliExpress renders pricing, seller, and spec data client-side. This actor captures that data directly from the site's own live responses when it loads in time; when it doesn't, it falls back to on-page text and meta tags. When neither source has a field, it's returned as `null` rather than guessed — check the `_warnings` field on the record for which path was used.

**Why do some runs come back slower than others?**
AliExpress scores residential IPs individually for bot risk. When a session gets blocked, the actor automatically retries on a freshly rotated IP (up to 5 times) before giving up on that page, which can add time to a run but significantly improves success rate.

**Can I scrape a specific seller's products?**
Yes — paste that seller's product URLs into `startUrls`. Full storefront/category crawling isn't currently supported; each URL is scraped individually.

**Can I schedule recurring runs?**
Yes. Use [Apify's scheduling feature](https://docs.apify.com/platform/schedules) to run this actor daily, weekly, or at any custom interval, and combine it with webhooks to process new data automatically.

**What proxy type should I use?**
Residential proxies are strongly recommended and are the default. AliExpress's anti-bot system blocks most datacenter IPs outright.

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword to search on AliExpress, such as wireless earbuds. Opens the search results page and collects product listing cards. Leave empty if you only want to use Start URLs.

## `startUrls` (type: `array`):

AliExpress search, category, or product URLs. Each URL's type is auto-detected — product page URLs (aliexpress.com/item/...) are scraped as products, everything else is treated as a listing page. Can be combined with Search Query.

## `maxResults` (type: `integer`):

Maximum number of dataset records to collect across listings and products. Lower values keep runs fast and cheap.

## `detailedItems` (type: `boolean`):

Visit each product page to extract specifications, SKU variants, the full image gallery, and seller details. Slower and billed at the Detailed Product rate — see Pricing in the README.

## `site` (type: `string`):

AliExpress regional domain to scrape, such as aliexpress.com (global) or a country-specific domain like aliexpress.us.

## `shipCountry` (type: `string`):

Two-letter ship-to country code (e.g. US, GB, DE). Sets the shipping context, displayed currency, and the default proxy country.

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

AliExpress is protected by bot detection. Residential proxies are strongly recommended and are pinned to the Ship-to Country by default.

## Actor input object example

```json
{
  "searchQuery": "mechanical keyboard",
  "startUrls": [],
  "maxResults": 25,
  "detailedItems": false,
  "site": "aliexpress.com",
  "shipCountry": "US",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchQuery": "mechanical keyboard",
    "startUrls": [],
    "maxResults": 25,
    "site": "aliexpress.com",
    "shipCountry": "US",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/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 = {
    "searchQuery": "mechanical keyboard",
    "startUrls": [],
    "maxResults": 25,
    "site": "aliexpress.com",
    "shipCountry": "US",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/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 '{
  "searchQuery": "mechanical keyboard",
  "startUrls": [],
  "maxResults": 25,
  "site": "aliexpress.com",
  "shipCountry": "US",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parsebird/aliexpress-scraper --silent --output-dataset

```

## MCP server setup

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