---
title: "How to Scrape AliExpress Products and Prices | Scrape.ly"
description: "Scrape AliExpress search results and product pages: prices, variants, stock, shipping and seller data. No code or Python, with real runs and costs."
url: https://scrape.ly/blog/scrape-aliexpress
markdown: https://scrape.ly/blog/scrape-aliexpress.md
---

[Tutorials](https://scrape.ly/blog/category/tutorials.md)

# How to Scrape AliExpress: Products, Prices, Variants and Shipping

Search AliExpress by keyword, then pull every product's variants, stock, shipping fees and seller record into clean rows. No code, curl, Python, Node.js or an AI agent, with two real runs from 26 October 2026 and the exact cost.

[Shelfbright Actor publisher on the Scrape.ly Store](https://scrape.ly/blog/author/shelfbright.md)

- Published

  Oct 26, 2026

- Reading time

  9 min read

![Pixel-art robot with an orange >\_ on its terminal head pulls a product card with a photo and a red price out of a stack of cardboard parcels marked with the red AliExpress logo, and drops it into a crate](https://scrape.ly/media/scrape-aliexpress.png?w=1080)

To scrape AliExpress, run a ready-made Actor in two steps: search by keyword to collect product cards, then read each product page for its variants, stock, shipping and seller. On Scrape.ly both steps run in the cloud with built-in proxies, so you get clean JSON, CSV or Excel rows without a browser, a parser or an AliExpress account.

This guide covers the fields you get, the no-code steps with a Store preset, the same job with curl, Python, Node.js and an AI agent, and two real runs from 26 October 2026: five USB cables between $10 and $20, then the full product pages of three of them. Every number below comes from those runs.

## What data you can get from AliExpress

Two Actors split the work the way AliExpress splits its pages. The [AliExpress Search Scraper](https://scrape.ly/store/shelfbright/aliexpress-search-scraper.md) reads search results, one row per product card. The [AliExpress Product Scraper](https://scrape.ly/store/shelfbright/aliexpress-scraper.md) reads product pages, one row per product with every variant.

| Search Scraper field                             | What it holds                                            |
| ------------------------------------------------ | -------------------------------------------------------- |
| `productId`, `productUrl`, `productTitle`        | Product ID, link and title                               |
| `price`, `originalPrice`, `discount`, `currency` | Card price, price before discount and the discount label |
| `rating`, `orders`, `isTopRated`                 | Star rating, order count and top-rated flag              |
| `shippingFrom`, `shipping`, `tags`               | Ship-from country, shipping label, tags such as `Choice` |
| `keyword`, `page`, `position`                    | Which search found it and where it ranked                |

| Product Scraper field                                        | What it holds                                                        |
| ------------------------------------------------------------ | -------------------------------------------------------------------- |
| `price`, `originalPrice`, `discountPercent`                  | Price band (`min`, `max`) across variants, before and after discount |
| `skus`, `skuProperties`, `totalStock`                        | Every variant with its own price, stock and availability             |
| `shipping`                                                   | Method, fee, free-shipping flag, ship-from, delivery window          |
| `rating`, `reviewCount`, `sold`                              | Star rating, review count and the sold label                         |
| `store`                                                      | Shop ID, name, positive-feedback rate, country and opening date      |
| `attributes`, `images`, `video`, `documents`, `categoryPath` | Specs, media and category                                            |

What you won't get: written review text. The product data carries the star rating and the review count, not the reviews themselves.

## How to scrape AliExpress without code

1. Open the [AliExpress Search Scraper](https://scrape.ly/store/shelfbright/aliexpress-search-scraper.md) in the Scrape.ly Store.
2. Pick the [USB cables between 10 and 20, 5 products](https://scrape.ly/store/shelfbright/aliexpress-search-scraper/presets/search-price-range.md) preset. It fills in this input:

```json
{
  "keywords": ["usb cable"],
  "maxItems": 5,
  "minPrice": 10,
  "maxPrice": 20,
  "sort": "default"
}
```

3. Click **Start**. Our run finished in 4.9 seconds.
4. Copy the `productUrl` values you want, open the [AliExpress Product Scraper](https://scrape.ly/store/shelfbright/aliexpress-scraper.md), paste them into **Product URLs**, set **Ship-to country** and **Currency**, and start it. The [one product shipped to Germany](https://scrape.ly/store/shelfbright/aliexpress-scraper/presets/url-de-eur.md) preset shows the shape with EUR prices.
5. Export either dataset as JSON, CSV or Excel.

The input fields that matter most:

- `keywords`: one search per line, typed the way you'd type it into AliExpress.
- `maxItems`: products per keyword. Each search page holds about 60 cards.
- `sort`: `default`, `orders`, `price_asc`, `price_desc` or `rating`.
- `minPrice`, `maxPrice`, `minRating`, `minOrders`: filters applied to the cards.
- `productUrls` (Product Scraper): product links or bare product IDs.
- `shipTo` and `currency` (Product Scraper): a two-letter country and a three-letter currency. Prices, stock and shipping follow that pair.

Scrape.ly Store AliExpress Product Scraper Paste AliExpress product links or IDs and get variants, stock, shipping fees and seller details for your country and currency. $0.41 per 1,000 products.

[Try it free](https://scrape.ly/store/shelfbright/aliexpress-scraper.md) [Browse the Store](https://scrape.ly/store.md)

## How to scrape AliExpress with the API

Create a token under **Settings → API & Integrations** in the dashboard and store it as `SCRAPELY_TOKEN`. Both of our runs finished well under 45 seconds, so the synchronous endpoint can start a run and return its rows in one call:

```shell
curl -X POST "https://api.scrape.ly/v2/actors/shelfbright~aliexpress-search-scraper/run-sync-get-dataset-items"
  -H "Authorization: Bearer $SCRAPELY_TOKEN"
  -H "Content-Type: application/json"
  -d '{"keywords": ["usb cable"], "maxItems": 5, "minPrice": 10, "maxPrice": 20, "sort": "default"}'
```

The call returns a JSON array; add `?format=csv` for CSV. A big job, such as 1,000 products for one keyword (about two to three minutes, per the Actor's README), will outlast the 45-second wait. The call then answers `408` while the run keeps going, and calling again would start a second run. Start those with `POST /v2/actors/shelfbright~aliexpress-search-scraper/runs`, poll `/v2/actor-runs/RUN_ID?waitForFinish=60` until the status is `SUCCEEDED`, and read `/v2/actor-runs/RUN_ID/dataset/items`. The [API docs](https://scrape.ly/docs/api-actors.md) show the full flow.

In Python (`pip install scrapely-client-python`), this script chains both steps: it searches, then reads the product page of every card it found, shipped to the US, with each run capped at 5 cents:

```python
import os
from decimal import Decimal

from scrapely_client import ScrapelyClient

client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")

search = client.actor("shelfbright/aliexpress-search-scraper").call(
    run_input={"keywords": ["usb cable"], "maxItems": 5, "minPrice": 10, "maxPrice": 20},
    max_total_charge_usd=Decimal("0.05"),
)
cards = list(client.dataset(search.default_dataset_id).iterate_items())

details = client.actor("shelfbright/aliexpress-scraper").call(
    run_input={
        "productUrls": [{"url": c["productUrl"]} for c in cards],
        "maxItems": len(cards),
        "shipTo": "US",
        "currency": "USD",
    },
    max_total_charge_usd=Decimal("0.05"),
)
for p in client.dataset(details.default_dataset_id).iterate_items():
    ship = p["shipping"][0] if p["shipping"] else {}
    print(p["productId"], p["price"], p["totalStock"], ship.get("fee"), ship.get("deliveryDaysMax"))
```

In JavaScript or Node.js (`npm install scrapely-client`):

```javascript
import { ScrapelyClient } from 'scrapely-client';

const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });

const run = await client.actor('shelfbright/aliexpress-scraper').call({
  productUrls: [{ url: 'https://www.aliexpress.com/item/3256812854147766.html' }],
  shipTo: 'US',
  currency: 'USD',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].price, items[0].skus.length, items[0].shipping[0]);
```

The [Python client](https://scrape.ly/docs/client-python.md) and [JavaScript client](https://scrape.ly/docs/client-js.md) docs cover paging through large datasets.

### With an AI agent (MCP)

Scrape.ly runs a hosted MCP server at `https://mcp.scrape.ly`. In Cursor, add it to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "scrapely": {
      "url": "https://mcp.scrape.ly",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}
```

In Claude Code, run `claude mcp add --transport http scrapely https://mcp.scrape.ly`, then `/mcp` to sign in with OAuth. To give the agent only these two tools, use `https://mcp.scrape.ly?actors=shelfbright/aliexpress-search-scraper,shelfbright/aliexpress-scraper`. Then ask: "Use scrapely to search AliExpress for usb cable between $10 and $20, open the top 3 products shipped to the US, and give me a table of price range, stock, shipping fee and delivery days." The [MCP docs](https://scrape.ly/docs/mcp.md) list the other clients.

## A real run: USB cables from search to product page

We ran the search preset on 26 October 2026. It saved 5 products in 4.9 seconds:

| Product (shortened)                      | Price  | Before discount | Discount | Rating | Orders | Ships from |
| ---------------------------------------- | ------ | --------------- | -------- | ------ | ------ | ---------- |
| CABLETIME 3-pack 240W USB-C to USB-C     | $13.93 | $43.67          | -68%     | 5      | 12     | US         |
| AUFU 2-pack 240W USB-C to USB-C          | $11.52 | $33.45          | -65%     | 4.9    | 1,137  | US         |
| 3-pack 120W/100W cables with LED display | $13.33 | $26.66          | -49%     | 4.9    | 261    | CN         |
| Baseus 3-in-2 100W cable                 | $14.42 | $37.33          | -61%     | 5      | 882    | CN         |
| 8-pack 100W 3-in-1 nylon braided         | $11.85 | $45.74          | -74%     | 5      | 29     | US         |

Then we passed products 2 to 4 to the Product Scraper with `shipTo: "US"`. It saved all three in 12 seconds:

| Product                 | Price band    | Variants             | Stock | Shipping to the US           | Delivery  |
| ----------------------- | ------------- | -------------------- | ----- | ---------------------------- | --------- |
| AUFU 2-pack             | $11.52–$12.44 | 2 lengths            | 987   | free, from the United States | 3–8 days  |
| 3-pack with LED display | $8.19–$13.33  | 4 (type × length)    | 43    | $1.99, from China            | 7–12 days |
| Baseus 3-in-2           | $14.42–$16.31 | 3 colors, 1 sold out | 5     | $1.99, from China            | 7–12 days |

```plaintext
20261026T14:27:17.427Z [Scrapely] Container started (setup 5.9 s)
20261026T14:27:18.770Z [scrapely.actor] INFO  products=3 ship_to=US currency=USD
20261026T14:27:18.851Z [scrapely.proxy_configuration] INFO  Platform proxy access check succeeded.
20261026T14:27:22.713Z [scrapely.actor] INFO  saved=3 ok=3 bytes=219391 group=DATACENTER sessions=5 browser=0
20261026T14:27:22.950Z [scrapely.actor] INFO  [Status message]: Saved 3 products.
20261026T14:27:23.675Z [Scrapely] Container state: status=exited exitCode=0 oomKilled=false
```

The second step is where the useful detail lives:

- **A card shows one price, not the range.** The LED cable's card said $13.33. Its product page has four variants from $8.19 (3 × USB-C to USB-C, 1 m) to $13.33. The Baseus card showed the low end instead. If you price-match from search cards alone, you compare different variants.
- **Shipping changes the real price.** The AUFU cable ships free from a US warehouse in 3 to 8 days; the two China-shipped items add $1.99 and take 7 to 12 days. A $1.99 fee on a $8.19 variant is 24% on top.
- **Stock is thin in places.** The Baseus cable had 5 units left and its purple variant was sold out (`available: false`), facts a search card never shows.
- **Sales counts mean different things.** The AUFU card said 1,137 orders. The product page splits that into "This seller: 13 sales | Total sales: 1,000+", and its shop opened on 24 November 2025 with no store rating yet. That's exactly the seller check a dropshipper wants before ordering.

## What it costs

Both Actors charge per product saved, with platform usage (compute, proxy and browser) included in the price. Prices checked on the Store pages on 26 October 2026:

- **Search Scraper:** $0.00613 per product ($6.13 per 1,000).
- **Product Scraper:** $0.000409 per product ($0.41 per 1,000). Invalid, missing or unavailable products are free.

**Our search run:** 5 × $0.00613 = $0.03065 at list price. **Our product run:** 3 × $0.000409 = $0.001227 at list price. Our account was billed $0.02452 and $0.0009816 after its plan's Store discount.

**At scale:** 1,000 search cards plus their 1,000 product pages cost $6.13 + $0.41 = $6.54. If you already know your product IDs (a catalog you resell, say), skip search and refresh 1,000 products for $0.41.

## What to watch out for

- **Slider checks and blocks.** AliExpress shows a slider check to traffic it doesn't trust. The Product Scraper retries on fresh datacenter addresses and, as a last resort, reads the page in Scrape.ly's hosted browser; the Search Scraper rotates addresses and retries, and stops after three keywords in a row are blocked. You never manage proxies.
- **Region drives price.** `shipTo` and `currency` change the price band, stock and shipping. Keep them fixed across runs, or you compare two markets. Search cards come in the currency AliExpress shows to the proxy location.
- **Input size.** Runs start only when the input is under about 7 KB, so send up to about 300 product IDs or 100 full links per run and split bigger lists.
- **Moving numbers.** Review counts and some variant stock counts change between fetches. Store a timestamp (`scrapedAt`) with every row.
- **Sort by rating is local.** The search page has no rating sort, so `rating` reorders only the cards the Actor collected.
- **No review text.** If you need written reviews, this pair of Actors isn't the tool.

## Is it legal to scrape AliExpress?

Both Actors read public pages that any visitor can open, without logging in. AliExpress's own terms are strict about it, though. Its [Terms of Use](https://terms.alicdn.com/legal-agreement/terms/suit_bu1_aliexpress/suit_bu1_aliexpress202204182115_66077.html) (updated on August 26, 2026, effective September 26, 2026) say in clause 3.2: "Systematic retrieval of Site Content from the Sites to create or compile, directly or indirectly, a collection, compilation, database or directory (whether through robots, spiders, automatic devices or manual processes) without written permission from AliExpress.com is prohibited." The same clause makes an exception for researchers who qualify under Article 40(12) of the EU Digital Services Act.

Whether and how such terms bind you depends on your jurisdiction and how you access and use the data. Product data is rarely personal, but product photos and descriptions belong to the sellers, so don't republish them wholesale. Keep request rates reasonable and collect only what you need. This is not legal advice; for a commercial project, ask a lawyer about your case.

## Why Scrape.ly for AliExpress data

- **Both page types, one platform.** Search cards and full product pages are separate Actors with matching IDs, so a two-step pipeline is two API calls. The [AliExpress API](https://scrape.ly/api/aliexpress-api.md) page shows the same Actors as an API.
- **No anti-bot work.** AliExpress product pages load their data with JavaScript behind bot checks. The Actors handle retries, address rotation and the browser fallback; your code only reads JSON.
- **Cheap detail at scale.** $0.41 per 1,000 full product pages, platform usage included, with a maximum charge per run so a long ID list can't overspend.
- **Agent-ready.** The same two Actors run from Claude, Cursor or ChatGPT through the hosted MCP server.

AliExpress also has its own Open Platform for developers and an Affiliate Portals program. If you qualify for them, they're the official route; the Actors need no account and no approval.

## FAQ

### Can you scrape AliExpress for free?

Yes, for small jobs. The Free plan includes $5 of usage credit every month, no credit card needed. That covers about 800 search cards or more than 12,000 product pages at list price.

### How do I scrape AliExpress with Python?

Install `scrapely-client-python`, call `shelfbright/aliexpress-search-scraper` with your keywords, then pass the `productUrl` values to `shelfbright/aliexpress-scraper`, as in the script above. The scraping runs in the cloud, so your script needs no browser or proxy.

### Can I get AliExpress prices for my country?

Yes. Set `shipTo` (for example `DE`) and `currency` (for example `EUR`) on the Product Scraper, and prices, stock and shipping follow that pair. The Germany preset is a ready example.

### Does the data include AliExpress reviews?

Not the review text. Both Actors return the star rating and the Product Scraper returns the review count, but written reviews are not part of the public product data they read.

### How do I monitor AliExpress prices over time?

Save the Product Scraper input with your product IDs, schedule it daily, and store each run with its timestamp. Our [price scraping](https://scrape.ly/blog/price-scraping.md) guide covers schedules, change filters and Google Sheets delivery, and the [e-commerce scraping](https://scrape.ly/blog/ecommerce-scraping.md) guide compares AliExpress with Amazon and Walmart on the same product.

### What seller information do you get?

Yes, at shop level. Each product row has a `store` object with the shop ID, name, positive-feedback rate, country and opening date. It doesn't include personal contact details.

Scrape.ly Store AliExpress Search Scraper Keywords in, product cards out: price, discount, rating, orders and ship-from country, with price and rating filters. $6.13 per 1,000 products.

[Try it free](https://scrape.ly/store/shelfbright/aliexpress-search-scraper.md) [Browse the Store](https://scrape.ly/store.md)

About the author

[Shelfbright](https://scrape.ly/blog/author/shelfbright.md) Actor publisher on the Scrape.ly Store

Prices, stock and seller data from shops and marketplaces, from Amazon and AliExpress to Vinted and Leboncoin. For price trackers, catalogue teams and resellers. A Scrapely studio.

- [Website](https://scrape.ly/users/shelfbright.md)

Keep reading

## More in Tutorials

- [![Pixel-art robot with an orange >\_ on its terminal head pulls a paper card with a blue title and two columns of text off a results page headed by the blue Google Scholar cap, and drops it into a crate](https://scrape.ly/media/scrape-google-scholar.png?w=750)](https://scrape.ly/blog/scrape-google-scholar.md)
  ### [How to Scrape Google Scholar: Papers, Citations and Author Profiles](https://scrape.ly/blog/scrape-google-scholar.md)
  [Scrape Google Scholar searches, cited-by lists and author profiles into clean rows: title, authors, venue, year, citation count, versions and the free PDF link. No-code steps, curl, Python, Node.js and MCP, plus a real 10-paper run that cost about a cent.](https://scrape.ly/blog/scrape-google-scholar.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a review card with five green stars off a cork board topped with the green Trustpilot star, where another such card is pinned](https://scrape.ly/media/scrape-trustpilot-reviews.png?w=750)](https://scrape.ly/blog/scrape-trustpilot-reviews.md)
  ### [How to Scrape Trustpilot Reviews: Ratings, Text and Company Replies](https://scrape.ly/blog/scrape-trustpilot-reviews.md)
  [Scrape Trustpilot reviews for any company by domain or brand name: stars, title, text, country, verification, dates and the company's reply. No-code steps, curl, Python, Node.js and MCP, plus a real run from 26 October 2026 and its exact cost.](https://scrape.ly/blog/scrape-trustpilot-reviews.md)
- [![Pixel-art robot with an orange >\_ on its terminal head pulls a chart slip with a purple rising line out of a monitor showing the purple Yahoo Finance icon beside ticker rows, above a rising candlestick chart, and drops it into a crate](https://scrape.ly/media/scrape-yahoo-finance.png?w=750)](https://scrape.ly/blog/scrape-yahoo-finance.md)
  ### [How to Scrape Yahoo Finance: Quotes, Financials, History and Options](https://scrape.ly/blog/scrape-yahoo-finance.md)
  [Scrape Yahoo Finance for any stock, ETF, crypto pair or index and get one JSON record per ticker: live quote, profile, price history, financial statements, dividends, analyst ratings, holders, options and earnings dates. A real three-ticker run, its cost and code.](https://scrape.ly/blog/scrape-yahoo-finance.md)

## The internet is full of data. Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

[Get Started Free](https://my.scrape.ly/register) [Chat with Support](mailto:hello@scrape.ly?subject=Question%20about%20Scrape.ly\&body=Hi%2C%20I%20have%20a%20question%20about%20Scrape.ly.)

No credit card. No setup calls.
