AliExpress Scraper avatar

AliExpress Scraper

Pricing

from $0.80 / 1,000 products

Go to Apify Store
AliExpress Scraper

AliExpress Scraper

Search AliExpress and collect product listings. Product details and reviews are optional and stay on the same product row.

Pricing

from $0.80 / 1,000 products

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

AliExpress Scraper creates a structured dataset of product listings collected from AliExpress. Each dataset item is one product and can include price, currency, rating, sold count, images, shipping hints, category ids, and optional nested productDetails and productReviews objects on the same row. Query the source using search phrases, product URLs, or numeric product ids, control volume with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format. Pricing starts from $0.001 per product row, with optional $0.001 per details enrichment and $0.001 per review when those options are enabled.

AliExpress Scraper — input to structured data

Dataset at a glance

PropertyValue
Sourcewww.aliexpress.com
Record unitOne product listing
Input methodssearchQueries, productUrls, productIds
Main identifiersproductId, url
DeliveryApify default dataset and Dataset API
Export formatsJSON, CSV, Excel, XML, RSS, HTML (via Apify export)
Update modelFresh records per Actor run
PricingPay per event: product row, optional details, optional reviews (see below)

Coverage and available records

Supported

  • Wholesale search results (about 60 products per search page) from a text query
  • Direct lookup by AliExpress item URL or numeric productId
  • Ship-to storefront context via region (prices, language, shipping copy)
  • Search filters: sort, category id, min/max price, ship-from country, free-shipping switch, extra refine switches
  • Optional product details on the same row: product-page title and full gallery (productDetails), with listing fields filled from search when price was missing on the page
  • Optional reviews on the same row: summary stats, filter counts, impressions, and a reviews array inside productReviews, paginated up to maxReviewsPerProduct (0 = all pages)

Observed behavior

  • Listings reflect the selected ship-to country and residential proxy country; align region and proxyConfiguration.apifyProxyCountry
  • Review text may be translated for the selected locale; some listings aggregate reviews from similar products (reviewScope / note on productReviews)
  • When details or reviews are enabled, products are enriched in parallel up to concurrency

Not currently collected

  • Full variant/SKU matrix and long-form description from the gated authenticated product API
  • Separate dataset rows per review (reviews stay nested under productReviews)
  • Historical price snapshots across runs (each run is a new extract)

Data dictionary

Product (top-level fields)

FieldTypeNullableDescriptionExample
productIdstringnoAliExpress product id"3256812906139628"
titlestringyesListing title from search or detail page"For PD 35W Fast Quick Charger..."
urlstringnoCanonical item URLhttps://www.aliexpress.com/item/3256812906139628.html
sourceQuerystringyesSearch phrase that produced the row; null for id-only input"usb c cable"
pricenumberyesSale price in ship-to currency0.33
priceFormattedstringyesDisplay price string"US $0.33"
currencystringyesISO currency code"USD"
originPricenumberyesReference/origin price when available3.78
discountPercentintegeryesDiscount percentage91
skuIdstringyesListing sku id from search card"12000060251500036"
ratingnumberyesStar rating from search card4.9
soldintegeryesSold count when exposed numerically83578
soldTextstringyesHuman-readable sold string"50,000+ sold"
imageUrlstringyesPrimary image URLhttps://ae-pic-a1.aliexpress-media.com/...
imagesstring[]noGallery URLs (may be empty)[ "https://..." ]
categoryIdsstring[]noCategory id path from search trace[ "202192403", "100001205" ]
shipFromstringyesShip-from country code"CN"
shipTostringyesShip-to country from run region"US"
deliverystringyesDelivery/ETA selling point when present"Fastest delivery in 6 days"
freeShippingbooleannoFree shipping flag from search cardfalse
sellingPointsstring[]noMarketing tags from the card[ "Free shipping" ]
launchDatestringyesLaunch time string from search card"2026-09-01 00:00:00"
productDetailsobjectyesPresent when includeProductDetails is true; otherwise nullsee below
productReviewsobjectyesPresent when includeReviews is true; otherwise nullsee below

Recommended deduplication key: productId (stable within AliExpress). For cross-run dedup, use productId plus your run timestamp or dataset id.

productDetails (when enabled)

FieldTypeNullableDescription
titlestringyesTitle from product page Open Graph / embed
urlstringnoItem page URL
imageUrlstringyesPrimary gallery image
imagesstring[]noFull gallery from page embed

Top-level price, rating, and sold fields may be filled from a matching search card when the product page shell does not expose them.

productReviews (when enabled)

FieldTypeNullableDescription
productIdstringnoQueried product id
totalintegeryesTotal reviews reported by the storefront
totalPagesintegeryesTotal review pages
fetchedintegernoReviews returned in this run (after limits/charges)
pageSizeintegeryesPage size used (20)
filterstringnoReview filter applied
sortstringnoReview sort applied
notestringyesStorefront note (e.g. aggregated reviews)
reviewScopestringyesStorefront product type (e.g. hyperchain listings)
averageStarsnumberyesAverage star rating
starCountsobjectyesCounts for five–one star buckets
positiveCountintegeryesPositive review count
neutralCountintegeryesNeutral review count
negativeCountintegeryesNegative review count
impressionsobject[]noFrequent review phrases { phrase, count }
filterCountsobject[]noFilter bucket counts { filter, count }
reviewsobject[]noReview objects (see below)

Review object (productReviews.reviews[])

FieldTypeNullableDescription
evaluationIdstringnoReview id
productIdstringyesProduct id on the review (may differ on aggregated listings)
buyerNamestringyesDisplay name
buyerCountrystringyesBuyer country code
anonymousbooleannoAnonymous flag
starsnumberyesStar rating (0–5 scale)
datestringyesLocalized review date string
textstringyesTranslated or primary text
textOriginalstringyesOriginal feedback when available
skustringyesPurchased variant description
imagesstring[]noReview image URLs
upvotesintegernoHelpful votes
logisticsstringyesShipping line when present

Example dataset record

Produced with searchQueries: ["usb c cable"], region: "US", maxItems: 10, details and reviews disabled:

{
"productId": "3256812906139628",
"title": "For PD 35W Fast Quick Charger USB Type C For iPhone 15 14 13 12 11 Pro Max Mini Plus XR XS Charging Data Cable Accessories",
"url": "https://www.aliexpress.com/item/3256812906139628.html",
"sourceQuery": "usb c cable",
"price": 0.33,
"priceFormatted": "US $0.33",
"currency": "USD",
"originPrice": 3.78,
"discountPercent": 91,
"skuId": "12000060251500036",
"rating": 4.9,
"sold": 83578,
"soldText": "50,000+ sold",
"imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/S44533c20a8614092bc17c156f9251bc2T.jpg",
"images": ["https://ae-pic-a1.aliexpress-media.com/kf/S44533c20a8614092bc17c156f9251bc2T.jpg"],
"categoryIds": ["202192403", "100001205", "440504"],
"shipFrom": "CN",
"shipTo": "US",
"delivery": "Fastest delivery in 6 days",
"freeShipping": false,
"sellingPoints": ["Fastest delivery in 6 days"],
"launchDate": "2026-09-01 00:00:00",
"productDetails": null,
"productReviews": null
}

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
searchQueriesstring[]no*—Non-empty stringsProduct search phrases
productUrlsstring[]no*—Item or wholesale URLsItem URLs add ids; wholesale URLs become queries
productIdsstring[]no*—Numeric idsDirect product ids
maxItemsintegerno0≥ 0Max product rows; 0 = no cap
regionstringnoUSUS, DE, GB, …Ship-to country for prices and locale
currencystringnopreset3-letter codeOverride display currency
localestringnopresete.g. en_USOverride locale
sortstringnodefaultdefault, orders, price_asc, price_descSearch sort
categoryIdstringno—Category idNarrow search
minPricenumberno—NumberMin price in ship-to currency
maxPricenumberno—NumberMax price in ship-to currency
shipFromstringno—Country codeShip-from filter
freeShippingOnlybooleannofalsetrue/falseFree shipping filter
switchesstring[]no[]e.g. freeshippingExtra search refine codes
includeProductDetailsbooleannofalsetrue/falseFill productDetails (parallel enrichment)
includeReviewsbooleannofalsetrue/falseFill productReviews (parallel enrichment)
maxReviewsPerProductintegerno20≥ 0Cap reviews per product; 0 = all pages
reviewFilterstringnoallall, image, local, …Review subset
reviewSortstringnodefaultdefault, newestReview order
concurrencyintegerno51–20Parallel products when details/reviews enabled
proxyConfigurationobjectnoUS residentialApify proxyUse residential; match proxy country to region

*At least one of searchQueries, productUrls, or productIds is required.

Minimal request

{
"searchQueries": ["usb c cable"],
"maxItems": 100,
"region": "US",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Advanced request (search + details + reviews)

{
"searchQueries": ["wireless earbuds"],
"maxItems": 50,
"region": "DE",
"sort": "orders",
"freeShippingOnly": true,
"includeProductDetails": true,
"includeReviews": true,
"maxReviewsPerProduct": 20,
"reviewFilter": "image",
"reviewSort": "newest",
"concurrency": 8,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Retrieve the data through the API

  1. Start the Actor with JSON input (Apify Console, CLI, or HTTP API).
  2. Wait for the run to finish, or use the synchronous dataset endpoint for small jobs.
  3. Read items from the run’s default dataset (GET /v2/datasets/{datasetId}/items).
  4. Paginate with offset and limit, or export the full dataset from the Console.

Python (Apify client)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("datascrapers/aliexpress-scraper").call(
run_input={
"searchQueries": ["usb c cable"],
"maxItems": 25,
"region": "US",
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US",
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["productId"], item.get("price"), item.get("currency"))

cURL (start run)

curl -s -X POST "https://api.apify.com/v2/acts/datascrapers~aliexpress-scraper/runs" \
-H "Authorization: Bearer <YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["usb c cable"],"maxItems":10,"region":"US"}'

Agent-oriented docs: aliexpress-scraper.md. OpenAPI spec is published on the Actor API tab.

Data quality and record handling

  • Completeness: Search cards populate most listing fields. rating, sold, and price may be null on sparse cards. Optional columns stay null when disabled or when a single product fails enrichment.
  • Fail-soft: One bad product page or review page does not stop the run; that product’s optional object is set to null and processing continues.
  • Deduplication: Within a run, the same productId is emitted once even if it appears in multiple queries or pages.
  • Cross-run dedup: Not built in. Merge datasets on productId in your warehouse or use Apify webhooks to append only new ids.
  • Retries: Transient network errors are retried on HTTP fetches; block pages skip the affected request.
  • Derived fields: productDetails may overlay listing price/rating from search; review stars are normalized to a 0–5 scale from storefront scores.

Run statistics (recordsScraped, detail and review charge counts, timestamps) are stored in the key-value store under run-stats.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL / SupabaseDataset API + scheduled ActorProduct catalog monitoring
Google SheetsApify integration or CSV exportMerchandising samples
S3 / cloud storageApify dataset export or webhookRaw JSON archive
BI tools (Looker, Power BI)CSV/Excel exportPrice and rating dashboards

Pricing and cost examples

This Actor uses pay-per-event billing on the Apify platform. Placeholder Store prices (verify in Console before budgeting):

EventWhat triggers itPlaceholder unit price (Free tier)
Actor startEach run$0.00005
productEach product row pushed to the dataset$0.001
product-detailEach product where productDetails is returned$0.001
reviewEach review object inside productReviews.reviews$0.001

Higher Apify plans may receive tier discounts on result events. Residential proxy usage is billed separately through Apify proxy consumption.

Illustrative totals (product event only, details/reviews off)

ProductsEstimated product event cost
1,000$1.00
10,000$10.00

Illustrative totals (100 products, details on, 20 reviews each)

ChargeCountPlaceholder cost
Product rows100$0.10
Details100$0.10
Reviews2,000$2.00
Total (events only)~$2.20

Estimates exclude compute, proxy, and plan discounts. Edit event prices in the Apify Console monetization tab.

Limitations and responsible data use

  • Collects data exposed on the public AliExpress storefront for the selected ship-to context; availability and fields change when AliExpress updates its site.
  • You are responsible for complying with AliExpress terms, applicable commerce and privacy laws, and your own data retention policies.
  • Reviews and ratings may reference aggregated or translated content; do not treat them as verified purchase records without your own validation.
  • The Actor does not guarantee complete marketplace coverage for a query—use pagination via repeated runs with different filters if you need broader samples.

Dataset questions

What does one dataset item represent?

One AliExpress product listing. Reviews and extra gallery metadata are nested objects on that same item, not separate rows.

Which field should I use as a unique identifier?

Use productId as the primary key. Pair it with region or shipTo if you compare the same id across countries.

Are fields nullable or conditional?

Yes. Listing metrics from search may be null. productDetails and productReviews are null unless you enable them. Individual review fields can be null when buyers post anonymously or without text.

Can I retrieve the records as CSV or JSON?

Yes. Export from the Apify Console or call the Dataset API with format=csv or format=json.

How do I paginate large datasets?

Use dataset API offset and limit parameters, or download split files from the Console export dialog.

Does the Actor return historical data?

Each run captures a current snapshot. Store dataset exports yourself if you need history.

What counts as a billable result?

Each product row bills the product event. Enabling details bills product-detail once per successful enrichment. Each review object returned in productReviews.reviews bills one review event.

ActorRelationship
Amazon Search ScraperCompare marketplace search results and pricing fields
HomeDepot ScraperRetail product catalog with sku-oriented listings

Browse the full Data Scrapers Store profile for more commerce and catalog Actors.

Data Scrapers support

Need an additional field, ship-to preset, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample AliExpress URL or search phrase, required fields, expected product volume, and whether you need nested reviews or details on every row.