# AliExpress Scraper API — Products, Variants, Reviews & Sellers (`pro100chok/aliexpress-scraper`) Actor

Scrape AliExpress by keyword, category or URL. One row per product: price, discount, orders sold, rating, every SKU variant with live stock, shipping cost and delivery dates, full specs, reviews and seller profile. From $1.50/1k products, reviews from $0.40/1k. No login or API key.

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

## Pricing

from $1.50 / 1,000 product from searches

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 API — Products, Variants, Reviews & Sellers

Scrape AliExpress products by keyword, category or URL and get **one clean row per product** — price and discount, orders sold, rating, **every SKU variant with its own price and live stock**, shipping cost and delivery dates for your country, full specifications, customer reviews and the seller's profile.

**$2.00 per 1,000 products on the free plan, from $1.50 per 1,000 on paid plans.** Reviews cost from **$0.40 per 1,000** — the cheapest review extraction in this category. No login, no cookies to manage, no API key, no code, and no proxies to configure.

***

### What does this AliExpress Scraper do?

Three modes, one dataset shape. Pick the job and paste your input:

| Mode | You give it | You get back |
|---|---|---|
| **Search & listings** | Keywords, or any AliExpress search / category URL | One row per product found — price, discount, orders sold, rating, delivery estimate, promo badges |
| **Product details** | Product URLs or bare product IDs | The same rows, filled out: every variant, live stock, shipping options, specs, gallery, seller |
| **Reviews** | Product URLs or bare product IDs | One row per product with its reviews attached as a list |

AliExpress has no practical public API for bulk product data — the affiliate API is gated behind partner approval and returns a narrow slice of fields with no variant-level stock, no review text and no shipping quotes. This Actor is a working **unofficial AliExpress API**: it collects the same publicly visible data a shopper sees, and returns it as structured JSON you can query.

***

### One row = one product (no record soup)

Most scrapers scatter a single product across several record types and leave you to join them by ID. This one doesn't. **Every row is one product**, and everything belonging to it lives in a named field on that row:

- `skus` — every purchasable variant with its own price, original price, live stock, availability and image
- `variantProperties` — the option groups (Color, Size…) and their values
- `shipping` — cost, carrier, delivery window, ETA dates, tracking, plus `options` for every alternative
- `store` — the seller: ratings, positive-feedback rate, years active, follower count, service scores
- `reviews` — that product's reviews, as a list
- `reviewsSummary` — the star breakdown plus recurring review themes with mention counts
- `specifications` / `specificationsFlat` — specs as pairs, and as one flat object that exports cleanly to CSV

One product is one object you can hand straight to your code. Rows are written **the moment each product is complete**, so results start appearing within seconds and stopping a run early keeps everything already collected.

***

### Why use this scraper?

✅ **82 documented output fields**, one row per product — measured 73 populated fields on a real detailed product
✅ **Every SKU variant, not a sample** — a real run returned **252 variants** on a single listing, each with its own price and stock
✅ **Live stock levels** per variant plus total inventory and the per-shopper purchase limit
✅ **Shipping for your country** — cost, carrier, delivery window in days, ETA dates, warehouse, tracking, and every alternative option
✅ **Up to 2,000 reviews per product**, with 4 filters (all, buyer photos, follow-up, local) and 2 sort orders
✅ **Rating breakdown + review themes** — 5/4/3/2/1 counts, positive rate, photo-review count, and aggregated highlights like *"good sound" ×240*
✅ **Full seller profile** included with product details at no extra charge — no separate "store lead" fee
✅ **50 delivery countries and 20 languages**; prices arrive in the destination country's currency
✅ **60 products per page, up to 60 pages per keyword**
✅ **`maxItems` is a hard ceiling** — the run stops the moment it is hit, so you never pay for more than you asked for
✅ **8 ready-made dataset views** — Overview, Products, Variants and stock, Shipping, Reviews, Sellers and stores, Specifications, Keyword insights

#### How does it compare?

| Data | Official / affiliate API | Typical AliExpress scrapers | This Actor |
|---|---|---|---|
| Access | Partner approval required | — | ✅ Instant, no keys |
| Sale + original price + discount % | Partial | ✅ | ✅ |
| Orders sold | ❌ | Usually the "5,000+" text only | ✅ Text, parsed number, **and exact count where exposed** |
| Full SKU/variant matrix | ❌ | Often a separate paid Actor | ✅ Included |
| Live stock per variant | ❌ | ❌ | ✅ |
| Shipping cost + delivery dates | ❌ | Rarely | ✅ Every option |
| Full specifications | Partial | Sometimes | ✅ Pairs **and** flat for CSV |
| Reviews with text + translation | ❌ | Usually a separate Actor | ✅ Nested in the product row |
| Rating breakdown & review themes | ❌ | ❌ | ✅ |
| Seller profile & service scores | ❌ | Often billed as a "lead" | ✅ Included |
| Coupons & promotions | ❌ | ❌ | ✅ |
| One row per product | — | Mixed record types to join | ✅ Always |

***

### What data can you extract from AliExpress?

**Pricing** — `price`, `originalPrice`, `discountPercent`, `currency`, `priceMin` / `priceMax` across variants, `taxRate`, `taxAmount`, `coupons`, `promotionTags`, `bundleDealUrl`.

**Demand signals** — `rating`, `reviewsCount`, `ordersText` (as displayed), `ordersCount` (parsed), `ordersCountExact` (where AliExpress exposes it), `ordersCountSeller`, `wishlistCount`, `listedAt`, `isChoice`, `isAd`.

**Variants & stock** — `skus[]` with `skuId`, `attributes`, `price`, `originalPrice`, `stock`, `available`, `image`; plus `variantProperties`, `skuCount`, `stockTotal`, `maxPerBuyer`, `selectedSkuId`.

**Shipping** — `shipping.cost`, `.free`, `.provider`, `.shipsFrom`, `.shipsTo`, `.deliveryDaysMin` / `.deliveryDaysMax`, `.deliveryEtaMin` / `.deliveryEtaMax`, `.tracking`, `.options[]`.

**Product content** — `specifications`, `specificationsFlat`, `description`, `images`, `imagesCount`, `manualUrl`, `afterSaleService`, `buyerProtection`, `complianceNotes`, `categoryId`, `categoryPath`.

**Reviews** — `reviews[]` with `rating`, `text`, `textTranslated`, `reviewerName`, `reviewerCountry`, `date`, `variant`, `logistics`, `images`, `helpfulVotes`, `aspectRatings`; plus `reviewsSummary` with `average`, `count`, `fiveStar`…`oneStar`, `positiveRate`, `withPhotos`, `highlights[]`.

**Seller & store** — `store.name`, `.storeId`, `.url`, `.logo`, `.sellerId`, `.country`, `.openedAt`, `.yearsActive`, `.positiveRate`, `.ratingCount`, `.level`, `.topRated`, `.localWarehouse`, `.scoreCommunication`, `.scoreAsDescribed`, `.followers`.

**Keyword insights** *(optional)* — `totalResults`, `relatedKeywords`, `trendingKeywords`, `seoDescription`, and `facets`: every on-site filter with its values — brands, materials, colours, styles, shipping origins, price bands. A real run returned **15 facet groups** for one keyword.

#### Sample field values

| Field | Example value |
|---|---|
| `title` | "Digital Display Bluetooth Earphones with Mic TWS E6S Wireless Earbuds" |
| `price` / `originalPrice` | `0.99` / `6.81` |
| `discountPercent` | `85` |
| `ordersText` / `ordersCountExact` | "This seller: 600+ sales | Total sales: 100K+" / `120058` |
| `stockTotal` / `skuCount` | `4049` / `5` |
| `shipping.deliveryDaysMin`–`Max` | `6`–`10` |
| `store.positiveRate` / `store.followers` | `100.0` / `26131` |
| `reviewsSummary.highlights[0]` | `{ "text": "good sound", "count": 240, "sentiment": "positive" }` |

***

### How to scrape AliExpress step by step

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan includes **$5 of monthly credit**, which is about 2,500 products or 5,000 reviews on this Actor.
2. Open the Actor and pick **What to scrape**: Search & listings, Product details, or Reviews.
3. Enter a keyword like `wireless earbuds`, or paste AliExpress URLs, or paste bare product IDs.
4. Set **Max items** — a hard ceiling on rows, so the run cannot bill past it.
5. Pick your **Deliver to** country and language. Prices come back in that country's currency.
6. Tick the extras you want: full product details, customer reviews, description text, keyword insights.
7. Click **Start**. Rows appear as they are found — click **Export** for JSON, CSV, Excel, XML or HTML.

***

### How do I control the cost?

Two independent brakes, both enforced in code:

**Max items** is a hard ceiling on dataset rows. One row is one product, so it is effectively your maximum number of products. Variants, shipping, seller data and reviews ride *inside* the row. The run stops the moment the ceiling is reached.

**Extras are opt-in.** Leave *Add full product details* off for a fast, cheap price-and-orders sweep at the listed-product rate. Turn it on only when you need variants, stock, shipping and seller data.

Reviews are billed per review, not per request, so a product with 2,000 reviews costs the same whether it takes 1 request or 100.

***

### Which products are supported as input?

Paste any of these into **Product URLs or IDs** — all are accepted:

```
3256810343908999
https://www.aliexpress.com/item/3256810343908999.html
https://www.aliexpress.us/item/3256810343908999.html
https://de.aliexpress.com/item/3256810343908999.html
https://www.aliexpress.com/item/3256810343908999.html?spm=a2g0o.productlist.0.0
```

You can also paste search URLs, category URLs and product URLs together into **AliExpress URLs** — product pages are detected automatically and scraped as full details, everything else is paginated as a listing.

***

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `scrapeType` | string | `search` | `search`, `productDetails` or `reviews` |
| `searchQueries` | array | `["wireless earbuds"]` | Keywords to search, one per line |
| `startUrls` | array | `[]` | Any AliExpress search, category or product URLs |
| `productUrls` | array | `[]` | Product URLs or bare product IDs |
| `maxItems` | integer | `100` | Hard ceiling on rows |
| `maxPages` | integer | `2` | Listing pages per keyword, up to 60 (60 products each) |
| `maxConcurrency` | integer | `6` | Products enriched in parallel, 1–20 |
| `maxRetryMinutes` | integer | `15` | How long to keep retrying listing pages that AliExpress rate-limits |
| `sortBy` | string | `default` | `default`, `orders`, `newest`, `priceAsc`, `priceDesc` |
| `minPrice` / `maxPrice` | integer | — | Price band in the destination currency |
| `filters` | array | `[]` | `bigSale`, `freeShipping`, `choice`, `fourStarPlus` |
| `shipFromCountry` | string | — | Two-letter code, e.g. `US`, `ES`, `CN` |
| `categoryId` | string | — | Restrict a keyword search to one category ID |
| `includeProductDetails` | boolean | `false` | Add variants, stock, shipping, specs, seller |
| `includeReviews` | boolean | `false` | Attach reviews + `reviewsSummary` |
| `maxReviewsPerProduct` | integer | `20` | Up to 2,000 |
| `reviewsFilter` | string | `all` | `all`, `withPhotos`, `additional`, `localReviews` |
| `reviewsSort` | string | `default` | `default`, `newest` |
| `includeDescription` | boolean | `false` | Add the long description as plain text |
| `includeSearchInsights` | boolean | `false` | One keyword report per search |
| `region` | string | `US` | Delivery country — 50 supported |
| `currency` | string | `USD` | Must match the country; the country wins and the log says so |
| `locale` | string | `en_US` | 20 languages |
| `proxyConfiguration` | object | Residential | Leave as-is unless you have your own proxies |

***

### Ready-to-paste input recipes

#### Find best sellers under $20

```json
{
  "scrapeType": "search",
  "searchQueries": ["wireless earbuds", "phone case"],
  "sortBy": "orders",
  "maxPrice": 20,
  "filters": ["fourStarPlus", "freeShipping"],
  "maxPages": 5,
  "maxItems": 500
}
```

#### Full sourcing research on specific products

```json
{
  "scrapeType": "productDetails",
  "productUrls": [
    "https://www.aliexpress.com/item/3256810343908999.html",
    "3256806779925038"
  ],
  "includeDescription": true,
  "maxItems": 100
}
```

#### Review mining with buyer photos only

```json
{
  "scrapeType": "reviews",
  "productUrls": ["3256810343908999"],
  "maxReviewsPerProduct": 200,
  "reviewsFilter": "withPhotos",
  "maxItems": 50
}
```

#### Price tracking for a fixed market

```json
{
  "scrapeType": "productDetails",
  "productUrls": ["3256810343908999", "3256806779925038"],
  "region": "DE",
  "currency": "EUR",
  "locale": "de_DE",
  "maxItems": 50
}
```

#### Scrape a category with full details

```json
{
  "scrapeType": "search",
  "startUrls": [
    { "url": "https://www.aliexpress.com/category/205000000/consumer-electronics.html" }
  ],
  "includeProductDetails": true,
  "includeReviews": true,
  "maxReviewsPerProduct": 10,
  "maxPages": 3,
  "maxItems": 300
}
```

#### Keyword and category research

```json
{
  "scrapeType": "search",
  "searchQueries": ["yoga mat", "resistance bands", "kettlebell"],
  "includeSearchInsights": true,
  "maxPages": 1,
  "maxItems": 200
}
```

***

### Output example

One product row, trimmed — a full row carries 70+ fields:

```json
{
  "type": "product",
  "productId": "3256806779925038",
  "productUrl": "https://www.aliexpress.com/item/3256806779925038.html",
  "title": "Digital Display Bluetooth Earphones with Mic TWS E6S Wireless Earbuds",
  "price": 0.99,
  "originalPrice": 6.81,
  "discountPercent": 85,
  "currency": "USD",
  "priceMin": 0.99,
  "priceMax": 4.87,
  "rating": 4.9,
  "reviewsCount": 13677,
  "ordersText": "This seller: 600+ sales | Total sales: 100K+",
  "ordersCount": 100000,
  "ordersCountExact": 120058,
  "wishlistCount": 810,
  "stockTotal": 4049,
  "maxPerBuyer": 1,
  "isChoice": true,
  "listedAt": "2024-05-13 00:00:00",
  "badges": ["Save $5.82", "Delivery: Aug 09 - 14"],
  "skuCount": 5,
  "variantProperties": [
    { "name": "Color", "values": ["WHITE", "Blue", "green", "black", "Pink"] }
  ],
  "skus": [
    {
      "skuId": "12000038883449394",
      "attributes": [{ "name": "Color", "value": "green" }],
      "price": 0.99,
      "originalPrice": 6.81,
      "currency": "USD",
      "stock": 4,
      "available": true,
      "image": "https://ae-pic-a1.aliexpress-media.com/kf/S69c665aed7f84b1393dea408af0ae0205.jpg"
    }
  ],
  "shipping": {
    "cost": 1.99,
    "free": false,
    "currency": "USD",
    "provider": "AliExpress Selection Standard Shipping",
    "shipsFrom": "China",
    "shipsTo": "US",
    "deliveryDaysMin": 6,
    "deliveryDaysMax": 10,
    "deliveryEtaMin": "Aug. 09",
    "deliveryEtaMax": "Aug. 13",
    "tracking": true
  },
  "store": {
    "name": "Stone's Store",
    "storeId": "1103573332",
    "url": "https://www.aliexpress.com/store/1103576287",
    "sellerId": "2678280160",
    "country": "China",
    "openedAt": "Mar 1, 2024",
    "yearsActive": 2,
    "positiveRate": 100.0,
    "level": "12-s",
    "topRated": false,
    "localWarehouse": false,
    "scoreCommunication": 4.8,
    "scoreAsDescribed": 5.0,
    "followers": 26131
  },
  "reviewsScraped": 5,
  "reviewsSummary": {
    "average": 4.9,
    "count": 2798,
    "fiveStar": 10774,
    "fourStar": 1922,
    "threeStar": 981,
    "positiveRate": 92.8,
    "withPhotos": 633,
    "highlights": [{ "text": "good sound", "count": 240, "sentiment": "positive" }]
  },
  "reviews": [
    {
      "reviewId": "60094259783670735",
      "rating": 5.0,
      "text": "These earbuds work much better than I expected for the price...",
      "textTranslated": "These earbuds work much better than i expected for the price...",
      "reviewerName": "D***n",
      "reviewerCountry": "US",
      "date": "14 Dec 2025",
      "variant": "Color:WHITE",
      "logistics": "Aliexpress Selection Standard",
      "images": ["https://ae-pic-a1.aliexpress-media.com/kf/....jpg"],
      "helpfulVotes": 3,
      "aspectRatings": [{ "name": "Quality of sound", "value": "Good" }]
    }
  ],
  "specificationsFlat": { "Material": "ABS,Plastic", "Battery Capacity[mAh]": "1200" },
  "coupons": [{ "text": "$2.00 off on $18.00", "promotionId": "5000000213006678" }],
  "afterSaleService": "Free returns within 90 days",
  "categoryPath": "44/100000306/63705",
  "searchQuery": "wireless earbuds",
  "position": 1,
  "region": "US",
  "scrapedAt": "2026-08-04T09:12:41Z"
}
```

***

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

You pay per result, with no monthly fee and no minimum. Prices drop automatically on higher Apify plans.

| Event | Free plan | Paid plans from |
|---|---|---|
| Product from search | $2.00 / 1,000 | **$1.50 / 1,000** |
| Product with full details | $6.00 / 1,000 | **$4.40 / 1,000** |
| Customer review | $1.00 / 1,000 | **$0.40 / 1,000** |
| Keyword insights report | $3.00 / 1,000 | **$1.80 / 1,000** |

#### Worked examples

| Job | Free plan | Paid plans from |
|---|---|---|
| 1,000 products from search | $2.00 | $1.50 |
| 1,000 products with full details | $6.00 | $4.40 |
| 500 products + 20 reviews each | $13.00 | $6.20 |
| 100 products + 200 reviews each | $20.60 | $8.44 |

The Apify free plan's **$5 monthly credit** covers roughly **2,500 products** from search, **833 products** with full details, or **5,000 reviews** — enough to evaluate the Actor properly before paying anything.

Pricing is all-in: everything the run needs to fetch the data is included in the per-result price.

***

### Integrations

Send the dataset anywhere without writing code: **Make**, **Zapier**, **Google Sheets**, **Google Drive**, **Slack**, **Airtable**, **n8n**, **GitHub**, or your own endpoint via **webhooks**.

For code, use the official [JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients, the [REST API](https://docs.apify.com/api/v2), or the CLI. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run price checks daily or weekly, and [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger your pipeline the moment a run finishes.

Export formats: JSON, JSONL, CSV, Excel, XML, HTML and RSS.

***

### Use with AI agents (MCP)

This Actor works as a tool for LLM agents through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). Point your agent at `pro100chok/aliexpress-scraper` and it can call it directly.

**Tool description for your agent:** given an AliExpress keyword, category URL, product URL or product ID, returns one JSON object per product with pricing, variants and stock, shipping to a chosen country, specifications, seller profile and reviews.

**Example prompt:**

> Find the 20 best-selling wireless earbuds under $10 on AliExpress that ship to Germany in under 14 days, and give me each one's variant stock levels and the seller's positive-feedback rate.

**Output interpretation:** every row is one product. Variants are in `skus`, the seller is in `store`, reviews are in `reviews`, and the star breakdown is in `reviewsSummary`. Absent fields mean AliExpress did not publish that value for that product.

**Cost guidance for agents:** set `maxItems` to the number of products you actually need — it is a hard ceiling. Leave `includeProductDetails` off when only price and orders are needed.

***

### Popular use cases

- **Dropshipping product research** — find winning products by orders sold, filter to 4-stars-and-up with free shipping, and check real stock before you list.
- **Amazon FBA / eBay / Shopify sourcing** — pull landed cost signals: item price, shipping cost and delivery window to your market.
- **Price and stock monitoring** — schedule a daily run over a fixed product list and diff `price`, `priceMin`, `stockTotal` and per-variant stock.
- **Supplier vetting** — shortlist sellers by `store.positiveRate`, `store.yearsActive`, `store.scoreAsDescribed` and follower count.
- **Review mining and sentiment datasets** — thousands of reviews with original text plus translation, buyer country and the variant purchased.
- **Assortment and catalogue building** — full specifications, image galleries and variant matrices ready to import.
- **Keyword and category research** — total match counts, related and trending keywords, and every filter facet with its values.
- **Competitive market analysis** — price bands, discount depth, Choice penetration and promotion mechanics across a category.

***

### Is it legal to scrape AliExpress?

Scraping publicly available data is generally legal, and this Actor only collects information any visitor can see on AliExpress without logging in. It does not access private accounts, and it does not collect buyer contact details — review author names arrive masked by AliExpress itself (`D***n`).

You are responsible for how you use the data: comply with applicable law, including GDPR and CCPA where personal data is involved, and with AliExpress's terms. For a fuller treatment, read Apify's guide on [whether web scraping is legal](https://blog.apify.com/is-web-scraping-legal/). If you plan to publish or resell scraped content, take your own legal advice first.

***

### Limitations

Stated plainly, so nothing surprises you:

- Listing pages are rate-limited by AliExpress. The Actor retries them on fresh connections and parks a page it cannot load to come back to it later, but a run started during a heavy limiting window can return fewer pages than requested.
- Delisted products, and products unavailable in your chosen delivery country, return no data. Those are skipped rather than written as empty rows, so they never consume your item budget.
- If a product's full record cannot be read, the row is still delivered with everything the listing provided — you may see a row with prices and ratings but no `skus`, `shipping` or `store`.
- Currency follows the delivery country. Requesting a currency the country does not use is reported in the log and the country's currency is used, so a row never mixes two currencies.
- The rating breakdown in `reviewsSummary` is AliExpress's own aggregate across similar listings, so its star counts sum to `reviewsCount` rather than to `reviewsSummary.count`.
- Not every field is populated for every product. AliExpress omits values for many listings; check several rows before concluding a run failed.
- There is no built-in change detection or incremental mode — schedule the Actor and diff the datasets on your side.

***

### FAQ

#### Does AliExpress have a public API?

Not a practical one for this. The affiliate API needs partner approval and returns a narrow field set with no variant stock, no review text and no shipping quotes. This Actor is the working alternative.

#### Do I need an AliExpress account or cookies?

No. No login, no cookies, no API key, no browser extension.

#### Do I need to set up proxies?

No. Everything needed to fetch the data is included in the per-result price and configured by default.

#### Can I scrape all variants and their stock?

Yes — turn on *Add full product details*, or use the Product details mode. Each variant comes with its own price, original price, live stock, availability and image. A real run returned 252 variants on one product.

#### How many products can I collect per keyword?

60 per listing page, up to 60 pages per keyword — about 3,600 products per keyword, across as many keywords as you like. `maxItems` caps the total.

#### Can I scrape reviews in bulk?

Yes, up to 2,000 per product, optionally filtered to reviews with buyer photos, follow-up reviews, or reviews from your own region. They arrive as a `reviews` list on the product's row together with `reviewsSummary`.

#### Are prices in my currency?

Prices come back in the currency of the delivery country you pick — Germany in EUR, the US in USD, Japan in JPY. Choose the country whose currency you want.

#### Can I export to CSV or Excel?

Yes — JSON, JSONL, CSV, Excel, XML, HTML and RSS. Nested fields like `skus` and `reviews` stay as JSON inside the cell; `specificationsFlat` is provided specifically so specs export as clean columns.

#### Will every field be filled for every product?

No. AliExpress does not publish every value for every listing, and empty fields are omitted rather than written as nulls. Check several rows before assuming something went wrong.

#### Will I be charged for URLs that return nothing?

No. Products that are delisted or unavailable in your delivery country are skipped instead of being written as empty rows, so they cost you no result events.

#### Why did I get fewer results than `maxItems`?

Either the search genuinely has fewer matches, `maxPages` capped the crawl, or AliExpress rate-limited some listing pages during the run. The log states which, per page.

#### Can I get the seller's email or phone number?

No. AliExpress does not publish seller contact details, so the Actor cannot return them. You get the store URL, ratings, service scores, country and years active.

#### How do I find suppliers rather than products?

Turn on *Add full product details*. Every row then carries a `store` object with the seller's ratings, positive-feedback rate, years active and service scores — group or deduplicate by `store.sellerId` on your side.

#### Can I track prices automatically?

Yes. Fix the delivery country so numbers are comparable, put your product IDs in `productUrls`, and run it on an Apify Schedule. Diff the datasets between runs.

#### Does it work with mobile or regional AliExpress URLs?

Yes. Bare IDs, `www.aliexpress.com`, `aliexpress.us` and regional subdomains such as `de.aliexpress.com` are all accepted, with or without tracking parameters.

***

### Feedback & support

Found a bug or need a field that isn't there? Open an issue on the Actor's **Issues** tab with your run ID — that is the fastest route to a fix. Feature requests for additional AliExpress data are welcome.

***

### More scrapers by this developer

Build a full e-commerce and market-research stack:

- [Amazon Scraper API](https://apify.com/pro100chok/amazon-scraper) — products, reviews, sellers, best sellers
- [TikTok Shop Scraper & Analytics](https://apify.com/pro100chok/tiktok-shop-scraper-usage) — products and shop performance for social commerce
- [Website Contact Scraper](https://apify.com/pro100chok/extract-emails) — bulk emails, phones and socials for supplier outreach
- [Trustpilot Scraper](https://apify.com/pro100chok/trustpilot-all-in-one-scraper) — reviews, company data and TrustScore
- [Google Maps Scraper API](https://apify.com/pro100chok/google-maps-scraper) — local business leads, reviews and photos
- [SimilarWeb Fast Scraper](https://apify.com/pro100chok/similarweb-scraper) — traffic, rankings and audience analytics

***

**Tags:** aliexpress scraper, aliexpress api, unofficial aliexpress api, aliexpress product scraper, aliexpress data extraction, aliexpress price scraper, aliexpress reviews scraper, aliexpress seller scraper, aliexpress sku scraper, aliexpress variant scraper, aliexpress stock checker, dropshipping product research, aliexpress dropshipping tool, product sourcing api, aliexpress category scraper, aliexpress keyword research, ecommerce price monitoring, competitor price tracking, supplier verification, aliexpress bulk export, aliexpress csv export, aliexpress json api, aliexpress crawler, marketplace data api

# Actor input Schema

## `scrapeType` (type: `string`):

Pick the job. 'Search & listings' walks keyword or category pages and returns product cards. 'Product details' returns the full record for specific products (all SKU variants, stock, shipping, specs, seller). 'Reviews' returns customer reviews for specific products.

## `searchQueries` (type: `array`):

Keywords to search on AliExpress, one per line. Used by the 'Search & listings' mode. Example: wireless earbuds

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

Paste any AliExpress URLs: search result pages, category pages, or product pages. Product pages are automatically scraped as full details; everything else is treated as a listing to paginate.

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

Product page URLs or bare product IDs (e.g. 3256810343908999), one per line. Required for the 'Product details' and 'Reviews' modes.

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

Hard ceiling on the number of rows in the dataset. One row is one product (with its variants, shipping, seller and reviews nested inside), so this is effectively the maximum number of products. The run stops the moment the limit is hit, so you never pay for more results than you asked for.

## `maxPages` (type: `integer`):

How many result pages to walk for each keyword or listing URL. Each page holds up to 60 products.

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

How many products to enrich in parallel. Lower it if you see many retries; raise it for faster runs on large jobs.

## `maxRetryMinutes` (type: `integer`):

AliExpress limits how often search result pages can be loaded, and those limits come and go in waves. Rather than giving up, the Actor parks a page it could not load and keeps coming back to it for up to this long while it works on your other keywords. Raise it for stubborn runs, lower it if you would rather the run finish quickly with whatever it got.

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

Ordering of the search results, matching the sort dropdown on AliExpress.

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

Only return products at or above this price, in the selected currency. Leave empty for no minimum.

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

Only return products at or below this price, in the selected currency. Leave empty for no maximum.

## `filters` (type: `array`):

On-site toggles to narrow the results: discounted items, free shipping, AliExpress Choice items, and items rated 4 stars or higher.

## `shipFromCountry` (type: `string`):

Only return products shipped from this country, as a two-letter code (e.g. US, ES, CN). Leave empty for any origin.

## `categoryId` (type: `string`):

Restrict a keyword search to one AliExpress category ID (e.g. 63705). You can read the ID off a category URL, or from the categoryId field of any scraped product.

## `includeProductDetails` (type: `boolean`):

Enrich every product found with its complete record: every SKU variant with its own price and stock, shipping cost and delivery estimate, full specifications, image gallery and seller/store data. Everything is added to the same product row, not to extra rows.

## `includeReviews` (type: `boolean`):

Attach customer reviews to every product row, in a nested `reviews` list — star rating, review text and translation, buyer country, the variant purchased and buyer photos. A `reviewsSummary` field with the full star breakdown comes with it.

## `maxReviewsPerProduct` (type: `integer`):

Upper bound on reviews collected for each product.

## `reviewsFilter` (type: `string`):

Which reviews to collect: all of them, only reviews with buyer photos, only follow-up reviews, or only reviews from your selected region.

## `reviewsSort` (type: `string`):

Order the reviews come back in.

## `includeDescription` (type: `boolean`):

Fetch the long product description and attach it to the product detail record as plain text.

## `includeSearchInsights` (type: `boolean`):

Emit one row per keyword with the total number of matching products, related and trending keywords, and every available on-site filter with its values (brands, materials, colours, shipping origins). Good for keyword and category research.

## `region` (type: `string`):

The shopper country AliExpress should price for. This drives prices, currency, promotions, shipping cost, delivery dates and the language of the storefront.

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

Currency for every price in the output. AliExpress prices in the currency of the delivery country, so pick a currency that matches your Deliver to selection — if they disagree, the country wins and the run says so in the log.

## `locale` (type: `string`):

Language for titles, specifications, review translations and shipping labels.

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

Proxy used for all requests. Residential proxies are required — AliExpress blocks datacenter IPs. To use your own proxy, open the Custom proxies tab and add its URL.

## Actor input object example

```json
{
  "scrapeType": "search",
  "searchQueries": [
    "wireless earbuds"
  ],
  "startUrls": [],
  "productUrls": [],
  "maxItems": 100,
  "maxPages": 2,
  "maxConcurrency": 6,
  "maxRetryMinutes": 15,
  "sortBy": "default",
  "filters": [],
  "includeProductDetails": false,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "reviewsFilter": "all",
  "reviewsSort": "default",
  "includeDescription": false,
  "includeSearchInsights": false,
  "region": "US",
  "currency": "USD",
  "locale": "en_US",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

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

No description

## `variants` (type: `string`):

No description

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

No description

## `reviews` (type: `string`):

No description

## `sellers` (type: `string`):

No description

## `specs` (type: `string`):

No description

## `keywords` (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 = {
    "searchQueries": [
        "wireless earbuds"
    ]
};

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

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

```

## MCP server setup

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