AliExpress Product Data API: Prices, Ratings, and Orders in Python
AliExpress affiliate API has restricted coverage. Learn how to scrape AliExpress product listings for prices, ratings, order counts, and seller data as structured JSON, no affiliate approval needed.
The actor referenced in this article. Pay only for results delivered.
AliExpress is the largest source of dropshipping product data on the internet. Getting that data programmatically is harder than it should be. Here is the practical guide.
Try it live: AliExpress Scraper, 11 Fields, 20 Countries, Fixed Currency. Pay only for results delivered, no result no charge.
The official API problem
AliExpress has an Open Platform API, but it requires applying for the affiliate program and waiting for approval. Even after approval, it only covers products that are part of the affiliate catalog, a subset of what is actually listed. For full product search and price tracking, scraping is the only option.
What data you can pull
Each product listing on AliExpress contains:
- Product title (English and localised)
- Current price and original price (for discounted items)
- Discount percentage
- Star rating (0-5) and total review count
- Total order count (this is the key demand signal)
- Seller store name and rating
- Primary product image URL
- Product URL
Using the Apify actor
import apify_client
client = apify_client.ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
"searchQuery": "wireless earbuds",
"maxResults": 100,
"sortBy": "orders", # sort by most ordered
"minPrice": 5,
"maxPrice": 50,
"minRating": 4.0,
"minOrders": 1000,
}
run = client.actor('themineworks/aliexpress-products').call(run_input=run_input)
for product in client.dataset(run['defaultDatasetId']).iterate_items():
print(f"{product['title'][:60]}")
print(f" Price: ${product['price']} Orders: {product['orders']} Rating: {product['rating']}")
Finding winning dropshipping products
The standard dropshipping research formula on AliExpress:
results = list(client.dataset(run['defaultDatasetId']).iterate_items())
# Filter for products with strong demand signals
winners = [p for p in results if
p.get('orders', 0) > 5000 and # proven demand
p.get('rating', 0) >= 4.2 and # quality signal
p.get('price', 0) < 20 # room for retail markup
]
winners.sort(key=lambda x: x['orders'], reverse=True)
for p in winners[:10]:
print(p['title'], p['orders'], 'orders')
Price tracking over time
Schedule weekly runs and compare prices to detect seasonal patterns and restocking cycles:
import json
from datetime import datetime
# Store each run with a timestamp
run_date = datetime.now().strftime('%Y-%m-%d')
results = list(client.dataset(run['defaultDatasetId']).iterate_items())
with open(f'aliexpress_prices_{run_date}.json', 'w') as f:
json.dump(results, f)
Category browsing
Instead of keyword search, browse by category ID for comprehensive coverage of a product niche:
run_input = {
"categoryId": "200000528", # Phones & Accessories
"sortBy": "orders",
"maxResults": 500,
}
Pricing
Pay $0.0025 per product returned. Zero charge on empty searches.
Explore the scraper referenced in this article: inputs, outputs, and pricing, then run it on Apify.
Frequently asked questions
Does AliExpress have an official product API? +
AliExpress has an affiliate API (AliExpress Open Platform) but it requires affiliate program approval and has restricted product coverage. Full catalog access requires scraping.
Is AliExpress data useful for dropshipping research? +
Yes. Order count on AliExpress is a reliable demand signal. High order count combined with high price margin indicates a product worth testing.
Can I track AliExpress prices over time? +
Yes. Run the scraper on a schedule and store results to a database to track price changes, discount patterns, and order count growth for any product or keyword.
GitHub Repo Intelligence: Vet Any Dependency Before You Add It
Pull stars, forks, contributors, commit recency, latest release and full README for any public GitHub repo in one call. No token required, MCP-ready for agents doing dependency checks.
Bilibili Scraper: Video, Creator and Search Data in Python
Pull Bilibili videos by keyword, URL or creator ID: titles, view and like counts, duration, author stats. Plain HTTP, no cookies, no login required.
SEEK Jobs Scraper: Australian Job Listings in Python
How to pull SEEK.com.au job listings by keyword, location, work type and salary band in Python: title, company, salary range, apply link, no login or API key.