I built this actor; it's a paid tool on Apify ($1.50 per 1,000 products) with a free trial credit.
If you have ever sourced on Alibaba, you know the loop: search "yoga mat", open 40 tabs, check each one for the Verified badge, scroll to find the MOQ, squint at "US $7.50-$14.00", then try to remember which supplier was 3 years old and which was 18. Alibaba's own filters help, but they only show you one page at a time and you can't sort by "how much cash do I need to place a first order".
This post shows how to get that whole table at once: every listing for a keyword with its MOQ, price ladder, Verified / Trade Assurance status, supplier age, rating and the inspection company behind the badge. First the no-code way (a form and a CSV), then a short Python script. All numbers below come from a real run of Alibaba Scraper on 24 Sep 2026: 75 listings each for "bluetooth earbuds", "yoga mat", "custom tote bags" and "led strip lights".
What "verified" actually means on Alibaba
Three different badges get mixed up:
-
Verified supplier: the company was inspected on site by a third party. The scraper returns who did it in
supplierVerifiedBy. In our run that was always one of SGS, TÜV Rheinland or Intertek. - Trade Assurance: Alibaba's payment protection on the order. Almost everyone has it (73 of 75 earbud listings, 75 of 75 yoga mats), so it doesn't separate anyone.
- Gold supplier: a paid membership. All 300 listings in our run had it, so it says nothing either.
The badge that filters is Verified: 32 of 75 earbud listings, 60 of 75 yoga mats, 61 of 75 tote bags, 62 of 75 LED strips. Combine it with supplier age and rating and the list shrinks fast:
| Keyword | Listings | Unique suppliers | Verified | Verified + MOQ ≤ 50 | ...and 5+ years, rating 4.5+ |
|---|---|---|---|---|---|
| bluetooth earbuds | 75 | 71 | 32 | 24 | 19 |
| yoga mat | 75 | 29 | 60 | 43 | 10 |
| custom tote bags | 75 | 48 | 61 | 13 | 3 |
| led strip lights | 75 | 56 | 62 | 46 | 29 |
Two things stand out. Yoga mat results come from only 29 suppliers for 75 listings, so the same factories repeat a lot (dedupe by supplier before you contact anyone). And custom tote bags are a high-MOQ category: the median MOQ was 100 pieces, so only 3 suppliers pass a strict low-MOQ filter.
The number Alibaba doesn't show: cash for a first order
A listing's MOQ times the unit price at that quantity is the smallest order you can place. For yoga mats, the median listing needs $377 for a first order (median MOQ 50 at the first price tier). For earbuds it's $99, for LED strips $115. That's the column I sort a shortlist by when testing a product.
Here are the cheapest first orders among verified, 5+ year, 4.5+ rated yoga mat suppliers in that run (one row per supplier):
| Product (shortened) | MOQ | Unit price at MOQ | First order | Supplier | Years | Rating | Verified by |
|---|---|---|---|---|---|---|---|
| Eco Friendly Custom Logo Pilates Mat | 2 pieces | $2.99 | $5.98 | Ningbo Boga Sports Goods | 5 | 4.7 | TÜV Rheinland |
| Arch Oval Curve Shaped Mat | 1 piece | $14.00 | $14.00 | Nantong Vigor Sport Goods | 8 | 4.9 | TÜV Rheinland |
| LEECORK Organic Cork TPE Yoga Mat | 12 pieces | $8.51 | $102.12 | Xi'an Leecork | 18 | 4.9 | SGS |
| Micogo Anti Slip Custom Logo Mat | 12 pieces | $13.80 | $165.60 | Ningbo Winz Sports Goods | 8 | 4.7 | TÜV Rheinland |
| Natural Rubber PU Leather Mat | 50 pieces | $10.00 | $500.00 | Dongguan Tongtianxia Rubber | 19 | 4.8 | SGS |
That is five inspected, established factories you can order samples from for under $500 total, found in one run instead of an afternoon of tabs.
Option 1: no code (form in, spreadsheet out)
- Open the actor page and click Try for free (new Apify accounts get a monthly free credit, which covers a few thousand products).
- In Search terms, add your keywords, one per line:
yoga mat,cork yoga mat,tpe yoga mat. Narrow variants matter because Alibaba serves about 960 products per keyword. - Under Filters, tick Verified suppliers only, set Max MOQ (for example
50) and optionally a Supplier country (CN,IN,VN,TR...). - Set Max results per search to
200and click Start. 1,000 products take about 20 seconds. - In the Output tab, download CSV or Excel and open it in Google Sheets or Excel.
In the sheet, keep these columns and sort by minOrderValue (the first-order cash, computed for you in the current version): title, moq, moqUnit, priceAtMoq, minOrderValue, supplierName, supplierYears, supplierRating, supplierVerifiedBy, responseRate, contactSupplierUrl. The last one opens Alibaba's own contact form for that product, so outreach stays on Alibaba with Trade Assurance.
Option 2: Python, 25 lines
pip install apify-client
from apify_client import ApifyClient
import csv
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("rel8ble/alibaba-product-search-scraper").call(run_input={
"searchTerms": ["yoga mat", "cork yoga mat", "tpe yoga mat"],
"maxResultsPerSearch": 200,
"verifiedSuppliersOnly": True,
"maxMoq": 50,
"includeAds": False,
})
best = {} # one row per supplier: their cheapest first order
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
tiers = p.get("priceTiers") or []
unit = tiers[0]["price"] if tiers else p.get("priceMax")
if not unit or not p.get("moq"):
continue
if (p.get("supplierYears") or 0) < 5 or (p.get("supplierRating") or 0) < 4.5:
continue
cash = round(p["moq"] * unit, 2)
name = p["supplierName"]
if name not in best or cash < best[name]["cash"]:
best[name] = {"cash": cash, "moq": p["moqText"], "unit": unit, "years": p["supplierYears"],
"rating": p["supplierRating"], "verifiedBy": p.get("supplierVerifiedBy"),
"title": p["title"][:70], "url": p["url"]}
rows = sorted(best.items(), key=lambda kv: kv[1]["cash"])
with open("alibaba_shortlist.csv", "w", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow(["supplier", "first_order_usd", "moq", "unit_price", "years", "rating", "verified_by", "title", "url"])
for name, r in rows:
w.writerow([name, r["cash"], r["moq"], r["unit"], r["years"], r["rating"], r["verifiedBy"], r["title"], r["url"]])
print(f"{len(rows)} suppliers -> alibaba_shortlist.csv")
The filters (verifiedSuppliersOnly, maxMoq) run on Alibaba's side, so you only pay for products that already pass them. The years and rating cut runs locally because Alibaba has no filter for it.
Things that tripped me up
-
MOQ units differ. LED strips are sold by the meter in 42 of 75 listings, yoga mats sometimes by the dozen. Filter
moqUnitbefore comparing prices across listings. -
Sponsored listings repeat. 37 of 75 LED strip results were ads. Set
includeAds: falsefor a clean comparison, or keep them and filterisAdlater. - New suppliers aren't bad, just unproven. The cheapest verified earbud listing came from a 1-year-old supplier. I keep them in a separate tab and ask for samples first.
-
Prices are list prices. Shipping, customization and payment fees come on top. The quantity ladder in
priceTiersshows how much the price drops at 500 or 1,000 units.
Run it on a schedule
Add a weekly schedule in Apify and join runs on productId to see price changes and new suppliers in your category. It also works from Make, n8n or Zapier (each has an Apify module that runs an actor and returns the dataset), or from an AI agent through the Apify MCP server.
Store page: https://apify.com/rel8ble/alibaba-product-search-scraper
Python examples (MIT): https://github.com/Rel8ble/alibaba-product-scraper-python
This article was drafted with AI and published by me.
Top comments (0)