Dhgate Scraper
Pricing
from $6.80 / 1,000 results
Dhgate Scraper
Source wholesale products from DHgate with real tiered pricing, MOQ, supplier feedback score, and active promo discounts - everything an importer needs to compare suppliers fast, in one search. 26 real fields per product, filters that actually work.
Pricing
from $6.80 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

🛒 DHgate Scraper
Search DHgate wholesale listings with no login: real tiered pricing, minimum order quantity, free-shipping status, supplier store, feedback percent, recently-sold count, and active promotions, 26 fields per product from a single search.
🎯 Who uses it?
📦 Importers & dropshippers
Compare tiered wholesale pricing and minimum order quantity across suppliers for a product category before committing to an order.
📉 Price monitors
Track a product line's real price range and active promotions over time.
🔍 Supplier vetters
Use feedback percent, tier level, and recently-sold count as a first-pass signal before reaching out to a supplier directly.
✨ What it does
Reads DHgate's own real search results directly and normalizes them into clean, flat rows.
- Search by one or more keywords, each getting its own fair share of the row cap.
- Filter by price range and free shipping, and sort by price (low to high or high to low).
- Every row carries real wholesale pricing (a genuine per-unit range, not a single display price), minimum order quantity, supplier signals (feedback percent, tier level, recently-sold count), and any currently active promotion with its real discount and date window.
Missing source values are returned as null, never invented.
Why this scraper
- 26 real fields per product from one search, more than double a typical competitor's field count, with no separate paid detail call needed to get them.
- A price filter that's actually correct, not just narrower. Every row is re-checked against its own real parsed price, so the price bounds mean what they say.
- Sorting that actually sorts, verified to return results in the order requested rather than passed through blindly.
- Fair multi-keyword budgeting. Search several keywords in one run and each gets its own real share of the row cap, so one fast keyword can't consume the whole budget and leave the others at zero.
- Reaches further than a single flat search. A plain keyword search on DHgate tops out well short of its full catalog for that term; this Actor keeps going to reach well beyond that ceiling.
- No API key, no login, no browser, no proxy needed.
How it compares
Checked directly against the closest real competitor on Apify (their own declared input and output); DHgate scrapers overall are fragmented across 13+ actors, none with more than 3 users:
| Capability | This actor | Closest competitor |
|---|---|---|
| Fields per product | 26 | ~20 |
| Supplier signals (feedback %, tier level, recently sold) | yes | partial |
| Active promotion detail (discount %, start/end date) | yes | no |
| Price filter that's verified correct, not just narrower | yes | not verified |
| Working price sort | yes | not verified |
| Fair budget split across multiple keywords | yes | not documented |
📦 What data you get
| Entity | Useful fields |
|---|---|
| Product | Item code, title, URL, image, and the keyword that found it. |
| Pricing | Real tiered price range, currency, minimum order quantity and unit. |
| Shipping & promotions | Free-shipping flag, and any active promotion's discount and date window. |
| Supplier signals | Feedback percent, recently-sold count, review count, rating, and tier level. Not every field is populated on every listing, a real data gap in the source, not ours. |
| Supplier identity | Supplier ID, domain, and store URL. |
| Listing flags | Whether the listing has video and whether it's sponsored. |
💡 Use cases
🔤 Basic keyword search
{ "queries": ["bluetooth earbuds"] }
🚚 Multiple keywords, free shipping only, cheapest first
{ "queries": ["led strip light", "phone case"], "freeShippingOnly": true, "sortBy": "price_up" }
💵 Within a price range
{ "queries": ["watch"], "minPrice": 5, "maxPrice": 20 }
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
🛡️ Limits & responsible use
This Actor reads only DHgate's own public search results. It never signs in and never accesses anything gated behind an account.
feedback_percent, review_count, and rating aren't populated for every listing; that's a real gap in DHgate's own data, not something this Actor fills in. price_min can equal price_max when a listing has one flat price rather than a quantity-tiered range, both real and handled honestly. Full product-page detail (specs, variants, full review text) isn't offered; DHgate's own individual product pages sit behind stronger protection than the open search results this Actor reads. A single keyword's own inventory can genuinely be exhausted before reaching a very large requested count; splitting a broad keyword into more specific ones reaches a different, additional pool of results.
Read live from DHgate on every run. It is not cached.
Is this an official DHgate tool? No. Independent, not affiliated with DHgate. It reads only publicly available pages.
📧 Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
Local development
bun installbun test # offline: parsing, normalization (real fixtures)bun run src/main.ts # reads storage/key_value_stores/default/INPUT.json