AliExpress Scraper
Introduction
The AliExpress scraper is in beta. Please contact us to report any issue you encounter.
The AliExpress scraper provides access to AliExpress marketplace data.
It allows you to invoke AliExpress APIs directly without handling:
- Anti-bot headers
- Signature logic
- Mobile vs desktop differences
- Cookie management
Charted Sea continuously maintains this scraper against AliExpress platform updates. No action is required on your side when AliExpress changes internal APIs.
Usage
Submit tasks to:
POST /scraping-tasks/aliexpress/run
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer ${token}" \
--request POST \
--data '{"requests":[{"url":"https://sg.aliexpress.com/w/wholesale-wireless-earbuds.html?page=1","language":"en"}]}' \
https://continuous-scraper.common.chartedapi.com/scraping-tasks/aliexpress/run
The AliExpress endpoint or page URL is specified inside the request body. Each request is processed independently.
cleanResponseBody is not supported. If you specify it with a value other than
false, the scraping task will be rejected and fail.
See the API Reference for the complete task API.
Country Routing
You must submit each URL with a two-letter country prefix:
https://${countryCode}.aliexpress.com/...
For example, use sg.aliexpress.com for Singapore. The prefix selects the
task country and proxy location. Browser requests use the canonical
www.aliexpress.com host while preserving the path and query parameters.
The country must have a configured proxy and browser-location mapping. A
missing proxy returns No proxy group configured for the country. Do not use
www.aliexpress.com as the submitted host because it does not identify a task
country.
Supported APIs
Product Search by Keyword
-
URL Path:
https://${countryCode}.aliexpress.com/w/wholesale-${keywordSlug}.html?page=${page}
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.keywordSlug: Hyphen-separated search phrase, e.g.wireless-earbuds.page(default = 1): One-based result page.
-
Scraper Input Parameters:
emulateMobileDevice(default = false): Simulates a mobile browser.productListing_crawlNextPages(default = false): Crawls subsequent pages.productListing_crawlNextPages_maxPages(optional): Limits pages returned by one task.productListing_crawlNextPages_maxUniqueProducts(optional): Stops after the requested number of unique products.productListing_crawlNextPages_stopWhenNewPageOnlyContainsDuplicates(default = true): Stops when a page adds no products.productListing_crawlNextPages_stopWhenNoMorePagesIsTrue(default = true): Stops when native pagination reports the end.
-
Example Input:
{
"requests": [
{ "url": "https://sg.aliexpress.com/w/wholesale-wireless-earbuds.html?page=1" }
]
}
- Example Response:
Product Search by Category
-
URL Path:
https://${countryCode}.aliexpress.com/category/${categoryId}/${categorySlug}.html?page=${page}
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.categoryId: AliExpress category ID, e.g.200003482.categorySlug: Category slug, e.g.women-clothing.page(default = 1): One-based result page.
-
Scraper Input Parameters:
emulateMobileDevice(default = false): Simulates a mobile browser.productListing_crawlNextPages(default = false): Crawls subsequent pages.productListing_crawlNextPages_maxPages(optional): Limits pages returned by one task.productListing_crawlNextPages_maxUniqueProducts(optional): Stops after the requested number of unique products.productListing_crawlNextPages_stopWhenNewPageOnlyContainsDuplicates(default = true): Stops when a page adds no products.productListing_crawlNextPages_stopWhenNoMorePagesIsTrue(default = true): Stops when native pagination reports the end.
-
Example Input:
{
"requests": [
{ "url": "https://sg.aliexpress.com/category/200003482/women-clothing.html?page=1" }
]
}
- Example Response:
Seller Products
-
URL Path:
https://${countryCode}.aliexpress.com/store/${storeId}?page=${page}
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.storeId: AliExpress store ID, e.g.1105334290.page: One-based product page. Its presence identifies this as a seller-products request.
-
Scraper Input Parameters:
emulateMobileDevice(default = false): Simulates a mobile browser.productListing_crawlNextPages(default = false): Crawls subsequent pages.productListing_crawlNextPages_maxPages(optional): Limits pages returned by one task.productListing_crawlNextPages_maxUniqueProducts(optional): Stops after the requested number of unique products.productListing_crawlNextPages_stopWhenNewPageOnlyContainsDuplicates(default = true): Stops when a page adds no products.productListing_crawlNextPages_stopWhenNoMorePagesIsTrue(default = true): Stops when native pagination reports the end.
-
Example Input:
{
"requests": [
{ "url": "https://sg.aliexpress.com/store/1105334290?page=1" }
]
}
- Example Response:
Product Details
-
URL Path:
https://${countryCode}.aliexpress.com/item/${productId}.html
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.productId: AliExpress product ID, e.g.1005011672102938.
-
Scraper Input Parameters:
emulateMobileDevice(default = false): Simulates a mobile browser. Native fields can differ in this mode.
-
Example Input:
{
"requests": [
{ "url": "https://sg.aliexpress.com/item/1005011672102938.html" }
]
}
- Example Response:
Product Reviews
-
URL Path:
https://${countryCode}.aliexpress.com/pdp/review/getReviewList?itemId=${productId}&page=${page}&filter=${filter}&sort=complex_default
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.productId: AliExpress product ID.pageorpageNo(default = 1): One-based review page.filter(default =all): Supported values areallandimage.sort(default =complex_default): Onlycomplex_defaultis supported.pageSize(optional): When supplied, use10forallor6forimage.
-
Example Input:
{
"requests": [
{
"url": "https://sg.aliexpress.com/pdp/review/getReviewList?itemId=1005011672102938&page=1&filter=all&sort=complex_default"
}
]
}
Star filters and alternative sort modes are not supported.
- Example Response:
Seller Details
-
URL Path:
https://${countryCode}.aliexpress.com/store/${storeId}
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.storeId: AliExpress store ID, e.g.1105334290.
Do not add page to a seller-detail URL. A page parameter selects the seller-products API instead.
-
Scraper Input Parameters:
emulateMobileDevice(default = false): Simulates a mobile browser.
-
Example Input:
{
"requests": [
{ "url": "https://sg.aliexpress.com/store/1105334290" }
]
}
- Example Response:
Category Tree
-
URL Path:
https://${countryCode}.aliexpress.com/h5/mtop.lazada.guided.shopping.categories.categorieslpcommon/1.0/
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.
-
Example Input:
{
"requests": [
{
"url": "https://sg.aliexpress.com/h5/mtop.lazada.guided.shopping.categories.categorieslpcommon/1.0/"
}
]
}
This endpoint extracts AliExpress's homepage category navigation for the selected country, not a complete category tree.
- Example Response:
Keyword Listing
-
URL Path:
https://${countryCode}.aliexpress.com/fn/seo-alphabet/index?channel=popular&pageNo=${page}
-
URL Parameters:
countryCode: Two-letter task country code, e.g.sg.channel: Must bepopular.pageNo(default = 1): One-based keyword page.
-
Example Input:
{
"requests": [
{
"url": "https://sg.aliexpress.com/fn/seo-alphabet/index?channel=popular&pageNo=1"
}
]
}
- Example Response:
Unsupported APIs
Seller Promoted Products
- URL Path:
https://${countryCode}.aliexpress.com/shop/site/api/shop/campaignTppProducts/query
SELLER_CAMPAIGN_TPP_PRODUCTS is not supported for AliExpress.
Product Reviews V2
-
Request Method:
POST
-
URL Path:
https://${countryCode}.aliexpress.com/h5/mtop.aliexpress.review.item.getpcreviewlist/1.0/
PRODUCT_REVIEWS_V2 is not supported for AliExpress. Use
Product Reviews instead.
Seller Listing
- URL Path:
https://${countryCode}.aliexpress.com/sitemap-sellers.xml
SELLER_LISTING is not supported for AliExpress.
Unsupported requests return HTTP 400, task status ERROR, and an error message
beginning with ERROR_UNSUPPORTED_API. They are rejected before execution and
are not billed.
Operational Recommendations
- Treat response fields and live totals as marketplace-controlled data.
- Monitor success rates during major sales and high-traffic periods.
- Pause traffic if block or failure rates rise unexpectedly.