# AliExpress Scraper (`omkar-cloud/aliexpress-scraper`) Actor

Search AliExpress in real time and scrape full product details by URL or ID — one Actor for both. Get prices, discounts, ratings, order counts, SKU variants, stock, shipping, and store info. 60+ ship-to countries with local-currency prices.

- **URL**: https://apify.com/omkar-cloud/aliexpress-scraper.md
- **Developed by:** [Chetan Jain](https://apify.com/omkar-cloud) (community)
- **Categories:** E-commerce, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.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.

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 Featured Image](https://raw.githubusercontent.com/omkarcloud/aliexpress-scraper/master/aliexpress-scraper-featured-image.png)

## AliExpress Scraper

⚡ Get AliExpress Search Results AND Full Product Details in the next 5 Minutes! ⚡

I am AliExpress Scraper, the all-in-one Actor for AliExpress data. Give me keywords and I'll scrape real-time search results — and if you flip on **Get Full Product Details**, I'll turn every search result into a complete product record. Or give me product URLs or IDs and I'll scrape complete product details directly — SKU variants, per-variant stock and pricing, shipping options, store info, and many more. 🚀

### ⚡ Benefits

- Find winning products for your dropshipping store by sorting search results by most orders and filtering to 4★+ rated products — flip on **Get Full Product Details** and every result comes with variants, stock, and shipping times in the same run. (Great for Dropshippers)

- Track prices, discounts, and per-SKU stock across 60+ ship-to countries — prices come back in each country's local currency automatically. (Great for Price & Stock Monitoring)

- Discover trending niches by scanning what sells in any product category, complete with order counts and listing dates. (Great for Niche & Trend Discovery)

- Enrich your product catalog with specifications, image galleries, coupons, shipping options, and seller ratings — straight from a product URL or ID. (Great for Catalog Enrichment & Sourcing)

- See exactly which products rank for your keywords and how competitors price them, down to the SKU level. (Great for Competitor Analysis)

Ready to scrape AliExpress? Let's get started! 💼🌍

### 🔍📦 Two Modes, One Actor

| Mode | You provide | You get |
|------|-------------|---------|
| **Search Mode** | Keywords (e.g. `rubber duck`, `raspberry pi`) | Real-time search results: title, URL, images, price, discount, rating, order count, store, tags |
| **Search Mode + Get Full Product Details** | Keywords, with the **Get Full Product Details** toggle enabled | Every search result scraped in full: SKU variants with per-SKU stock & pricing, specifications, shipping options, coupons, store stats |
| **Product Mode** | Product URLs and/or IDs | Full product details for exactly the products you list |

ℹ️ Product Mode takes priority: if you enter any product URLs/IDs, Search Mode is skipped and only those products are scraped.

### 🤔 FAQs

#### ❓ How to scrape AliExpress search results?

1. Click on Try for free.
2. Enter your search queries (e.g. `rubber duck`, `raspberry pi`).
3. Optionally, pick a ship-to country, sort order, and filters.
4. Click on Run.
5. When AliExpress Scraper has finished, preview or download your data from the Dataset tab.

#### ❓ How to scrape AliExpress product details?

1. Click on Try for free.
2. Paste product URLs or numeric product IDs into **Product URLs or IDs** — you can mix both:
   - URL: `https://www.aliexpress.us/item/3256810554614749.html`
   - URL: `https://www.aliexpress.com/item/1005007346330785.html`
   - Product ID: `3256810554614749`
3. Click on Run and grab your data from the Dataset tab.

Both the `1005...` (aliexpress.com) and `3256...` (aliexpress.us) ID forms are accepted for any country — conversion is automatic.

#### ❓ Can I get full product details for my search results?

Yes! Enable **Get Full Product Details for Each Result** in Search Mode. Instead of a search-result row, each product found is scraped in full via the product-detail endpoint — SKU variants with per-SKU stock and pricing, specifications, shipping options, coupons, and store info. Each row keeps the `query` it came from. It's still one result per product at the same price; runs just take a bit longer because every product is fetched individually. And if the same product ranks for several of your keywords, it's scraped and billed **only once** per run.

#### ❓ What happens if I fill in both Search Queries and Product URLs?

Product Mode takes priority: if **Product URLs or IDs** has any entries, search is skipped and only those products are scraped. Want search data too? Run search in a separate run, or use the **Get Full Product Details** toggle to combine search discovery with full details in one go.

#### ❓ What Data Points Are Scraped?

Each **search result** includes:

- Product ID, title, and product URL
- Images (main image + gallery)
- Rating and orders count
- Pricing (sale price, original price, discount percent, currency, tax rate, SKU ID)
- Promotional tags (e.g. "Top selling on AliExpress")
- Store name, category IDs, listed date
- Hot Sale and AliExpress Choice flags

Each **product detail** includes:

- Product ID, canonical ID, title, and product URL
- Images and video
- Rating, reviews count, orders count, and wishlist count
- Overall stock and max-per-buyer limits
- Pricing (sale price, original price, discount percent, currency)
- Coupons and category path
- SKU properties (color, size, ships-from…) and **every SKU variant with its own stock, availability, and pricing**
- Specifications (material, brand, origin…)
- Shipping options with delivery estimates, tracking, and free-shipping flags
- Store info (name, country, opened date, positive rate, followers…)
- Product description links

#### ❓ How much does it cost?

Pricing is pay-per-result: **1,000 results ≈ $5**. One result = one search-result row **or** one product detail — enabling **Get Full Product Details** doesn't change the price, since it's still one row per product. You only pay for the rows pushed to your dataset — use the **Max Results per Query** input to cap your spend in Search Mode, and the number of product URLs/IDs controls it in Product Mode.

**You're never billed twice for the same product.** If a product ranks under several of your keywords (with or without full details), or you paste the same product twice in Product Mode, it's automatically deduplicated — scraped once, billed once.

For comparison: dedicated product-detail scrapers on the Apify Store charge up to $10 per 1,000 details and don't include search — here one flat rate covers both.

#### ❓ Can I get results for my country and currency?

Yes! Set the **Ship-to Country** input to any of the 60+ supported countries (US, UK, DE, FR, ES, IT, CA, MX, BR, JP, KR, IN, AU, and many more). It applies to both modes: search results are localized, and product details — including **per-SKU prices** — are returned in that country's local currency automatically.

#### ❓ How do filters and sorting work in Search Mode?

You can sort results by:

- Best Match (default)
- Most Orders
- Price: Low to High
- Price: High to Low

And filter them by:

- Minimum / Maximum price (in your selected country's currency)
- Free shipping only
- Savings deals only (discount promotions)
- 4 stars and up only
- AliExpress Choice products only

#### ❓ How do I search multiple keywords in one run?

Add as many queries as you like to the **Search Queries** list — each query is searched separately, and all results land in the same dataset. Each row includes the `query` it came from, so you can tell them apart. Products that rank for more than one of your queries are pushed and billed **only once**.

### Usage Examples

#### Search Mode input

```json
{
  "searchQueries": ["rubber duck", "raspberry pi"],
  "maxResults": 60,
  "country_code": "US",
  "sort_by": "most_orders",
  "four_star_and_up": true
}
```

#### Search Mode with full product details

```json
{
  "searchQueries": ["mechanical keyboard"],
  "maxResults": 25,
  "fetchProductDetails": true,
  "country_code": "US",
  "sort_by": "most_orders"
}
```

Each of the 25 results comes back as a complete product record (SKU variants, stock, shipping, store info) with the `query` field attached.

#### Product Mode input

```json
{
  "productUrls": [
    "https://www.aliexpress.us/item/3256810554614749.html",
    "https://www.aliexpress.com/item/1005007346330785.html",
    "3256812070104911"
  ],
  "country_code": "US"
}
```

### Output

#### Search result row

```json
{
  "query": "rubber duck",
  "id": "3256810554614749",
  "title": "Joyfy Rubber Ducks Random Assortment Mini Rubber Duckie Toys for Kids Bath Shower Toys Birthday Gifts Summer Beach Pool Activity",
  "link": "https://www.aliexpress.us/item/3256810554614749.html",
  "image": "https://ae-pic-a1.aliexpress-media.com/kf/Sf1ea8500f8bb4e37b31702f533e083a8v.jpg",
  "images": [
    "https://ae-pic-a1.aliexpress-media.com/kf/Sf1ea8500f8bb4e37b31702f533e083a8v.jpg",
    "https://ae-pic-a1.aliexpress-media.com/kf/S3f715f2a467142728261a755015531703.jpg"
  ],
  "rating": 4.9,
  "orders_count": 474,
  "is_hot_sale": false,
  "is_choice": false,
  "pricing": {
    "sale_price": 0.99,
    "original_price": 19.06,
    "discount_percent": 94,
    "currency": "USD",
    "tax_rate": 0,
    "sku_id": "12000055944024788"
  },
  "tags": [
    "New shoppers save $18.07",
    "Extra 2% off with coins"
  ],
  "store_name": "Shop1105233629 Store",
  "category_ids": [26, 200389159, 100001766],
  "listed_date": "2026-01-07"
}
```

#### Product detail row

Product Mode rows carry the `product` URL/ID you asked for. When **Get Full Product Details** is enabled in Search Mode, detail rows like this also include the `query` they came from.

```json
{
  "product": "https://www.aliexpress.us/item/3256810554614749.html",
  "id": "3256810554614749",
  "canonical_id": "3256810554614749",
  "title": "Joyfy Rubber Ducks Random Assortment Mini Rubber Duckie Toys for Kids Bath Shower Toys Birthday Gifts Summer Beach Pool Activity",
  "link": "https://www.aliexpress.com/item/3256810554614749.html",
  "images": [
    "https://ae-pic-a1.aliexpress-media.com/kf/Sf1ea8500f8bb4e37b31702f533e083a8v.jpg?has_lang=1&ver=1",
    "https://ae-pic-a1.aliexpress-media.com/kf/S3f715f2a467142728261a755015531703.jpg"
  ],
  "video": null,
  "rating": 4.9,
  "reviews_count": 56,
  "orders_count": 474,
  "orders_label": "This seller: 474 sales | Total sales: 474",
  "wishlist_count": 116,
  "stock": 492,
  "max_per_buyer": 1,
  "pricing": {
    "sale_price": 0.99,
    "original_price": 19.06,
    "discount_percent": 95,
    "currency": "USD"
  },
  "coupons": ["$2.00 off on $18.00"],
  "category": {
    "id": 100001766,
    "path": "26/200389159/100001766"
  },
  "sku_properties": [
    {
      "id": 14,
      "name": "Color",
      "values": [
        { "id": 29, "name": "15pc", "image": null },
        { "id": 193, "name": "30pcs", "image": null }
      ]
    }
  ],
  "skus": [
    {
      "id": "12000055944024788",
      "label": "15pc",
      "attributes": "200007763:201336106;14:29#15pc",
      "is_available": true,
      "stock": 158,
      "max_per_buyer": 1,
      "pricing": {
        "sale_price": 0.99,
        "original_price": 19.06,
        "discount_percent": 95,
        "currency": "USD"
      }
    },
    {
      "id": "12000055944024790",
      "label": "30pcs",
      "attributes": "200007763:201336106;14:193#30pcs",
      "is_available": true,
      "stock": 127,
      "max_per_buyer": 1,
      "pricing": {
        "sale_price": 7.12,
        "original_price": 33.94,
        "discount_percent": 79,
        "currency": "USD"
      }
    }
  ],
  "specifications": [
    { "name": "Material", "value": "Plastic" },
    { "name": "Brand Name", "value": "Joyfy" },
    { "name": "Origin", "value": "Mainland China" }
  ],
  "shipping": {
    "ship_to": "US",
    "options": [
      {
        "code": "AE_US_SAVER",
        "name": "AE_US_SAVER",
        "price": null,
        "currency": "USD",
        "is_free": true,
        "ship_from": "United States",
        "min_delivery_days": 3,
        "max_delivery_days": 9,
        "estimated_delivery_min_date": "2026-08-05",
        "estimated_delivery_max_date": "2026-08-11",
        "has_tracking": true,
        "guaranteed_delivery_days": 30,
        "is_selected": true
      }
    ]
  },
  "store": {
    "id": 1105246100,
    "name": "Shop1105233629 Store",
    "link": "https://www.aliexpress.com/store/1105246100",
    "seller_id": 6003897797,
    "country": "China",
    "opened_date": "2025-11-24",
    "is_top_rated": false,
    "is_local_seller": false,
    "followers_count": 61
  },
  "description_link": "https://pdp.aliexpress-media.com/product/description/pc/v2/en_US/desc.htm?productId=1005010740929501&key=Sc524855350e04a9692578c809ba6e7fed.zip&token=75febee38c334256f0cb9ad082f7dc4b&sellerId=6003897797"
}
```

[![Message Us on WhatsApp](https://raw.githubusercontent.com/omkarcloud/assets/master/images/whatsapp-us.png)](https://api.whatsapp.com/send?phone=918178804274\&text=I%20need%20help%20with%20using%20the%20AliExpress%20Scraper%20Actor.)

[![Ask Us on Email](https://raw.githubusercontent.com/omkarcloud/assets/master/images/ask-on-email.png)](mailto:happy.to.help@omkar.cloud?subject=Help%20with%20AliExpress%20Scraper%20Actor\&body=I%20need%20help%20with%20using%20the%20AliExpress%20Scraper%20Actor.)

You are important to us — just message us and we will solve your problem ✅ within 1 working day. 🩷 Pinky Promise 🤙!

# Actor input Schema

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

Keywords or phrases to search for on AliExpress. Each query is searched separately and all results are pushed to the same dataset, with a `query` field so you can tell them apart.

## `fetchProductDetails` (type: `boolean`):

When enabled, every search result is scraped in full via the product-detail endpoint — SKU variants with per-SKU stock and pricing, specifications, shipping options, coupons, and store info. Still one dataset row per product at the same per-result price; runs take longer because each product is fetched individually.

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

Maximum number of products to scrape per search query. Each page of AliExpress search returns up to 60 products. Use this to control your pay-per-result cost (1,000 results ≈ $5).

## `sort_by` (type: `string`):

Sort order for search results.

## `min_price` (type: `integer`):

Minimum price, in the selected country's currency (USD when Ship-to Country is omitted or US). Example: 10

## `max_price` (type: `integer`):

Maximum price, in the selected country's currency (USD when Ship-to Country is omitted or US). Example: 100

## `free_shipping` (type: `boolean`):

Only return products with free shipping.

## `savings` (type: `boolean`):

Only return products with savings deals (discount promotions).

## `four_star_and_up` (type: `boolean`):

Only return products rated 4 stars and above.

## `choice` (type: `boolean`):

Only return AliExpress Choice products.

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

AliExpress product URLs or numeric product IDs — you can mix both. Both the `1005...` (aliexpress.com) and `3256...` (aliexpress.us) ID forms are accepted for any country; conversion is automatic.

## `country_code` (type: `string`):

Ship-to country. Search results and product details (including per-SKU prices) are localized to this country, and prices are returned in its local currency automatically.

## Actor input object example

```json
{
  "searchQueries": [
    "rubber duck",
    "raspberry pi"
  ],
  "fetchProductDetails": false,
  "maxResults": 60,
  "sort_by": "best_match",
  "free_shipping": false,
  "savings": false,
  "four_star_and_up": false,
  "choice": false,
  "productUrls": [
    "https://www.aliexpress.us/item/3256810554614749.html",
    "https://www.aliexpress.com/item/1005007346330785.html",
    "3256812070104911"
  ],
  "country_code": "US"
}
```

# 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": [
        "rubber duck",
        "raspberry pi"
    ],
    "maxResults": 60,
    "sort_by": "best_match",
    "country_code": "US"
};

// Run the Actor and wait for it to finish
const run = await client.actor("omkar-cloud/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": [
        "rubber duck",
        "raspberry pi",
    ],
    "maxResults": 60,
    "sort_by": "best_match",
    "country_code": "US",
}

# Run the Actor and wait for it to finish
run = client.actor("omkar-cloud/aliexpress-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 '{
  "searchQueries": [
    "rubber duck",
    "raspberry pi"
  ],
  "maxResults": 60,
  "sort_by": "best_match",
  "country_code": "US"
}' |
apify call omkar-cloud/aliexpress-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JWq1J222sDiliTyg4/builds/uvOjdsyaAQ2cmfADR/openapi.json
