Alibaba Supplier Shortlist by Price, MOQ and Trust
Get a ranked shortlist of Alibaba.com suppliers for each product you name: each supplier scored on price against the market median, fit to your minimum order, Verified, Trade Assurance, years, rating and units sold, with its best offer and the reasons. One price per shortlist.
- on apify
v0iddo/alibaba-supplier-shortlist- category
- ecommerce, automation
- build
- 0.1.1, built 2026-11-08
- billing
- Apify bills it per result; the price for your plan is on the actor's page.
What you get
Every result is one row in the run's dataset. Download it as JSON, CSV, Excel or HTML, or read it through the Apify API.
The main fields of each row:
rankscore- Supplier (
supplierName) - Country (
supplierCountry) - Best price (
bestPrice) - Min order (
bestMinOrder) - Fits targets (
fitsTargets) - Verified (
verifiedSupplier) - Years (
supplierYears) why- Best offer (
bestOfferUrl)
Run it on Apify
- Open alibaba-supplier-shortlist on Apify and sign in, or make an Apify account.
- On the Input tab, fill in the fields listed below. The form opens with example values filled in.
- Click Start. Rows appear on the Output tab while the run works.
- Export the rows as JSON, CSV, Excel, XML or HTML, or read them through the Apify API.
- To run it again on a schedule, save the input as a task and add a schedule in the Apify Console.
What you can set
- Products (
searchTerms): Products as a buyer would type them, one per line, for example led strip lights. Each product gets its own shortlist. - Target price per unit (USD) (
targetPrice): The most you want to pay per unit. Suppliers with an offer at or under it come first. Empty: price only counts in the score. - Your order size (units) (
targetMOQ): How many units you plan to order first. Suppliers whose minimum order is this or less come first. Empty: a smaller minimum order scores higher. - Suppliers per shortlist (
shortlistSize): How many suppliers each product's shortlist names. Default:10. - Pages read per product (
maxPages): Alibaba result pages (about 47 offers each) read for each product. More pages, more suppliers to choose from; the price per shortlist stays the same. Default:3. - Supplier countries (
supplierCountries): Only suppliers from these countries: names or codes, for example China, Vietnam, IN, Hong Kong. - Verified suppliers only (
verifiedSupplier): Only suppliers with Alibaba's verified badge. Default:false. - Trade Assurance only (
tradeAssurance): Only suppliers that take Trade Assurance orders. Default:false. - Supplier rating (
minSupplierRating): Only suppliers rated at least this (out of 5). Options: Any, 4 and up, 4.5 and up, 4.8 and up. Default:any. - Product certifications (
certifications): Only offers with any of these certifications, for example CE, RoHS, FCC. - Maximum results (
maxItems): The run stops after this many result rows. It also caps what one run can cost. Default:100. - Proxy configuration (
proxyConfiguration): Leave as is: the run starts on the cheapest network the site accepts and switches to Apify Proxy automatically when the site blocks it. Pick proxy groups here only to force one specific network.
Example input
This is the input the actor is tested with every day.
{
"searchTerms": [
"led strip lights"
],
"targetPrice": 5,
"targetMOQ": 50,
"maxPages": 2,
"shortlistSize": 10,
"maxItems": 20
}Run it from Python
The official apify-client package starts the run, waits for it and reads the rows. It needs your own Apify API token.
# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN") # your own API token, from the Apify Console
run_input = {
"searchTerms": ["led strip lights"],
"targetPrice": 5,
"targetMOQ": 50,
"maxPages": 2,
"shortlistSize": 10,
"maxItems": 20,
}
run = client.actor("v0iddo/alibaba-supplier-shortlist").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)Limits
- Reads Alibaba's public keyword pages (alibaba.com/wholesale/...), the same pages as our Alibaba Scraper; its search box pages are closed to automated access in robots.txt. Supplier contact details are not collected.
- The score, out of 100: price 35 (how many offers read cost the same or more), order size 15, trust 35 (Verified 10, Trade Assurance 8, Gold Supplier 3, years up to 8, response rate up to 6), proof 15 (rating up to 8, units sold up to 7). Each row's why lists what earned it.
- With a target price or order size, the suppliers that fit both come first, then the score decides. Each supplier's best offer is the one that fits best and then costs least; otherOffers lists up to 4 more.
- The market median is that of the offers read, so more pages give a steadier median and more suppliers.
- Prices are as shown to a visitor of the English site, usually in US dollars.
- On an Apify account without a paid plan a run returns up to 3 results; on any paid Apify plan it returns up to Maximum results.
- Only publicly visible data is collected. No login, no paywalled content, no personal contact details.
- The actor reads only pages that the site's robots.txt leaves open to automated access.
- Sites change their pages from time to time. The actor is checked automatically and repaired when a check fails.
- Each run sends the developer a short usage record: the number of results, success or the kind of error, paid plan or not, how it was started and a hashed account code, so repeat runs count once. Nothing from your input or results is sent.
Questions
Do I need an account on Alibaba.com, cookies or an API key?
No. The actor reads only what every visitor of Alibaba.com can see, without logging in. You only need an Apify account to start it.
How many results can one run return?
Up to 3,000 rows per run. Without a limit it stops at 100. Set Maximum results to the number you need; large jobs can also be split into several runs or scheduled.
Why did my run return no results?
The status message of the run says why: nothing matched the input, the input was not a page the actor understands, the page is closed to automated access by robots.txt, or the site refused every network the actor tried. Check the input against the example above and run it again with a small limit.
Can I run it on a schedule?
Yes. Save your input as a task and add a schedule in the Apify Console (daily, hourly or with a cron expression). Each run gets its own dataset, so you keep a history.
Which formats can I export?
JSON, CSV, Excel, XML, HTML table and RSS from the Output tab or the API. Integrations send the rows to Google Sheets, Slack, Make, Zapier, n8n or a webhook.
More
every fact here is read from the actor's public data on Apify, every day; it last changed on