Disclaimer : Real Data API only extracts publicly available data while maintaining a strict policy against collecting any personal or identity-related information.
With our AliExpress Product Data Scraper, you can quickly gather important product information, such as their descriptions, images, feedback, questions, prices, and shipping details. You can customize your search by selecting your preferred country, language, and region for shipping. Our options include popular countries like Australia, Canada, Germany, France, Singapore, the USA, the UK, UAE, and India.
This API must help you to scrape data from AliExpress because the platform doesn't offer the actor.
This data scraper to collect data from AliExpress supports the below features.
Don't think much if you get the different products you discovered while browsing the page—the platform orders various products for every user.
This API is under development. You can mail us the same if you have any suggestions or feature requests.
It would help if you fed the input to this actor with a JSON file with the list of AliExpress pages to visit. Below are the needed data fields.
Field | Type | Description |
---|---|---|
startUrls | Array | (optional) List of Aliexpress URLs. You should only provide category detail or product detail URLs |
searchTerms | Array | (optional) List of terms what can be searched in aliexpress search engine |
language | String | (optional) Select language from list in which will be products default is English (en_US) |
shipTo | String | (optional) Select country where the products will be shipped default is US |
currency | String | (optional) Select currency in which the products price will be default is USD |
maxItems | Integer | (optional) You can limit scraped products. This should be useful when you search through the all subcategories. Default is 1000 products. |
includeDescription | Boolean | (optional) If you want to fetch description HTML you can enable this option. However keep in mind that fetching description takes one extra request which makes your actor a bit slower and takes a bit much CUs. |
searchInSubcategories | Boolean | (optional) You can turn off searching in subcategories. Default is true. |
maxFeedback | Integer | (optional) Max count of scraped feedbacks |
maxQuestions | Integer | (optional) Max count of scraped buyer Q&A |
proxy | Object | Proxy configuration |
extendOutputFunction | String | (optional) Function that takes a JQuery handle ($) as argument and returns object with data |
It would help if you used proxy servers to access this solution to have your proxy servers, or you can try proxies of Real Data API.
When scraping a particular URL, use that as a startUrl.
When you feed the category link to startUrls, set up the start and end page and search in subcategories factor on the start and end logic page will propagate to each subcategory to extract more products.
You can scrape as many listings as possible with this optimized actor. So it forefronts each detail request for a listing. If API doesn't block frequently, it will extract a hundred listings in 120 seconds.
{
"searchTerms": ["mobile"],
"language": "en_US",
"shipTo": "US",
"currency": "USD",
"includeDescription": false,
"proxy":{"useRealdataAPIProxy": true},
"startUrls": [
{ "url": "https://www.aliexpress.com/category/200003482/dresses.html" },
{ "url": "https://www.aliexpress.com/item/32940810951.html" }
],
"maxFeedbacks": 5,
"maxQuestions":3
}
While executing, the API stores the result in the custom dataset. Every product is separate in the dataset.
You can handle outputs in multiple coding languages. Check the reference to our API or FAQs to know more about getting output from this API.
While executing, the API stores the result in the custom dataset. Every product is separate in the dataset.
You can handle outputs in multiple coding languages. Check the reference to our API or FAQs to know more about getting output from this API.
The format of every product in AliExpress products looks like below.
{
"id": 33030949663,
"link": "https://www.aliexpress.com/item/33030949663.html?algo_pvid=4f9da8f7-0d3c-4484-9db1-cafaf699a955&algo_expid=4f9da8f7-0d3c-4484-9db1-cafaf699a955-58&btsid=0ab6fab215937737510214942edbed&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_",
"ownerMemberId": 220138526,
"title": "Ultra Thin Mobile Phone Cases for Xiaomi Mi 9T / 9T Pro Back Cover Case 360 Camera Protective Mi9TPro 9TPro Silicone TPU Coque",
"tradeAmount": "2786 orders",
"averageStar": "4.7",
"descriptionURL": "https://aeproductsourcesite.alicdn.com/product/description/pc/v2/en_US/desc.htm?productId=33030949663&key=H8e670276aa194227861097826443d8f5D.zip&token=b95e1a6f392242c57140d3e166d276ad",
"store": {
"followingNumber": 9468,
"establishedAt": "Oct 3, 2013",
"positiveNum": 12506,
"positiveRate": "94.7%",
"name": "GOINSIE Official Store",
"id": 937981,
"url": "https://www.aliexpress.com/store/937981",
"topRatedSeller": true
},
"specs": [
{
"Brand Name": "GOINSIE"
},
{
"Type": "Fitted Case"
},
{
"Features": "Transparent & Clear Soft"
},
{
"Compatible Brand": "Xiaomi"
},
{
"Design": "Plain"
},
{
"Design": "Transparent"
},
{
"Function": "Waterproof"
},
{
"Function": "Dirt-resistant"
},
{
"Function": "Anti-knock"
},
{
"Function": "Heavy Duty Protection"
},
{
"Function": "Adsorption"
},
{
"Model Number": "for Xiaomi Mi 9T / 9T Pro"
},
{
"Status": "In Stock"
},
{
"Delivery": "Free Shipping"
}
],
"categories": [
"All Categories",
"Cellphones & Telecommunications",
"Phone Bags & Cases",
"Fitted Cases"
],
"wishedCount": 4791,
"quantity": 1258,
"photos": [
"https://ae01.alicdn.com/kf/H313c225b670445348cddb28c5648c3f70/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg",
"https://ae01.alicdn.com/kf/H90116ac8272f4d4dba9b3843b94dbf28i/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg",
"https://ae01.alicdn.com/kf/H34a75c2ff0054e939864a990bda3441bs/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg",
"https://ae01.alicdn.com/kf/H1c5ffbcaf51943bcaf865635fafebe42D/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg",
"https://ae01.alicdn.com/kf/H4b8c575d6ee240d3a8c291309ca5c978n/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg",
"https://ae01.alicdn.com/kf/H983e6b11f05e48c38ac899ae11686ffem/Ultra-Thin-Mobile-Phone-Cases-for-Xiaomi-Mi-9T-9T-Pro-Back-Cover-Case-360-Camera.jpg"
],
"skuOptions": [
{
"name": "Material",
"values": [
"Xiaomi Mi 9T",
"Xiaomi Mi 9T Pro"
]
},
{
"name": "Color",
"values": [
null
]
}
],
"prices": [
{
"price": "US $3.39",
"attributes": [
"PC",
"Clear"
]
},
{
"price": "US $3.39",
"attributes": [
"TPU",
"Clear"
]
}
],
"companyId": 230202141,
"memberId": 220138526,
"userFeedbacks": [
{
"userName": "I***v",
"userCountry": "RU",
"productType": "Color:Clear",
"reviewContent": "The seller is well done, fast delivery, all as in the description.",
"reviewTime": "26 Jun 2020 03:40"
},
{
"userName": "A***a",
"userCountry": "RU",
"productType": "Color:Clear",
"reviewContent": "Ordered 04.12.2019, received 25.01.2020 in the Sverdlovsk region./r/nSilicone Case, transparent, in the hands does not slip, hold in the hand comfortably, went perfectly to the phone, all holes in place,/r/nFingerprints leaves/r/nThe seller is honest, sent",
"reviewTime": "25 Jan 2020 21:54"
},
{
"userName": "P***v",
"userCountry": "RU",
"productType": "Color:Clear",
"reviewContent": "Record delivery to Syzran. 12 days! Faster than the phone for which I ordered. A new way of gluing I liked, the films perfectly lay down and perfectly fit in size. Boldly order.",
"reviewTime": "22 Jan 2020 04:01"
},
{
"userName": "G***g",
"userCountry": "RU",
"productType": "Color:Clear",
"reviewContent": "Normal silicone case. The side of the cover does not stand for the edges of the screen. The complete case is better.",
"reviewTime": "16 May 2020 01:22"
},
{
"userName": "A***v",
"userCountry": "RU",
"productType": "Color:Clear",
"reviewContent": "Everything came quickly, quality. I ordered 2 PCs transparent",
"reviewTime": "06 Apr 2020 09:08"
}
],
"questionAndAnswers": [
{
"lang": "ru",
"totalAnswer": 4,
"originalContent": "Подойдёт для xiaomi k20? ",
"translateContent": "Suitable for Xiaomi K20?",
"answers": [
{
"lang": "ru",
"originalContent": "конечно да",
"translateContent": "Of course yes"
}
]
},
{
"lang": "es",
"totalAnswer": 3,
"originalContent": "protege las cámaras??",
"translateContent": "Protects the still cameras??",
"answers": [
{
"lang": "ru",
"originalContent": "Абсолютно свободное движение. ",
"translateContent": "Absolutely free movement."
}
]
},
{
"lang": "ru",
"totalAnswer": 3,
"originalContent": "скольский?",
"translateContent": "Skolsky?",
"answers": [
{
"lang": "uk",
"originalContent": "нет,как раз норм ",
"translateContent": ""
}
]
},
{
"lang": "ru",
"totalAnswer": 2,
"originalContent": "Защитное стекло не поднимает?",
"translateContent": "Protective glass does not lift?",
"answers": [
{
"lang": "ru",
"originalContent": "ой,бро, это не тот чехол, а этот чехол мне даже не пришел",
"translateContent": "Oh, bro, this is not the case, and this case did not even come to me"
}
]
},
{
"lang": "ru",
"totalAnswer": 2,
"originalContent": "Заказал прошло 78 дней не пришло продавец не отвечает УРО Д",
"translateContent": "Ordered 78 days passed did not come the seller does not answer the uro D",
"answers": [
{
"lang": "ru",
"originalContent": "Мне дошел за три недели, одним пакетом вместе с еще пятью заказами от разных продавцов. ",
"translateContent": "I got in three weeks, one package together with five more orders from different sellers."
}
]
}
]
}
Check out how industries are using Amazon data scraper around the world.
eCommerce and Retail
You should have a Real Data API account to execute the program examples.
Replace
in the program using the token of your actor. Read
about the live APIs with Real Data API docs for more explanation.
import { RealdataAPIClient } from 'RealdataAPI-client';
// Initialize the RealdataAPIClient with API token
const client = new RealdataAPIClient({
token: '' ,
});
// Prepare actor input
const input = {
"startUrls": [
"https://aliexpress.com/category/100003109/women-clothing.html",
"https://www.aliexpress.com/item/32940810951.html"
],
"maxItems": 10,
"language": "en_US",
"shipTo": "US",
"currency": "USD",
"proxy": {
"useRealdataAPIProxy": true
},
"extendOutputFunction": ($) => { return {} }
};
(async () => {
// Run the actor and wait for it to finish
const run = await client.actor("epctex/aliexpress-scraper").call(input);
// Fetch and print actor results from the run's dataset (if any)
console.log('Results from dataset');
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
})();
from RealdataAPI_client import RealdataAPIClient
# Initialize the RealdataAPIClient with your API token
client = RealdataAPIClient("" )
# Prepare the actor input
run_input = {
"startUrls": [
"https://aliexpress.com/category/100003109/women-clothing.html",
"https://www.aliexpress.com/item/32940810951.html",
],
"maxItems": 10,
"language": "en_US",
"shipTo": "US",
"currency": "USD",
"proxy": { "useRealdataAPIProxy": True },
"extendOutputFunction": "($) => { return {} }",
}
# Run the actor and wait for it to finish
run = client.actor("epctex/aliexpress-scraper").call(run_input=run_input)
# Fetch and print actor results from the run's dataset (if there are any)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
# Set API token
API_TOKEN=<YOUR_API_TOKEN>
# Prepare actor input
cat > input.json <<'EOF'
{
"startUrls": [
"https://aliexpress.com/category/100003109/women-clothing.html",
"https://www.aliexpress.com/item/32940810951.html"
],
"maxItems": 10,
"language": "en_US",
"shipTo": "US",
"currency": "USD",
"proxy": {
"useRealdataAPIProxy": true
},
"extendOutputFunction": "($) => { return {} }"
}
EOF
# Run the actor
curl "https://api.RealdataAPI.com/v2/acts/epctex~aliexpress-scraper/runs?token=$API_TOKEN" /
-X POST /
-d @input.json /
-H 'Content-Type: application/json'
startUrls
Optional Array
Links for the API, to begin with- you should use these category or product information links.
maxItems
Optional Integer
Streamline the maximum number of products to scrape per execution.
searchTerms
Optional Array
Search query to use for full text search on the platform page.
searchInSubcategories
Optional Array
Explains the scraper if it should also extract subcategories.
language
Optional String
Choose your language
You can choose any communication language like English, Spanish, German, etc.
shipTo
Optional String
Choose your country's location.
You can choose any country among all the countries in the world, like the United
States, England, Germany, France, Argentina, India, and others.
currency
Optional String
Choose your currency
Depending on your location, and country, you can choose any currency among
the existing ones worldwide, like USD, AUD, EURO, CAD, INR, etc.
includeDescription
Optional Boolean
Choose your currency
Mention product descriptions - but you may experience a slowdown of the
scraper.
maxFeedbacks
Optional Integer
Fix the maximum feedback entry numbers.
maxQuestions
Optional Integer
Set the maximum question and answer entries.
proxy
Required Object
Feed your crawler with selected proxies.
extendOutputFunction
Optional String
Function to manage NQuery handle as argument and reflect the data will merge with the generic result.
{
"startUrls": [
"https://aliexpress.com/category/100003109/women-clothing.html",
"https://www.aliexpress.com/item/32940810951.html"
],
"maxItems": 10,
"searchInSubcategories": true,
"language": "en_US",
"shipTo": "US",
"currency": "USD",
"includeDescription": false,
"maxFeedbacks": 0,
"maxQuestions": 0,
"proxy": {
"useRealdataAPIProxy": true
},
"extendOutputFunction": "($) => { return {} }"
}