DHgate Wholesale Products & Suppliers Scraper avatar

DHgate Wholesale Products & Suppliers Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
DHgate Wholesale Products & Suppliers Scraper

DHgate Wholesale Products & Suppliers Scraper

Scrape DHgate wholesale product listings and suppliers with title, price range, minimum order quantity (MOQ), store name and URL, supplier rating, review and order counts, free shipping and product image. Search by keyword. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

DHgate Wholesale Products & Suppliers Scraper

DHgate Wholesale Products & Suppliers Scraper

Here is one real result, with every field the actor returns (opt-in AI and contact-enrichment fields are omitted here because those add-ons were off for this run):

{
"imageUrl": "https://img4.dhresource.com/300x300/f3/albu/km/y/02/d2660743-a2d5-41d1-9e81-652aa74b8f65.jpg",
"title": "Bling Diamond Designer Phone Case for Samsung Galaxy S25 S24 Ultra S23 Plus S22 S21 FE S20 S10 S9 S8 Luxury Crystal Rhinestone Glitter Sparkle Back Cover Funda",
"productUrl": "https://www.dhgate.com/product/bling-diamond-designer-phone-case-for-samsung/1111326539.html?d1_page_num=2#s2-2-1;searl|2049938415:3",
"itemCode": "1111326539",
"searchQuery": "phone case",
"priceText": "US $13.03 - 21.26",
"priceMin": 13.03,
"priceMax": 21.26,
"priceCurrency": "$",
"priceOriginalText": "US $18.35 - 29.95 / Piece",
"priceOriginalMin": 18.35,
"priceOriginalMax": 29.95,
"discountPercent": 29,
"promoEndsAt": "2026-08-31 23:59:00",
"bulkDiscountText": null,
"moq": 1,
"moqUnit": "Piece",
"moqText": "1 Piece",
"storeName": "parfum168168",
"storeUrl": "https://www.dhgate.com/store/top-selling/22290289.html#listing_store-3",
"supplierId": "22290289",
"supplierTierLevel": 5,
"supplierLevel": null,
"supplierYears": null,
"keyAccountSeller": false,
"positiveFeedbackPercent": 99.2,
"rating": 5,
"reviewCount": 1,
"ordersRecent": 1,
"freeShipping": true,
"sevenDayReturn": false,
"hasVideo": false,
"source": "dhgate.com",
"observedAt": "2026-08-10T14:29:40.084Z",
"error": null
}

The most complete DHgate scraper available. It returns every field a DHgate search result exposes (price range, original price and discount, promo end, MOQ, supplier store and tier, positive feedback, rating, recent orders, shipping and return flags), and adds opt-in AI title cleanup/translation, AI attribute extraction, and contact enrichment so you can target exactly the wholesale products and suppliers you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches DHgate for one or more keywords, paginates the results, and writes one normalized record per product to the run's dataset. Each record carries the product title, image, URL and item code, the price range with the original price and discount percent, promo end time, minimum order quantity, and the supplier store name, ID, tier level, positive-feedback percent, rating, review count, recent orders, and shipping/return flags. Every product is tagged with the search query that found it.

Missing source values are returned as null, never invented. Optional paid add-ons can clean and translate the noisy title into a concise English name, extract structured attributes and a broad category, and attempt to find a public supplier contact email and name.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 phone case products with supplier details.

{
"searchQueries": ["phone case"],
"maxProducts": 10
}

Pass several keywords in searchQueries to run multiple searches in one job. Every field is optional.

Input reference

FieldTypeRequiredDefaultDescriptionExample
searchQueriesstring[]no["phone case"]One or more keywords to search on DHgate. Each query is searched in turn and every product is tagged with the query that found it.["led lights", "running shoes"]
maxProductsintegerno10Maximum number of products to collect across all searches.50
withDescriptionbooleannofalseAI add-on. Turn the noisy title into a concise clean name and an English name. Charged only when the model returns usable output. Paid plans only.true
withAttributesbooleannofalseAI add-on. Extract structured product attributes/specs and a broad category from the title. Charged only on usable output. Paid plans only.true
enrichContactsbooleannofalsePaid add-on. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found.true
enrichContactsMaxintegerno50Cap how many results the add-on tries to enrich. Free Apify accounts are capped at 3.20

Output reference

One dataset item per product. Types: string, number, integer, boolean, object, or null when the source value is absent.

FieldTypeDescription
imageUrlstringProduct image URL.
titlestringFull product title as listed.
productUrlstringProduct page URL.
itemCodestringDHgate item code (unique per product).
searchQuerystringThe search keyword that produced this record.
priceTextstringDisplayed price range text.
priceMinnumberParsed minimum price.
priceMaxnumberParsed maximum price.
priceCurrencystringPrice currency symbol.
priceOriginalTextstringOriginal (pre-discount) price text, or null.
priceOriginalMinnumberParsed original minimum price, or null.
priceOriginalMaxnumberParsed original maximum price, or null.
discountPercentintegerDiscount percent when on promo, else null.
promoEndsAtstringPromo end datetime when present, else null.
bulkDiscountTextstringBulk discount text when present, else null.
moqintegerMinimum order quantity.
moqUnitstringMOQ unit, for example Piece.
moqTextstringRaw MOQ text.
storeNamestringSupplier store name.
storeUrlstringSupplier store URL.
supplierIdstringSupplier store ID.
supplierTierLevelintegerSupplier tier level, or null.
supplierLevelstringSupplier level label, or null.
supplierYearsintegerYears the supplier has been on DHgate, or null.
keyAccountSellerbooleantrue when flagged as a key account seller.
positiveFeedbackPercentnumberSupplier positive-feedback percent.
ratingnumberProduct rating.
reviewCountintegerNumber of reviews.
ordersRecentintegerRecent order count.
freeShippingbooleantrue when free shipping is offered.
sevenDayReturnbooleantrue when 7-day return is offered.
hasVideobooleantrue when the listing has a video.
aiCleanNamestringAI cleaned product name (opt-in), else absent.
aiTitleEnstringAI English product name (opt-in), else absent.
aiAttributesobjectAI-extracted attributes/specs (opt-in), else absent.
aiCategorystringAI broad product category (opt-in), else absent.
enrichedEmailstringContact-enrichment email when found.
enrichedContactNamestringContact-enrichment person name when found.
enrichedJobTitlestringContact-enrichment job title when found.
enrichedEmailStatusstringDeliverability status of the enriched email.
enrichedSourcestringSource URL the enriched contact was found on.
enrichedConfidencenumberConfidence score of the enriched contact.
sourcestringData source label. Always dhgate.com.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed item; carries the failure reason.

Example output record

Real record from a live run (input {"searchQueries": ["phone case"], "maxProducts": 10}):

{
"imageUrl": "https://img4.dhresource.com/300x300/f3/albu/km/y/02/d2660743-a2d5-41d1-9e81-652aa74b8f65.jpg",
"title": "Bling Diamond Designer Phone Case for Samsung Galaxy S25 S24 Ultra S23 Plus S22 S21 FE S20 S10 S9 S8 Luxury Crystal Rhinestone Glitter Sparkle Back Cover Funda",
"productUrl": "https://www.dhgate.com/product/bling-diamond-designer-phone-case-for-samsung/1111326539.html",
"itemCode": "1111326539",
"searchQuery": "phone case",
"priceText": "US $13.03 - 21.26",
"priceMin": 13.03,
"priceMax": 21.26,
"priceOriginalMin": 18.35,
"priceOriginalMax": 29.95,
"discountPercent": 29,
"promoEndsAt": "2026-08-31 23:59:00",
"moq": 1,
"moqUnit": "Piece",
"storeName": "parfum168168",
"supplierId": "22290289",
"supplierTierLevel": 5,
"keyAccountSeller": false,
"positiveFeedbackPercent": 99.2,
"rating": 5,
"reviewCount": 1,
"ordersRecent": 1,
"freeShipping": true,
"sevenDayReturn": false,
"hasVideo": false,
"source": "dhgate.com",
"observedAt": "2026-08-10T14:29:40.084Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dhgate-suppliers-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["phone case"],"maxProducts":10}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dhgate-suppliers-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["led lights"],"maxProducts":100,"withAttributes":true}'

Apify CLI:

apify call scrapers_lat/dhgate-suppliers-scraper \
--input '{"searchQueries":["running shoes"],"maxProducts":25}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per product record returned (result event). See the pricing tab for the current per-result price.
  • AI and contact add-ons are billed separately. AI title cleanup, AI attribute extraction, and contact enrichment each charge only when they return usable output and only when enabled.
  • No charge on failure. If a run errors, the actor writes an item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 products per run, and contact enrichment is capped at 3 attempts. AI add-ons are paid plans only. Upgrade for higher limits.

FAQ and troubleshooting

Can I search several keywords at once? Yes. Put multiple keywords in searchQueries. Each is searched in turn and results are tagged with the searchQuery that found them, up to maxProducts total.

What does the price range mean? DHgate lists tiered pricing. priceMin/priceMax are the current range; priceOriginalMin/priceOriginalMax and discountPercent show the pre-promo price when on sale.

How do I assess supplier quality? Use supplierTierLevel, positiveFeedbackPercent, rating, reviewCount, and ordersRecent. Enable contact enrichment to attempt a supplier email.

Why is the title so noisy? DHgate titles are keyword-stuffed. Enable withDescription to get a clean name and an English translation via the AI add-on.

Is this an official DHgate tool? No. This actor is independent and has no affiliation with DHgate. It reads only data that is publicly available on the site. Use it in accordance with the source's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with DHgate. Accesses only publicly available data. Use in accordance with the source's terms of service.