# AliExpress Product Details Scraper (`magic-scraper/aliexpress-product-details-scraper`) Actor

Full AliExpress product data from URLs, IDs or keywords: every variant with price and stock, ratings, sales, shipping options, specs and seller stats. No login.

- **URL**: https://apify.com/magic-scraper/aliexpress-product-details-scraper.md
- **Developed by:** [Magic](https://apify.com/magic-scraper) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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 Product Details Scraper: Variants, Stock, Shipping & Seller Data

[![AliExpress Product Details Scraper](https://apify.com/actor-badge?actor=magic-scraper/aliexpress-product-details-scraper)](https://apify.com/magic-scraper/aliexpress-product-details-scraper)
![No Cookies Required](https://img.shields.io/badge/Cookies-Not%20Required-success?style=flat-square)
![Pay-Per-Result](https://img.shields.io/badge/Pricing-$4.00%20%2F%201K%20products-blue?style=flat-square)
![Run time](https://img.shields.io/badge/100%20products-~10s-brightgreen?style=flat-square)
![Export](https://img.shields.io/badge/Export-JSON%20|%20CSV%20|%20Excel-orange?style=flat-square)

Extract full **AliExpress** product data from product URLs, IDs or search keywords: every variant (SKU) with its own price and stock, price range and discount, rating, reviews, units sold, shipping options with delivery days, specifications, images, video, seller documents and store stats.

> ▶️ Click **Start**: the form is prefilled with three real products, and results arrive in a few seconds.

Built for **dropshippers, e-commerce sellers, price monitoring tools and market researchers** who need structured AliExpress data without a login or browser extension.

***

### 🚀 Key Facts

| | |
| :--- | :--- |
| **Pricing** | 💰 **$4.00 / 1,000 products** ($0.004 per product) + $0.00005 start fee per GB of run memory |
| **Speed (measured)** | ⏱️ 100 products in ~10 s run time (2026-10-30) |
| **Variants** | ✅ Every SKU with its attributes, price, original price, stock and buy limit |
| **Shipping** | ✅ Method, fee, free shipping flag, ship-from warehouse, delivery days, tracking |
| **Countries & currencies** | 🌍 Prices, stock and shipping for the ship-to country you choose (US, DE, GB, FR, PL, BR, ...) in any currency |
| **Input** | 🔗 URLs (any domain, app share and affiliate links), 🆔 IDs, 🔍 search keywords |
| **How it works** | 🌐 AliExpress' own product JSON over HTTP with rotating residential IPs; no headless browser |
| **Account / Cookies** | ✅ Not required |

***

### 📊 Comparison

Measured on the same 100 product IDs on 2026-10-30:

| | This Actor | Popular alternative |
| :--- | :--- | :--- |
| Run time for 100 products | **~10 s** | ~200 s |
| Price per 1,000 products | **$4.00** | $8.00 |
| Fields filled (price, SKUs, stock, shipping, store, documents) | Same values on 95 of 100 products; the 5 price differences were real price changes between the two runs | — |
| Browser required | No | No |

***

### 📖 How to Scrape AliExpress Products (Step-by-Step)

1. **Add products:** paste product URLs (`https://www.aliexpress.com/item/1005006639944031.html`, `.us` or regional domains, `a.aliexpress.com/_...` share links), bare IDs, or search keywords.
2. **Choose market:** set 🌍 **Ship-to Country** and 💵 **Currency** (default US / USD).
3. **Run & export:** click **Start**, then download JSON, CSV or Excel, or read the dataset via API.

***

### 💳 How Much Does It Cost?

Pay-Per-Event pricing:

- **$4.00 per 1,000 products** ($0.004 per saved product). Apify's free $5 monthly credit covers about 1,250 products.
- **$0.00005 start fee** per GB of run memory ($0.00005 at the default 1 GB). No subscription.
- Products that do not exist, are not sold to your ship-to country, or fail are **not saved and not charged**.

***

### 📥 Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :---: | :--- |
| `🔗 productUrls` | `array` | prefill: 3 URLs | Product pages on any AliExpress domain, app share links, affiliate links. |
| `🆔 productIds` | `array[string]` | — | Bare product IDs, one per line. Duplicates are scraped and billed once. |
| `🔍 searchKeywords` | `array[string]` | — | Find products by keyword and scrape their details. |
| `🔢 maxProductsPerKeyword` | `integer` | `20` | Search results per keyword to scrape (60 per page). |
| `💯 maxItems` | `integer` | `50` (prefill 10) | Stop after this many saved products. |
| `🌍 shipTo` | `string` | `"US"` | Country for prices, stock and shipping options. |
| `💵 currency` | `string` | `"USD"` | Currency for all prices. |
| `⚡ maxConcurrency` | `integer` | `25` | Parallel IP sessions. 25 was the fastest setting in tests. |
| `🌐 proxyConfiguration` | `object` | Apify Proxy | Residential IPs are used automatically; keep the default. |

***

### 📤 Sample Output (JSON)

```json
{
  "productId": "3256810227057009",
  "url": "https://www.aliexpress.com/item/3256810227057009.html",
  "title": "Japanese Metal Acrylic Wooden Luxury LED Decoration Table Lamp Desk Light For Living Room Bedroom Study Lighting Fixtures",
  "currency": "USD",
  "shipTo": "US",
  "price": 126.39,
  "priceMax": 133.39,
  "originalPrice": null,
  "originalPriceMax": null,
  "discountPercent": null,
  "rating": 5,
  "reviewCount": 1,
  "soldCount": 32,
  "soldText": "32 sold",
  "totalStock": 269,
  "images": ["https://ae-pic-a1.aliexpress-media.com/kf/S18416c14452b46799f953fb4db969a32m.jpg", "..."],
  "video": "https://video.aliexpress-media.com/play/u/ae_sg_item/3000926185004/p/1/e/6/t/10301/5000534970420.mp4",
  "categoryId": "39050509",
  "categoryPath": "39/1504/39050509",
  "attributes": [
    { "name": "Is Smart Device", "value": "no" },
    { "name": "Luminous Flux", "value": "2000-82000" }
  ],
  "skuProperties": [
    {
      "id": 136,
      "name": "Emitting Color",
      "values": [
        { "id": 173, "name": "Warm light", "image": null, "color": "#0080FF" },
        { "id": 200002572, "name": "changeable", "image": null, "color": null }
      ]
    }
  ],
  "skus": [
    {
      "skuId": "12000052327549278",
      "attributes": { "Lampshade Color": "H-39cm", "Emitting Color": "Warm light" },
      "price": 126.39,
      "originalPrice": null,
      "stock": 81,
      "maxBuyCount": 81,
      "available": true
    }
  ],
  "shipping": [
    {
      "method": "AliExpress Standard Shipping",
      "code": "CAINIAO_STANDARD",
      "fee": 0,
      "freeShipping": true,
      "shipFrom": "China",
      "shipTo": "US",
      "deliveryDaysMin": 8,
      "deliveryDaysMax": 15,
      "estimatedDelivery": "Nov. 06 – Nov. 13",
      "tracking": true
    }
  ],
  "store": {
    "id": "1105207241",
    "name": "Cozy Beam Lighting Store",
    "url": "https://www.aliexpress.com/store/1105207241",
    "sellerId": "6003830504",
    "positiveRate": 84.6,
    "rating": 4.4,
    "soldLast180Days": "200+",
    "country": "China",
    "openedAt": "2025-10-27 01:05:51",
    "topRatedSeller": false
  },
  "descriptionUrl": "https://pdp.aliexpress-media.com/product/description/pc/v2/en_US/desc.htm?productId=1005010413371761&...",
  "documents": [
    { "type": "PDF", "url": "https://ae-pic-a1.aliexpress-media.com/kf/S425af3ce388446d1a0eadd050a1f5fc2q.pdf" }
  ],
  "searchKeyword": null,
  "scrapedAt": "2026-10-30T04:55:18.911070+00:00"
}
```

> Real record from 2026-10-30, shortened (`images`, `attributes`, `skuProperties` and `skus` trimmed). Values AliExpress does not show (here `originalPrice`, `discountPercent`) are `null`, never guessed.

***

### ⛔ What this Actor does not do

- **No reviews text.** It returns the rating and review count, not individual reviews.
- **No full HTML description.** You get `descriptionUrl` (AliExpress' description page) plus `attributes` and `documents`.
- **Titles are in English** for every ship-to country.
- **US-only listings** (IDs starting with `3256`, from aliexpress.us) are usually not sold to other countries; with a non-US ship-to they are skipped and not charged.
- **No login-only data:** coupons for your account, buyer-specific prices and "new user" deals are not included.
- `store.rating` and `store.soldLast180Days` exist only for stores where AliExpress shows them (about 30% and 65% of products in our test).

***

### 💻 Python & JavaScript Integration

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("magic-scraper/aliexpress-product-details-scraper").call(run_input={
    "productIds": ["1005006639944031"],
    "shipTo": "DE",
    "currency": "EUR",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["price"], item["currency"], item["totalStock"])
```

#### JavaScript / Node.js (`apify-client`)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('magic-scraper/aliexpress-product-details-scraper').call({
    searchKeywords: ['desk lamp'],
    maxProductsPerKeyword: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.length} products with full variant data`);
```

***

### ❓ FAQ

#### Why does the Actor use residential proxies?

AliExpress answers only a few product requests per IP, then shows a captcha. The Actor switches to a fresh residential IP whenever that happens, so large lists finish in seconds. You do not need to configure anything.

#### Are prices the same as on the website?

Yes, the values come from the same product JSON the AliExpress page loads, for the ship-to country and currency you choose. Prices change often; compare runs made at the same moment.

#### Can I monitor prices or stock daily?

Yes. Save your input as a task and schedule it; every run returns current prices and per-variant stock.

#### Is scraping AliExpress legal?

The Actor collects publicly visible product information only, without logging in. Check that your use complies with AliExpress' terms and data protection laws (e.g. GDPR) in your jurisdiction.

***

### 🤖 For AI Agents & LLM Apps

Actor: `magic-scraper/aliexpress-product-details-scraper` (via the [Apify MCP server](https://mcp.apify.com/) or Apify API).

**Purpose:** full AliExpress product records (variants, stock, prices, shipping, store) from URLs, IDs or keywords.

**Minimal input:**

```json
{ "productIds": ["1005006639944031"], "shipTo": "US", "currency": "USD" }
```

**Output:** one record per product: `productId`, `url`, `title`, `currency`, `shipTo`, `price`, `priceMax`, `originalPrice`, `originalPriceMax`, `discountPercent`, `rating`, `reviewCount`, `soldCount`, `soldText`, `totalStock`, `images`, `video`, `categoryId`, `categoryPath`, `attributes`, `skuProperties`, `skus`, `shipping`, `store`, `descriptionUrl`, `documents`, `searchKeyword`, `scrapedAt`.

**Behaviors:** duplicates are removed; non-existent and not-sold-to-country products are skipped (not charged) and reported in the status message; `maxItems` caps billing.

***

### 🔗 Related Scrapers

- 🔥 [Temu Trending Products Scraper](https://apify.com/magic-scraper/temu-trending-products-scraper) — Temu lightning deals and trending products with real prices and units sold.
- 🛍️ [Etsy Bestsellers & Tags Scraper](https://apify.com/magic-scraper/etsy-bestsellers-tags-scraper) — Etsy bestsellers, in-cart demand and SEO tags.
- 📇 [eBay Seller Contact Scraper](https://apify.com/magic-scraper/ebay-seller-contact-scraper) — eBay seller business details and listing data.

***

### SEO Keywords

AliExpress product scraper, AliExpress scraper API, AliExpress product details, AliExpress price tracker, AliExpress stock monitor, AliExpress variants scraper, AliExpress SKU scraper, AliExpress shipping scraper, AliExpress dropshipping data, AliExpress product data extractor, scrape AliExpress by URL, AliExpress search scraper, AliExpress seller store data, AliExpress product research tool, AliExpress price monitoring.

# Actor input Schema

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

AliExpress product pages, e.g. https://www.aliexpress.com/item/1005006639944031.html. .com, .us and regional domains, app share links (a.aliexpress.com/\_...) and affiliate links work.

## `productIds` (type: `array`):

Bare product IDs, one per line (e.g. 1005006639944031). Combined with the URLs above; duplicates are scraped and billed once.

## `searchKeywords` (type: `array`):

Find products by keyword on AliExpress search and scrape their full details (e.g. 'wireless earbuds').

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

How many search results per keyword to scrape in detail (search order, 60 per page).

## `maxItems` (type: `integer`):

Stop after this many products are saved. Protects your budget.

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

Two-letter country code: prices, stock, warehouse and shipping options are returned for this country (US, GB, DE, FR, PL, BR, ...). Titles stay in English. Products not sold to the country are skipped and not charged (US-only listings with IDs starting 3256 are usually not available elsewhere).

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

Three-letter currency code for all prices (USD, EUR, GBP, ...).

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

How many proxy sessions fetch products in parallel. AliExpress serves only a few products per IP, so the Actor keeps switching IPs. 25 is the measured sweet spot at the default 1 GB memory; going higher was not faster in tests and needs more memory.

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

The first products use the run's own IP; after AliExpress limits it the Actor rotates Apify residential proxy sessions (DE, AU, CA, IT and ES IPs by default, where AliExpress blocks least; prices and shipping still follow Ship-to and Currency, not the IP country). Datacenter proxies are blocked by AliExpress. Turn the proxy off to scrape only ~9 products per run.

## Actor input object example

```json
{
  "productUrls": [
    {
      "url": "https://www.aliexpress.com/item/1005006639944031.html"
    },
    {
      "url": "https://www.aliexpress.com/item/1005009383937691.html"
    },
    {
      "url": "https://www.aliexpress.com/item/1005006959700436.html"
    }
  ],
  "maxProductsPerKeyword": 20,
  "maxItems": 10,
  "shipTo": "US",
  "currency": "USD",
  "maxConcurrency": 25,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Dataset items: title, price range, per-variant price and stock, rating, sales, shipping options, specifications and store info.

# 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 = {
    "productUrls": [
        {
            "url": "https://www.aliexpress.com/item/1005006639944031.html"
        },
        {
            "url": "https://www.aliexpress.com/item/1005009383937691.html"
        },
        {
            "url": "https://www.aliexpress.com/item/1005006959700436.html"
        }
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("magic-scraper/aliexpress-product-details-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 = {
    "productUrls": [
        { "url": "https://www.aliexpress.com/item/1005006639944031.html" },
        { "url": "https://www.aliexpress.com/item/1005009383937691.html" },
        { "url": "https://www.aliexpress.com/item/1005006959700436.html" },
    ],
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("magic-scraper/aliexpress-product-details-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 '{
  "productUrls": [
    {
      "url": "https://www.aliexpress.com/item/1005006639944031.html"
    },
    {
      "url": "https://www.aliexpress.com/item/1005009383937691.html"
    },
    {
      "url": "https://www.aliexpress.com/item/1005006959700436.html"
    }
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call magic-scraper/aliexpress-product-details-scraper --silent --output-dataset

```

## MCP server setup

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