# Dhgate Listings Extractor (`kawsar/dhgate-listings-extractor`) Actor

Extract DHgate search results and product details in bulk. Get titles, prices, images, ratings, and seller details with built-in bypass protection.

- **URL**: https://apify.com/kawsar/dhgate-listings-extractor.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## DHgate Listings Extractor: Extract Product and Search Results from DHgate

A fast DHgate listings extractor to grab product data from search and category pages without the hassle. It extracts complete search results, including titles, pricing ranges, shipping details, reviews, and supplier store links, and saves them as JSON, CSV, or Excel.

Whether you are doing dropshipping research, tracking competitor prices, or analyzing wholesale market trends, this tool handles the scraping in the background. It uses built-in bypass infrastructure, so there are no proxies to configure and no rate limits to manage. Just feed it your search terms or search URLs and let it collect clean, structured data.

### Use cases

- **Dropshipping research**: identify high-margin wholesale products and trending items to add to your e-commerce storefront.
- **Competitor price tracking**: monitor pricing ranges and wholesale structures of other sellers to keep your listings competitive.
- **Supplier vetting**: analyze seller feedback ratings, positive reviews, and historical sales volumes to find reliable trading partners.
- **Bulk cataloging**: build comprehensive product databases with clean URLs and high-quality image paths for inventory analysis.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQuerys` | array | `[]` | List of search keywords to crawl. Enter one query per line. |
| `startUrls` | array | `[]` | List of direct DHgate wholesale, search, or category URLs to crawl. Enter one URL per line. |
| `maxItems` | integer | `25` | Maximum number of product listings to extract per search query or direct URL. Hard limit is 1000. |
| `requestTimeoutSecs` | integer | `30` | Per-request timeout in seconds for fetching DHgate pages. |

#### Example input

```json
{
    "searchQuerys": [
        "smart phone",
        "wireless earbuds"
    ],
    "startUrls": [
        "https://www.dhgate.com/wholesale/search.do?searchkey=smart+phone"
    ],
    "maxItems": 25,
    "requestTimeoutSecs": 30
}
````

### Output data

The extractor stores results in a dataset. Each entry contains comprehensive product and supplier information:

#### Example output

```json
{
  "itemCode": "1110354937",
  "productId": "8aaad2129eb5c81d019ebecae3712da9",
  "productName": "Iphone 17 pro max unlock Phone 16+2TB 1TB Facial Recognition HD Touchscreen with Dual SIM Cards and Built in GPS",
  "productUrl": "https://www.dhgate.com/product/iphone-17-pro-max-unlock-phone-16-2tb-1tb/1110354937.html",
  "imageUrl": "https://img4.dhresource.com/webp/m/300x300/f3/albu/ys/g/19/f587b96d-d64e-463e-a4e9-6b83d662070c.jpg",
  "price": "US $148.75 - 203.43 ",
  "minOrder": "1 Piece",
  "minOrderNum": "1",
  "sellerName": "yinyin001",
  "sellerId": "8aaab8188f519474018f6708f33e1679",
  "sellerStoreUrl": "https://www.dhgate.com/store/top-selling/21989441.html",
  "feedbackPercent": "99.4%",
  "reviewCount": "38",
  "reviewsScore": "5.0",
  "recentlySold": "1.1K+",
  "freeShipping": true,
  "scrapedAt": "2026-06-25T09:00:43.029Z"
}
```

| Field Name | Type | Description |
|------------|------|-------------|
| `itemCode` | string | Unique DHgate item code. |
| `productId` | string | Unique product ID. |
| `productName` | string | The title of the product listing. |
| `productUrl` | string | Clean, direct HTTPS link to the product's detail page. |
| `imageUrl` | string | Main product image URL, normalized to HTTPS. |
| `price` | string | Pricing text or range. |
| `minOrder` | string | Minimum order text (e.g. 1 Piece). |
| `minOrderNum` | string | Numeric minimum order requirement. |
| `sellerName` | string | Domain name or username of the supplier storefront. |
| `sellerId` | string | System user ID of the supplier. |
| `sellerStoreUrl` | string | Direct URL to the supplier's store on DHgate. |
| `feedbackPercent` | string | Positive feedback rating of the seller. |
| `reviewCount` | string | Total customer review count. |
| `reviewsScore` | string | Average rating score out of 5. |
| `recentlySold` | string | Estimated recent sales volume. |
| `freeShipping` | boolean | True if the listing has free shipping, otherwise false. |
| `scrapedAt` | string | ISO timestamp when the extraction was performed. |

### How it works

1. **Gathers Inputs**: The tool reads your search queries and start URLs from the input form.
2. **Executes Requests**: It requests each query or URL through built-in high-performance bypass systems to avoid IP bans or rate limits.
3. **Extracts JSON Data**: Rather than relying on fragile HTML scraping, it directly extracts the high-fidelity JSON data embedded in the Next.js framework of the page.
4. **Normalizes Assets**: Image URLs and detail page links are normalized to secure HTTPS protocols.
5. **Saves Results**: The extracted product metadata is saved to the dataset and can be downloaded immediately.

### FAQ

**Does this extractor require proxy setup?**

No, you do not need to configure any proxies or manage rotation. The extractor features built-in bypass infrastructure that automatically handles anti-scraping layers, allowing you to focus on your product research.

**How many listings can I scrape per query?**

You can scrape up to 1000 listings per search query or direct URL by setting the limit parameter. The default is set to 25 items per source to save runtime and cost, but you can adjust this easily in the limits section.

**Can I export the data to Google Sheets?**

Yes. Once the run completes, you can export the dataset to Google Sheets, download it as a CSV, Excel sheet, or JSON file, or access it directly using the Apify API.

### Integrations

Connect DHgate Listings Extractor with other apps and services using [Apify integrations](https://apify.com/integrations). You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger actions whenever results are available.

# Actor input Schema

## `searchQuerys` (type: `array`):

List of search terms or keywords to extract listings for on DHgate. Enter one search query per line.

## `startUrls` (type: `array`):

Direct DHgate wholesale or search URLs to scrape. Enter one URL per line.

## `maxItems` (type: `integer`):

The maximum number of product listings to extract per search query or direct URL. Hard limit is 1000.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds for fetching DHgate pages.

## Actor input object example

```json
{
  "searchQuerys": [
    "smart phone",
    "smart watch",
    "wireless earbuds"
  ],
  "startUrls": [
    "https://www.dhgate.com/wholesale/search.do?searchkey=smart+phone"
  ],
  "maxItems": 25,
  "requestTimeoutSecs": 30
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuerys": [
        "smart phone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/dhgate-listings-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQuerys": ["smart phone"] }

# Run the Actor and wait for it to finish
run = client.actor("kawsar/dhgate-listings-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuerys": [
    "smart phone"
  ]
}' |
apify call kawsar/dhgate-listings-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kawsar/dhgate-listings-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dhgate Listings Extractor",
        "description": "Extract DHgate search results and product details in bulk. Get titles, prices, images, ratings, and seller details with built-in bypass protection.",
        "version": "0.0",
        "x-build-id": "klKNEAc1IJarv77ZV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kawsar~dhgate-listings-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kawsar-dhgate-listings-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/kawsar~dhgate-listings-extractor/runs": {
            "post": {
                "operationId": "runs-sync-kawsar-dhgate-listings-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/kawsar~dhgate-listings-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-kawsar-dhgate-listings-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuerys": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "List of search terms or keywords to extract listings for on DHgate. Enter one search query per line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Direct DHgate wholesale or search URLs to scrape. Enter one URL per line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items per query/URL",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "The maximum number of product listings to extract per search query or direct URL. Hard limit is 1000.",
                        "default": 25
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Per-request timeout in seconds for fetching DHgate pages.",
                        "default": 30
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
